From b84d7fd59e316d7fe0bedaae85aa7dacdfe8753f Mon Sep 17 00:00:00 2001 From: Uri Zaidenwerg Date: Sun, 23 Jan 2022 07:47:44 +0200 Subject: [PATCH 1/3] added ObjectMetaWithNameAndAnnotations template func --- pkg/resources/templates/templates.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pkg/resources/templates/templates.go b/pkg/resources/templates/templates.go index 9324da56d..c8a2ee936 100644 --- a/pkg/resources/templates/templates.go +++ b/pkg/resources/templates/templates.go @@ -87,6 +87,25 @@ func ObjectMetaWithGeneratedName(namePrefix string, labels map[string]string, cl } } +// ObjectMetaWithName returns a metav1.ObjectMeta object with labels, ownerReference and name +func ObjectMetaWithName(name string, labels map[string]string, cluster *v1beta1.KafkaCluster) metav1.ObjectMeta { + return metav1.ObjectMeta{ + Name: name, + Namespace: cluster.Namespace, + Labels: ObjectMetaLabels(cluster, labels), + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: cluster.APIVersion, + Kind: cluster.Kind, + Name: cluster.Name, + UID: cluster.UID, + Controller: util.BoolPointer(true), + BlockOwnerDeletion: util.BoolPointer(true), + }, + }, + } +} + func ObjectMetaLabels(cluster *v1beta1.KafkaCluster, l map[string]string) map[string]string { if cluster.Spec.PropagateLabels { return util.MergeLabels(cluster.Labels, l) @@ -108,6 +127,13 @@ func ObjectMetaWithGeneratedNameAndAnnotations(namePrefix string, labels map[str return o } +// ObjectMetaWithNameAndAnnotations returns a metav1.ObjectMeta object with labels, ownerReference, name and annotations +func ObjectMetaWithNameAndAnnotations(name string, labels map[string]string, annotations map[string]string, cluster *v1beta1.KafkaCluster) metav1.ObjectMeta { + o := ObjectMetaWithName(name, labels, cluster) + o.Annotations = annotations + return o +} + // ObjectMetaClusterScope returns a metav1.ObjectMeta object with labels, ownerReference, name and annotations func ObjectMetaClusterScope(name string, labels map[string]string, cluster *v1beta1.KafkaCluster) metav1.ObjectMeta { return metav1.ObjectMeta{ From 0f41e14af8e922a2a20b7635f3b59291ba8fbb85 Mon Sep 17 00:00:00 2001 From: Uri Zaidenwerg Date: Sun, 23 Jan 2022 07:56:11 +0200 Subject: [PATCH 2/3] ISSUE-744 PVCs are created with generated names Fixes #744 Create PersistentVolumeClaim with Name instead of Generated Name Will allow kafka k8s cluster switch over using global storage classes that span multiple kubernetes clusters. --- pkg/resources/kafka/kafka.go | 3 ++- pkg/resources/kafka/pvc.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/resources/kafka/kafka.go b/pkg/resources/kafka/kafka.go index c91df044c..2e9808990 100644 --- a/pkg/resources/kafka/kafka.go +++ b/pkg/resources/kafka/kafka.go @@ -57,7 +57,8 @@ type brokerReconcilePriority int const ( componentName = "kafka" brokerConfigTemplate = "%s-config" - brokerStorageTemplate = "%s-%d-storage-%d-" + brokerStorageTemplate = "%s-%d-storage-%d" + brokerConfigMapVolumeMount = "broker-config" kafkaDataVolumeMount = "kafka-data" diff --git a/pkg/resources/kafka/pvc.go b/pkg/resources/kafka/pvc.go index eb41184a0..44669bb9c 100644 --- a/pkg/resources/kafka/pvc.go +++ b/pkg/resources/kafka/pvc.go @@ -29,7 +29,7 @@ import ( func (r *Reconciler) pvc(brokerId int32, storageIndex int, storage v1beta1.StorageConfig, _ logr.Logger) runtime.Object { return &corev1.PersistentVolumeClaim{ - ObjectMeta: templates.ObjectMetaWithGeneratedNameAndAnnotations( + ObjectMeta: templates.ObjectMetaWithNameAndAnnotations( fmt.Sprintf(brokerStorageTemplate, r.KafkaCluster.Name, brokerId, storageIndex), util.MergeLabels( kafka.LabelsForKafka(r.KafkaCluster.Name), From 5ef7aa4e5da31850610f054bd6cccdef346d56ef Mon Sep 17 00:00:00 2001 From: Uri Zaidenwerg Date: Sun, 23 Jan 2022 09:12:49 +0200 Subject: [PATCH 3/3] go fmt --- pkg/resources/kafka/kafka.go | 1 - pkg/resources/templates/templates.go | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/resources/kafka/kafka.go b/pkg/resources/kafka/kafka.go index 2e9808990..f8fbbad67 100644 --- a/pkg/resources/kafka/kafka.go +++ b/pkg/resources/kafka/kafka.go @@ -59,7 +59,6 @@ const ( brokerConfigTemplate = "%s-config" brokerStorageTemplate = "%s-%d-storage-%d" - brokerConfigMapVolumeMount = "broker-config" kafkaDataVolumeMount = "kafka-data" diff --git a/pkg/resources/templates/templates.go b/pkg/resources/templates/templates.go index c8a2ee936..7285e48d7 100644 --- a/pkg/resources/templates/templates.go +++ b/pkg/resources/templates/templates.go @@ -90,9 +90,9 @@ func ObjectMetaWithGeneratedName(namePrefix string, labels map[string]string, cl // ObjectMetaWithName returns a metav1.ObjectMeta object with labels, ownerReference and name func ObjectMetaWithName(name string, labels map[string]string, cluster *v1beta1.KafkaCluster) metav1.ObjectMeta { return metav1.ObjectMeta{ - Name: name, - Namespace: cluster.Namespace, - Labels: ObjectMetaLabels(cluster, labels), + Name: name, + Namespace: cluster.Namespace, + Labels: ObjectMetaLabels(cluster, labels), OwnerReferences: []metav1.OwnerReference{ { APIVersion: cluster.APIVersion,