From 8e9670fa68aae1e862cea0cd6c25cd80ae80dbd1 Mon Sep 17 00:00:00 2001 From: Rafal Korepta Date: Sat, 4 Jun 2022 23:27:30 +0200 Subject: [PATCH 1/2] (split) k8s: Rename function that sets volumes for Redpanda pod --- pkg/resources/statefulset.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/resources/statefulset.go b/pkg/resources/statefulset.go index 759601dacc9d..9236867387ba 100644 --- a/pkg/resources/statefulset.go +++ b/pkg/resources/statefulset.go @@ -503,7 +503,7 @@ func (r *StatefulSetResource) obj( }) } - setCloudStorage(ss, r.pandaCluster) + setVolumes(ss, r.pandaCluster) rpkStatusContainer := r.rpkStatusContainer(tlsVolumeMounts) if rpkStatusContainer != nil { @@ -586,9 +586,9 @@ func (r *StatefulSetResource) composeCURLMaintenanceCommand( return cmd } -// setCloudStorage manipulates v1.StatefulSet object in order to add cloud storage specific -// properties to Redpanda pod. -func setCloudStorage( +// setVolumes manipulates v1.StatefulSet object in order to add cloud storage and +// Redpanda data volume +func setVolumes( ss *appsv1.StatefulSet, cluster *redpandav1alpha1.Cluster, ) { pvcDataDir := preparePVCResource(datadirName, cluster.Namespace, cluster.Spec.Storage, ss.Labels) From d829cdb9375bb369753b1a97ecc4c116d5022ae0 Mon Sep 17 00:00:00 2001 From: Rafal Korepta Date: Sat, 4 Jun 2022 23:42:37 +0200 Subject: [PATCH 2/2] (split) k8s: Add update functionality to ClusterRole Almost all resources are reconciled with update functionality, so that ClusterRole kubernetes resource will be corrected if changed outside of operator reconcilied loop. --- pkg/resources/cluster_role.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/resources/cluster_role.go b/pkg/resources/cluster_role.go index 861e89968f8f..e9c811b57c59 100644 --- a/pkg/resources/cluster_role.go +++ b/pkg/resources/cluster_role.go @@ -11,6 +11,7 @@ package resources import ( "context" + "fmt" "github.com/go-logr/logr" redpandav1alpha1 "github.com/redpanda-data/redpanda/src/go/k8s/apis/redpanda/v1alpha1" @@ -53,7 +54,19 @@ func (r *ClusterRoleResource) Ensure(ctx context.Context) error { if r.pandaCluster.ExternalListener() == nil { return nil } - _, err := CreateIfNotExists(ctx, r, r.obj(), r.logger) + + obj := r.obj() + created, err := CreateIfNotExists(ctx, r, obj, r.logger) + if err != nil || created { + return err + } + var cr v1.ClusterRole + err = r.Get(ctx, r.Key(), &cr) + if err != nil { + return fmt.Errorf("error while fetching ClusterRole resource: %w", err) + } + + _, err = Update(ctx, &cr, obj, r.Client, r.logger) return err }