Skip to content

Commit 5ec0cd8

Browse files
committed
add PVC in the owner chain
1 parent b5fda56 commit 5ec0cd8

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

controllers/idler/idler_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ type Reconciler struct {
6767
//+kubebuilder:rbac:groups=toolchain.dev.openshift.com,resources=idlers/status,verbs=get;update;patch
6868
//+kubebuilder:rbac:groups=toolchain.dev.openshift.com,resources=idlers/finalizers,verbs=update
6969

70-
//+kubebuilder:rbac:groups="",resources=pods;replicationcontrollers,verbs=get;list;watch;create;update;patch;delete
70+
//+kubebuilder:rbac:groups="",resources=pods;replicationcontrollers;persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
7171
//+kubebuilder:rbac:groups=apps,resources=deployments;daemonsets;replicasets;statefulsets,verbs=get;list;watch;create;update;patch;delete
7272
//+kubebuilder:rbac:groups=apps.openshift.io,resources=deploymentconfigs,verbs=get;list;watch;create;update;patch;delete
7373
//+kubebuilder:rbac:groups=batch,resources=jobs,verbs=get;list;watch;create;update;patch;delete

controllers/idler/idler_controller_test.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,14 @@ func preparePayloads(t *testing.T, clients *memberoperatortest.FakeClientSet, na
10031003
dv.SetName(fmt.Sprintf("%s%s-datavolume", namePrefix, namespace))
10041004
dv.SetNamespace(namespace)
10051005
createObjectWithDynamicClient(t, clients.DynamicClient, dv)
1006-
controlledPods = createPods(t, clients.AllNamespacesClient, dv, sTime, controlledPods, noRestart())
1006+
// PersistentVolumeClaim owned by DataVolume
1007+
dvPvc := &corev1.PersistentVolumeClaim{
1008+
ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("%s-pvc", dv.GetName()), Namespace: namespace},
1009+
}
1010+
err := controllerutil.SetControllerReference(dv, dvPvc, scheme.Scheme)
1011+
require.NoError(t, err)
1012+
createObjectWithDynamicClient(t, clients.DynamicClient, dvPvc)
1013+
controlledPods = createPods(t, clients.AllNamespacesClient, dvPvc, sTime, controlledPods, noRestart())
10071014

10081015
// StatefulSet
10091016
sts := &appsv1.StatefulSet{
@@ -1023,7 +1030,7 @@ func preparePayloads(t *testing.T, clients *memberoperatortest.FakeClientSet, na
10231030
ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("%s-replicationcontroller", dc.Name), Namespace: namespace},
10241031
Spec: corev1.ReplicationControllerSpec{Replicas: &replicas},
10251032
}
1026-
err := controllerutil.SetControllerReference(dc, rc, scheme.Scheme)
1033+
err = controllerutil.SetControllerReference(dc, rc, scheme.Scheme)
10271034
require.NoError(t, err)
10281035
createObjectWithDynamicClient(t, clients.DynamicClient, rc)
10291036
controlledPods = createPods(t, clients.AllNamespacesClient, rc, sTime, controlledPods, noRestart())

controllers/idler/owners_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ var testConfigs = map[string]createTestConfigFunc{
159159
},
160160
"DataVolume": func(plds payloads) payloadTestConfig {
161161
return payloadTestConfig{
162-
podOwnerName: plds.dataVolume.GetName(),
162+
// We are testing the case with nested controllers (DataVolume -> PersistentVolumeClaim -> Pod) here,
163+
// so the pod's owner is PersistentVolumeClaim but the expected scaled app is the parent DataVolume.
164+
podOwnerName: fmt.Sprintf("%s-pvc", plds.dataVolume.GetName()),
163165
expectedAppName: plds.dataVolume.GetName(),
164166
ownerScaledUp: func(assertion *test.IdleablePayloadAssertion) {
165167
assertion.DataVolumeExists(plds.dataVolume)

0 commit comments

Comments
 (0)