From c7e45a53ceb4e25d3fc89ba4ebee08339bac3c5f Mon Sep 17 00:00:00 2001 From: Avinash Patnala Date: Tue, 24 Sep 2024 23:23:59 +0000 Subject: [PATCH] store namespace in configpod status name --- apis/status/v1beta1/configpodstatus_types.go | 8 ++++---- apis/status/v1beta1/configpodstatus_types_test.go | 7 ++++--- pkg/controller/config/config_controller.go | 10 +++++----- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/apis/status/v1beta1/configpodstatus_types.go b/apis/status/v1beta1/configpodstatus_types.go index 46cdc955dae..641bbfdd35c 100644 --- a/apis/status/v1beta1/configpodstatus_types.go +++ b/apis/status/v1beta1/configpodstatus_types.go @@ -57,9 +57,9 @@ func init() { // NewConfigStatusForPod returns an config status object // that has been initialized with the bare minimum of fields to make it functional // with the config status controller. -func NewConfigStatusForPod(pod *corev1.Pod, configName string, scheme *runtime.Scheme) (*ConfigPodStatus, error) { +func NewConfigStatusForPod(pod *corev1.Pod, configNamespace string, configName string, scheme *runtime.Scheme) (*ConfigPodStatus, error) { obj := &ConfigPodStatus{} - name, err := KeyForConfig(pod.Name, configName) + name, err := KeyForConfig(pod.Name, configNamespace, configName) if err != nil { return nil, err } @@ -81,6 +81,6 @@ func NewConfigStatusForPod(pod *corev1.Pod, configName string, scheme *runtime.S // KeyForConfig returns a unique status object name given the Pod ID and // a config object. -func KeyForConfig(id string, configName string) (string, error) { - return DashPacker(id, configName) +func KeyForConfig(id string, configNamespace string, configName string) (string, error) { + return DashPacker(id, configNamespace, configName) } diff --git a/apis/status/v1beta1/configpodstatus_types_test.go b/apis/status/v1beta1/configpodstatus_types_test.go index 0ccecd91357..7e9c73a0e9a 100644 --- a/apis/status/v1beta1/configpodstatus_types_test.go +++ b/apis/status/v1beta1/configpodstatus_types_test.go @@ -17,6 +17,7 @@ func TestNewConfigStatusForPod(t *testing.T) { const podName = "some-gk-pod" const podNS = "a-gk-namespace" const configName = "a-config" + const configNameSpace = "a-gk-ns" testutils.Setenv(t, "POD_NAMESPACE", podNS) @@ -37,7 +38,7 @@ func TestNewConfigStatusForPod(t *testing.T) { ) expectedStatus := &v1beta1.ConfigPodStatus{} - expectedStatus.SetName("some--gk--pod-a--config") + expectedStatus.SetName("some--gk--pod-a--gk--ns-a--config") expectedStatus.SetNamespace(podNS) expectedStatus.Status.ID = podName expectedStatus.Status.Operations = operations.AssignedStringList() @@ -51,14 +52,14 @@ func TestNewConfigStatusForPod(t *testing.T) { t.Fatal(err) } - status, err := v1beta1.NewConfigStatusForPod(pod, configName, scheme) + status, err := v1beta1.NewConfigStatusForPod(pod, configNameSpace, configName, scheme) if err != nil { t.Fatal(err) } if diff := cmp.Diff(expectedStatus, status); diff != "" { t.Fatal(diff) } - n, err := v1beta1.KeyForConfig(podName, configName) + n, err := v1beta1.KeyForConfig(podName, configNameSpace, configName) if err != nil { t.Fatal(err) } diff --git a/pkg/controller/config/config_controller.go b/pkg/controller/config/config_controller.go index 5254e35a3b6..d085493450c 100644 --- a/pkg/controller/config/config_controller.go +++ b/pkg/controller/config/config_controller.go @@ -221,18 +221,18 @@ func (r *ReconcileConfig) Reconcile(ctx context.Context, request reconcile.Reque r.tracker.For(configGVK).Observe(instance) if deleted { - return reconcile.Result{}, r.deleteStatus(ctx, request.NamespacedName.Name) + return reconcile.Result{}, r.deleteStatus(ctx, request.NamespacedName.Namespace, request.NamespacedName.Name) } return reconcile.Result{}, r.updateOrCreatePodStatus(ctx, instance, err) } -func (r *ReconcileConfig) deleteStatus(ctx context.Context, cfgName string) error { +func (r *ReconcileConfig) deleteStatus(ctx context.Context, cfgNamespace string, cfgName string) error { status := &statusv1beta1.ConfigPodStatus{} pod, err := r.getPod(ctx) if err != nil { return fmt.Errorf("getting reconciler pod: %w", err) } - sName, err := statusv1beta1.KeyForConfig(pod.Name, cfgName) + sName, err := statusv1beta1.KeyForConfig(pod.Name, cfgNamespace, cfgName) if err != nil { return fmt.Errorf("getting key for config: %w", err) } @@ -252,7 +252,7 @@ func (r *ReconcileConfig) updateOrCreatePodStatus(ctx context.Context, cfg *conf // Check if it exists already sNS := pod.Namespace - sName, err := statusv1beta1.KeyForConfig(pod.Name, cfg.GetName()) + sName, err := statusv1beta1.KeyForConfig(pod.Name, cfg.GetNamespace(), cfg.GetName()) if err != nil { return fmt.Errorf("getting key for config: %w", err) } @@ -282,7 +282,7 @@ func (r *ReconcileConfig) updateOrCreatePodStatus(ctx context.Context, cfg *conf } func (r *ReconcileConfig) newConfigStatus(pod *corev1.Pod, cfg *configv1alpha1.Config) (*statusv1beta1.ConfigPodStatus, error) { - status, err := statusv1beta1.NewConfigStatusForPod(pod, cfg.GetName(), r.scheme) + status, err := statusv1beta1.NewConfigStatusForPod(pod, cfg.GetNamespace(), cfg.GetName(), r.scheme) if err != nil { return nil, fmt.Errorf("creating status for pod: %w", err) }