From 042b5642b9926267e470fb0a2c0dd2df19eb6c6a Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Wed, 2 Aug 2017 20:05:37 +1000 Subject: [PATCH] Migrate to NewControllerRef from meta/v1 package --- pkg/controller/controller_ref_manager_test.go | 16 +--------------- pkg/controller/cronjob/utils.go | 15 +-------------- pkg/controller/daemon/daemon_controller.go | 16 +--------------- pkg/controller/daemon/daemon_controller_test.go | 4 ++-- pkg/controller/daemon/update.go | 2 +- .../deployment/deployment_controller_test.go | 4 ++-- pkg/controller/deployment/sync.go | 16 +--------------- pkg/controller/job/job_controller.go | 2 +- pkg/controller/job/job_controller_test.go | 6 +++--- pkg/controller/job/utils.go | 14 -------------- pkg/controller/statefulset/stateful_set_utils.go | 16 +--------------- 11 files changed, 14 insertions(+), 97 deletions(-) diff --git a/pkg/controller/controller_ref_manager_test.go b/pkg/controller/controller_ref_manager_test.go index 368385f771b..1af203af8d8 100644 --- a/pkg/controller/controller_ref_manager_test.go +++ b/pkg/controller/controller_ref_manager_test.go @@ -36,20 +36,6 @@ var ( controllerUID = "123" ) -func newControllerRef(controller metav1.Object) *metav1.OwnerReference { - var controllerKind = v1beta1.SchemeGroupVersion.WithKind("Fake") - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: "Fake", - UID: controller.GetUID(), - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - func newPod(podName string, label map[string]string, owner metav1.Object) *v1.Pod { pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -66,7 +52,7 @@ func newPod(podName string, label map[string]string, owner metav1.Object) *v1.Po }, } if owner != nil { - pod.OwnerReferences = []metav1.OwnerReference{*newControllerRef(owner)} + pod.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(owner, v1beta1.SchemeGroupVersion.WithKind("Fake"))} } return pod } diff --git a/pkg/controller/cronjob/utils.go b/pkg/controller/cronjob/utils.go index 372d048b8ce..dbdd8dd96c8 100644 --- a/pkg/controller/cronjob/utils.go +++ b/pkg/controller/cronjob/utils.go @@ -169,19 +169,6 @@ func getRecentUnmetScheduleTimes(sj batchv2alpha1.CronJob, now time.Time) ([]tim return starts, nil } -func newControllerRef(sj *batchv2alpha1.CronJob) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: sj.Name, - UID: sj.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // XXX unit test this // getJobFromTemplate makes a Job from a CronJob @@ -204,7 +191,7 @@ func getJobFromTemplate(sj *batchv2alpha1.CronJob, scheduledTime time.Time) (*ba Labels: labels, Annotations: annotations, Name: name, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(sj)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(sj, controllerKind)}, }, } if err := api.Scheme.Convert(&sj.Spec.JobTemplate.Spec, &job.Spec, nil); err != nil { diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 0fce881823f..d98087d3e10 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -816,7 +816,7 @@ func (dsc *DaemonSetsController) syncNodes(ds *extensions.DaemonSet, podsToDelet for i := 0; i < createDiff; i++ { go func(ix int) { defer createWait.Done() - err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, &template, ds, newControllerRef(ds)) + err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, &template, ds, metav1.NewControllerRef(ds, controllerKind)) if err != nil && errors.IsTimeout(err) { // Pod is created but its initialization has timed out. // If the initialization is successful eventually, the @@ -1237,20 +1237,6 @@ func NodeConditionPredicates(nodeInfo *schedulercache.NodeInfo) (bool, []algorit return len(reasons) == 0, reasons } -// newControllerRef creates a ControllerRef pointing to the given DaemonSet. -func newControllerRef(ds *extensions.DaemonSet) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: ds.Name, - UID: ds.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // byCreationTimestamp sorts a list by creation timestamp, using their names as a tie breaker. type byCreationTimestamp []*extensions.DaemonSet diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 921cd6fc3dd..13ff88db883 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -201,7 +201,7 @@ func newPod(podName string, nodeName string, label map[string]string, ds *extens } pod.Name = names.SimpleNameGenerator.GenerateName(podName) if ds != nil { - pod.OwnerReferences = []metav1.OwnerReference{*newControllerRef(ds)} + pod.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(ds, controllerKind)} } return pod } @@ -1808,7 +1808,7 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { pod := newPod("pod1-", "node-0", simpleDaemonSetLabel, ds1) prev := *pod - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(ds2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(ds2, controllerKind)} bumpResourceVersion(pod) manager.updatePod(&prev, pod) if got, want := manager.queue.Len(), 2; got != want { diff --git a/pkg/controller/daemon/update.go b/pkg/controller/daemon/update.go index 6c765d0da69..72486594f0e 100644 --- a/pkg/controller/daemon/update.go +++ b/pkg/controller/daemon/update.go @@ -339,7 +339,7 @@ func (dsc *DaemonSetsController) snapshot(ds *extensions.DaemonSet, revision int Namespace: ds.Namespace, Labels: labelsutil.CloneAndAddLabel(ds.Spec.Template.Labels, extensions.DefaultDaemonSetUniqueLabelKey, hash), Annotations: ds.Annotations, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(ds)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(ds, controllerKind)}, }, Data: runtime.RawExtension{Raw: patch}, Revision: revision, diff --git a/pkg/controller/deployment/deployment_controller_test.go b/pkg/controller/deployment/deployment_controller_test.go index 9298e53e6d6..6fbc0de699f 100644 --- a/pkg/controller/deployment/deployment_controller_test.go +++ b/pkg/controller/deployment/deployment_controller_test.go @@ -126,7 +126,7 @@ func newReplicaSet(d *extensions.Deployment, name string, replicas int) *extensi UID: uuid.NewUUID(), Namespace: metav1.NamespaceDefault, Labels: d.Spec.Selector.MatchLabels, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(d)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(d, controllerKind)}, }, Spec: extensions.ReplicaSetSpec{ Selector: d.Spec.Selector, @@ -810,7 +810,7 @@ func TestUpdateReplicaSetChangeControllerRef(t *testing.T) { // Change ControllerRef and expect both old and new to queue. prev := *rs - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(d2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(d2, controllerKind)} next := *rs bumpResourceVersion(&next) dc.updateReplicaSet(&prev, &next) diff --git a/pkg/controller/deployment/sync.go b/pkg/controller/deployment/sync.go index cb0e993ec62..a1a85a5a8f7 100644 --- a/pkg/controller/deployment/sync.go +++ b/pkg/controller/deployment/sync.go @@ -306,7 +306,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis // Make the name deterministic, to ensure idempotence Name: d.Name + "-" + podTemplateSpecHash, Namespace: d.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(d)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(d, controllerKind)}, }, Spec: extensions.ReplicaSetSpec{ Replicas: new(int32), @@ -651,17 +651,3 @@ func (dc *DeploymentController) isScalingEvent(d *extensions.Deployment, rsList } return false, nil } - -// newControllerRef returns a ControllerRef pointing to the deployment. -func newControllerRef(d *extensions.Deployment) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: d.Name, - UID: d.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} diff --git a/pkg/controller/job/job_controller.go b/pkg/controller/job/job_controller.go index 45594b6bcc4..6ed99e36d63 100644 --- a/pkg/controller/job/job_controller.go +++ b/pkg/controller/job/job_controller.go @@ -624,7 +624,7 @@ func (jm *JobController) manageJob(activePods []*v1.Pod, succeeded int32, job *b for i := int32(0); i < diff; i++ { go func() { defer wait.Done() - err := jm.podControl.CreatePodsWithControllerRef(job.Namespace, &job.Spec.Template, job, newControllerRef(job)) + err := jm.podControl.CreatePodsWithControllerRef(job.Namespace, &job.Spec.Template, job, metav1.NewControllerRef(job, controllerKind)) if err != nil && errors.IsTimeout(err) { // Pod is created but its initialization has timed out. // If the initialization is successful eventually, the diff --git a/pkg/controller/job/job_controller_test.go b/pkg/controller/job/job_controller_test.go index 9559ff502e3..51e909a9364 100644 --- a/pkg/controller/job/job_controller_test.go +++ b/pkg/controller/job/job_controller_test.go @@ -109,7 +109,7 @@ func newPodList(count int32, status v1.PodPhase, job *batch.Job) []v1.Pod { Name: fmt.Sprintf("pod-%v", rand.String(10)), Labels: job.Spec.Selector.MatchLabels, Namespace: job.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(job)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(job, controllerKind)}, }, Status: v1.PodStatus{Phase: status}, } @@ -634,7 +634,7 @@ func newPod(name string, job *batch.Job) *v1.Pod { Name: name, Labels: job.Spec.Selector.MatchLabels, Namespace: job.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(job)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(job, controllerKind)}, }, } } @@ -971,7 +971,7 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { // Changed ControllerRef. Expect both old and new to queue. prev := *pod1 - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(job2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(job2, controllerKind)} bumpResourceVersion(pod1) jm.updatePod(&prev, pod1) if got, want := jm.queue.Len(), 2; got != want { diff --git a/pkg/controller/job/utils.go b/pkg/controller/job/utils.go index 438a5e01041..25c3d08c908 100644 --- a/pkg/controller/job/utils.go +++ b/pkg/controller/job/utils.go @@ -19,7 +19,6 @@ package job import ( batch "k8s.io/api/batch/v1" "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func IsJobFinished(j *batch.Job) bool { @@ -30,16 +29,3 @@ func IsJobFinished(j *batch.Job) bool { } return false } - -func newControllerRef(j *batch.Job) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: j.Name, - UID: j.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} diff --git a/pkg/controller/statefulset/stateful_set_utils.go b/pkg/controller/statefulset/stateful_set_utils.go index 3c4fcb9a2c8..0102fb1502a 100644 --- a/pkg/controller/statefulset/stateful_set_utils.go +++ b/pkg/controller/statefulset/stateful_set_utils.go @@ -219,20 +219,6 @@ func allowsBurst(set *apps.StatefulSet) bool { return set.Spec.PodManagementPolicy == apps.ParallelPodManagement } -// newControllerRef returns an ControllerRef pointing to a given StatefulSet. -func newControllerRef(set *apps.StatefulSet) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: set.Name, - UID: set.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // setPodRevision sets the revision of Pod to revision by adding the StatefulSetRevisionLabel func setPodRevision(pod *v1.Pod, revision string) { if pod.Labels == nil { @@ -252,7 +238,7 @@ func getPodRevision(pod *v1.Pod) string { // newStatefulSetPod returns a new Pod conforming to the set's Spec with an identity generated from ordinal. func newStatefulSetPod(set *apps.StatefulSet, ordinal int) *v1.Pod { - pod, _ := controller.GetPodFromTemplate(&set.Spec.Template, set, newControllerRef(set)) + pod, _ := controller.GetPodFromTemplate(&set.Spec.Template, set, metav1.NewControllerRef(set, controllerKind)) pod.Name = getPodName(set, ordinal) updateIdentity(set, pod) updateStorage(set, pod)