From d8aad7944cc71314913fc0b43d6731e2c36f4928 Mon Sep 17 00:00:00 2001 From: Aldo Culquicondor Date: Thu, 20 May 2021 20:27:21 +0000 Subject: [PATCH] Remove unused util CreatePods And rename CreatePodsWithControllerRef to simply CreatePods --- pkg/controller/controller_utils.go | 42 ++++--------------- pkg/controller/controller_utils_test.go | 10 ++--- pkg/controller/daemon/daemon_controller.go | 2 +- .../daemon/daemon_controller_test.go | 4 +- pkg/controller/job/job_controller.go | 2 +- pkg/controller/replicaset/replica_set.go | 2 +- pkg/controller/replication/conversion.go | 9 +--- 7 files changed, 21 insertions(+), 50 deletions(-) diff --git a/pkg/controller/controller_utils.go b/pkg/controller/controller_utils.go index 86c2146335d..35d85d59ea8 100644 --- a/pkg/controller/controller_utils.go +++ b/pkg/controller/controller_utils.go @@ -445,12 +445,10 @@ func (r RealControllerRevisionControl) PatchControllerRevision(namespace, name s // PodControlInterface is an interface that knows how to add or delete pods // created as an interface to allow testing. type PodControlInterface interface { - // CreatePods creates new pods according to the spec. - CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object) error - // CreatePodsWithControllerRef creates new pods according to the spec, and sets object as the pod's controller. - CreatePodsWithControllerRef(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error - // CreatePodsWithControllerRefAndGenerateName creates new pods according to the spec, sets object as the pod's controller and sets pod's generateName. - CreatePodsWithControllerRefAndGenerateName(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference, generateName string) error + // CreatePods creates new pods according to the spec, and sets object as the pod's controller. + CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error + // CreatePodsWithGenerateName creates new pods according to the spec, sets object as the pod's controller and sets pod's generateName. + CreatePodsWithGenerateName(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference, generateName string) error // DeletePod deletes the pod identified by podID. DeletePod(namespace string, podID string, object runtime.Object) error // PatchPod patches the pod. @@ -515,19 +513,11 @@ func validateControllerRef(controllerRef *metav1.OwnerReference) error { return nil } -func (r RealPodControl) CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object) error { - pod, err := GetPodFromTemplate(template, object, nil) - if err != nil { - return err - } - return r.createPods(namespace, pod, object) +func (r RealPodControl) CreatePods(namespace string, template *v1.PodTemplateSpec, controllerObject runtime.Object, controllerRef *metav1.OwnerReference) error { + return r.CreatePodsWithGenerateName(namespace, template, controllerObject, controllerRef, "") } -func (r RealPodControl) CreatePodsWithControllerRef(namespace string, template *v1.PodTemplateSpec, controllerObject runtime.Object, controllerRef *metav1.OwnerReference) error { - return r.CreatePodsWithControllerRefAndGenerateName(namespace, template, controllerObject, controllerRef, "") -} - -func (r RealPodControl) CreatePodsWithControllerRefAndGenerateName(namespace string, template *v1.PodTemplateSpec, controllerObject runtime.Object, controllerRef *metav1.OwnerReference, generateName string) error { +func (r RealPodControl) CreatePodsWithGenerateName(namespace string, template *v1.PodTemplateSpec, controllerObject runtime.Object, controllerRef *metav1.OwnerReference, generateName string) error { if err := validateControllerRef(controllerRef); err != nil { return err } @@ -636,21 +626,7 @@ func (f *FakePodControl) PatchPod(namespace, name string, data []byte) error { return nil } -func (f *FakePodControl) CreatePods(namespace string, spec *v1.PodTemplateSpec, object runtime.Object) error { - f.Lock() - defer f.Unlock() - f.CreateCallCount++ - if f.CreateLimit != 0 && f.CreateCallCount > f.CreateLimit { - return fmt.Errorf("not creating pod, limit %d already reached (create call %d)", f.CreateLimit, f.CreateCallCount) - } - f.Templates = append(f.Templates, *spec) - if f.Err != nil { - return f.Err - } - return nil -} - -func (f *FakePodControl) CreatePodsWithControllerRef(namespace string, spec *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { +func (f *FakePodControl) CreatePods(namespace string, spec *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { f.Lock() defer f.Unlock() f.CreateCallCount++ @@ -665,7 +641,7 @@ func (f *FakePodControl) CreatePodsWithControllerRef(namespace string, spec *v1. return nil } -func (f *FakePodControl) CreatePodsWithControllerRefAndGenerateName(namespace string, spec *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference, generateNamePrefix string) error { +func (f *FakePodControl) CreatePodsWithGenerateName(namespace string, spec *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference, generateNamePrefix string) error { f.Lock() defer f.Unlock() f.CreateCallCount++ diff --git a/pkg/controller/controller_utils_test.go b/pkg/controller/controller_utils_test.go index b2aaefe3731..91afda38d86 100644 --- a/pkg/controller/controller_utils_test.go +++ b/pkg/controller/controller_utils_test.go @@ -29,7 +29,6 @@ import ( "time" apps "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" v1 "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -301,9 +300,10 @@ func TestCreatePods(t *testing.T) { } controllerSpec := newReplicationController(1) + controllerRef := metav1.NewControllerRef(controllerSpec, v1.SchemeGroupVersion.WithKind("ReplicationController")) // Make sure createReplica sends a POST to the apiserver with a pod from the controllers pod template - err := podControl.CreatePods(ns, controllerSpec.Spec.Template, controllerSpec) + err := podControl.CreatePods(ns, controllerSpec.Spec.Template, controllerSpec, controllerRef) assert.NoError(t, err, "unexpected error: %v", err) expectedPod := v1.Pod{ @@ -321,7 +321,7 @@ func TestCreatePods(t *testing.T) { "Body: %s", fakeHandler.RequestBody) } -func TestCreatePodsWithControllerRefAndGenerateName(t *testing.T) { +func TestCreatePodsWithGenerateName(t *testing.T) { ns := metav1.NamespaceDefault body := runtime.EncodeOrDie(clientscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "empty_pod"}}) fakeHandler := utiltesting.FakeHandler{ @@ -338,11 +338,11 @@ func TestCreatePodsWithControllerRefAndGenerateName(t *testing.T) { } controllerSpec := newReplicationController(1) - controllerRef := metav1.NewControllerRef(controllerSpec, batchv1.SchemeGroupVersion.WithKind("Job")) + controllerRef := metav1.NewControllerRef(controllerSpec, v1.SchemeGroupVersion.WithKind("ReplicationController")) // Make sure createReplica sends a POST to the apiserver with a pod from the controllers pod template generateName := "hello-" - err := podControl.CreatePodsWithControllerRefAndGenerateName(ns, controllerSpec.Spec.Template, controllerSpec, controllerRef, generateName) + err := podControl.CreatePodsWithGenerateName(ns, controllerSpec.Spec.Template, controllerSpec, controllerRef, generateName) assert.NoError(t, err, "unexpected error: %v", err) expectedPod := v1.Pod{ diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 3a5072923e9..fbda4686eab 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -996,7 +996,7 @@ func (dsc *DaemonSetsController) syncNodes(ds *apps.DaemonSet, podsToDelete, nod podTemplate.Spec.Affinity = util.ReplaceDaemonSetPodNodeNameNodeAffinity( podTemplate.Spec.Affinity, nodesNeedingDaemonPods[ix]) - err := dsc.podControl.CreatePodsWithControllerRef(ds.Namespace, podTemplate, + err := dsc.podControl.CreatePods(ds.Namespace, podTemplate, ds, metav1.NewControllerRef(ds, controllerKind)) if err != nil { diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 33025fb8b19..a16dfc9e685 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -241,10 +241,10 @@ func newFakePodControl() *fakePodControl { } } -func (f *fakePodControl) CreatePodsWithControllerRef(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { +func (f *fakePodControl) CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { f.Lock() defer f.Unlock() - if err := f.FakePodControl.CreatePodsWithControllerRef(namespace, template, object, controllerRef); err != nil { + if err := f.FakePodControl.CreatePods(namespace, template, object, controllerRef); err != nil { return fmt.Errorf("failed to create pod for DaemonSet") } diff --git a/pkg/controller/job/job_controller.go b/pkg/controller/job/job_controller.go index 6e0a684b5df..5604f7c8eb6 100644 --- a/pkg/controller/job/job_controller.go +++ b/pkg/controller/job/job_controller.go @@ -875,7 +875,7 @@ func (jm *Controller) manageJob(job *batch.Job, activePods []*v1.Pod, succeeded } defer wait.Done() generateName := podGenerateNameWithIndex(job.Name, completionIndex) - err := jm.podControl.CreatePodsWithControllerRefAndGenerateName(job.Namespace, template, job, metav1.NewControllerRef(job, controllerKind), generateName) + err := jm.podControl.CreatePodsWithGenerateName(job.Namespace, template, job, metav1.NewControllerRef(job, controllerKind), generateName) if err != nil { if apierrors.HasStatusCause(err, v1.NamespaceTerminatingCause) { // If the namespace is being torn down, we can safely ignore diff --git a/pkg/controller/replicaset/replica_set.go b/pkg/controller/replicaset/replica_set.go index 9535407cd01..cef41bf9c90 100644 --- a/pkg/controller/replicaset/replica_set.go +++ b/pkg/controller/replicaset/replica_set.go @@ -565,7 +565,7 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *apps // after one of its pods fails. Conveniently, this also prevents the // event spam that those failures would generate. successfulCreations, err := slowStartBatch(diff, controller.SlowStartInitialBatchSize, func() error { - err := rsc.podControl.CreatePodsWithControllerRef(rs.Namespace, &rs.Spec.Template, rs, metav1.NewControllerRef(rs, rsc.GroupVersionKind)) + err := rsc.podControl.CreatePods(rs.Namespace, &rs.Spec.Template, rs, metav1.NewControllerRef(rs, rsc.GroupVersionKind)) if err != nil { if apierrors.HasStatusCause(err, v1.NamespaceTerminatingCause) { // if the namespace is being terminated, we don't have to do diff --git a/pkg/controller/replication/conversion.go b/pkg/controller/replication/conversion.go index 1eb8f722e1e..60ce0f9a1d5 100644 --- a/pkg/controller/replication/conversion.go +++ b/pkg/controller/replication/conversion.go @@ -337,17 +337,12 @@ type podControlAdapter struct { controller.PodControlInterface } -func (pc podControlAdapter) CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object) error { - // This is not used by RSC. - return errors.New("CreatePods() is not implemented for podControlAdapter") -} - -func (pc podControlAdapter) CreatePodsWithControllerRef(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { +func (pc podControlAdapter) CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { rc, err := convertRStoRC(object.(*apps.ReplicaSet)) if err != nil { return err } - return pc.PodControlInterface.CreatePodsWithControllerRef(namespace, template, rc, controllerRef) + return pc.PodControlInterface.CreatePods(namespace, template, rc, controllerRef) } func (pc podControlAdapter) DeletePod(namespace string, podID string, object runtime.Object) error {