From fb1fb03c4ddb00c65dafd7858d96350d43d58b8e Mon Sep 17 00:00:00 2001 From: Filipe Regadas Date: Mon, 23 Jan 2023 14:35:51 +0000 Subject: [PATCH] Add revision hash labels to PDB and fully reconcile object (#609) Fixes https://github.com/spotify/flink-on-k8s-operator/issues/608 --- .../flinkcluster/flinkcluster_converter.go | 7 ++++--- .../flinkcluster/flinkcluster_reconciler.go | 18 +++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/controllers/flinkcluster/flinkcluster_converter.go b/controllers/flinkcluster/flinkcluster_converter.go index 00728326..8b55111b 100644 --- a/controllers/flinkcluster/flinkcluster_converter.go +++ b/controllers/flinkcluster/flinkcluster_converter.go @@ -574,15 +574,16 @@ func newPodDisruptionBudget(flinkCluster *v1beta1.FlinkCluster) *policyv1.PodDis return nil } - labels := getClusterLabels(flinkCluster) + selectorLabels := getClusterLabels(flinkCluster) + labels := mergeLabels(selectorLabels, getRevisionHashLabels(&flinkCluster.Status.Revision)) if pdbSpec.Selector == nil { pdbSpec.Selector = new(metav1.LabelSelector) } if pdbSpec.Selector.MatchLabels == nil { - pdbSpec.Selector.MatchLabels = labels + pdbSpec.Selector.MatchLabels = selectorLabels } else { - for k, v := range labels { + for k, v := range selectorLabels { pdbSpec.Selector.MatchLabels[k] = v } } diff --git a/controllers/flinkcluster/flinkcluster_reconciler.go b/controllers/flinkcluster/flinkcluster_reconciler.go index c55f9063..fca7b309 100644 --- a/controllers/flinkcluster/flinkcluster_reconciler.go +++ b/controllers/flinkcluster/flinkcluster_reconciler.go @@ -327,18 +327,14 @@ func (reconciler *ClusterReconciler) reconcileHAConfigMap(ctx context.Context) e } func (reconciler *ClusterReconciler) reconcilePodDisruptionBudget(ctx context.Context) error { - var desiredPodDisruptionBudget = reconciler.desired.PodDisruptionBudget - var observedPodDisruptionBudget = reconciler.observed.podDisruptionBudget - - if desiredPodDisruptionBudget != nil && observedPodDisruptionBudget == nil { - return reconciler.createComponent(ctx, desiredPodDisruptionBudget, "PodDisruptionBudget") - } - - if desiredPodDisruptionBudget == nil && observedPodDisruptionBudget != nil { - return reconciler.deleteComponent(ctx, observedPodDisruptionBudget, "PodDisruptionBudget") - } + desiredPodDisruptionBudget := reconciler.desired.PodDisruptionBudget + observedPodDisruptionBudget := reconciler.observed.podDisruptionBudget + return reconciler.reconcileComponent( + ctx, + "PodDisruptionBudget", + desiredPodDisruptionBudget, + observedPodDisruptionBudget) - return nil } func (reconciler *ClusterReconciler) reconcilePersistentVolumeClaims(ctx context.Context) error {