Skip to content

Commit 98fdba4

Browse files
Merge pull request #1649 from stuggi/stable_condition
Sort template names before reconciliation to ensure consistent condition messages
2 parents 1a33605 + e0db0ab commit 98fdba4

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

pkg/openstack/galera.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"errors"
66
"fmt"
77
"reflect"
8+
"sort"
89
"strings"
910

1011
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
@@ -102,7 +103,15 @@ func ReconcileGaleras(
102103
// List of conditions to consider later for mirroring
103104
conditions := condition.Conditions{}
104105

105-
for name, spec := range *instance.Spec.Galera.Templates {
106+
// Sort template names to ensure consistent ordering
107+
templateNames := make([]string, 0, len(*instance.Spec.Galera.Templates))
108+
for name := range *instance.Spec.Galera.Templates {
109+
templateNames = append(templateNames, name)
110+
}
111+
sort.Strings(templateNames)
112+
113+
for _, name := range templateNames {
114+
spec := (*instance.Spec.Galera.Templates)[name]
106115
hostname := fmt.Sprintf("%s.%s.svc", name, instance.Namespace)
107116
hostnameHeadless := fmt.Sprintf("%s-galera.%s.svc", name, instance.Namespace)
108117

pkg/openstack/memcached.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"reflect"
7+
"sort"
78
"strings"
89

910
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
@@ -97,7 +98,16 @@ func ReconcileMemcacheds(
9798
var ctrlResult ctrl.Result
9899
var err error
99100
var status memcachedStatus
100-
for name, spec := range *instance.Spec.Memcached.Templates {
101+
102+
// Sort template names to ensure consistent ordering
103+
templateNames := make([]string, 0, len(*instance.Spec.Memcached.Templates))
104+
for name := range *instance.Spec.Memcached.Templates {
105+
templateNames = append(templateNames, name)
106+
}
107+
sort.Strings(templateNames)
108+
109+
for _, name := range templateNames {
110+
spec := (*instance.Spec.Memcached.Templates)[name]
101111
var memcached *memcachedv1.Memcached
102112

103113
status, memcached, ctrlResult, err = reconcileMemcached(ctx, instance, version, helper, name, &spec)

pkg/openstack/rabbitmq.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"errors"
66
"fmt"
7+
"sort"
78
"strings"
89

910
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
@@ -104,7 +105,15 @@ func ReconcileRabbitMQs(
104105
instance.Spec.Rabbitmq.Templates = ptr.To(map[string]rabbitmqv1.RabbitMqSpecCore{})
105106
}
106107

107-
for name, spec := range *instance.Spec.Rabbitmq.Templates {
108+
// Sort template names to ensure consistent ordering
109+
templateNames := make([]string, 0, len(*instance.Spec.Rabbitmq.Templates))
110+
for name := range *instance.Spec.Rabbitmq.Templates {
111+
templateNames = append(templateNames, name)
112+
}
113+
sort.Strings(templateNames)
114+
115+
for _, name := range templateNames {
116+
spec := (*instance.Spec.Rabbitmq.Templates)[name]
108117
status, ctrlResult, err = reconcileRabbitMQ(ctx, instance, version, helper, name, spec)
109118

110119
switch status {

pkg/openstack/redis.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"reflect"
7+
"sort"
78
"strings"
89

910
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
@@ -114,7 +115,15 @@ func ReconcileRedis(
114115
var err error
115116
var status redisStatus
116117

117-
for name, spec := range *instance.Spec.Redis.Templates {
118+
// Sort template names to ensure consistent ordering
119+
templateNames := make([]string, 0, len(*instance.Spec.Redis.Templates))
120+
for name := range *instance.Spec.Redis.Templates {
121+
templateNames = append(templateNames, name)
122+
}
123+
sort.Strings(templateNames)
124+
125+
for _, name := range templateNames {
126+
spec := (*instance.Spec.Redis.Templates)[name]
118127
var redis *redisv1.Redis
119128

120129
status, redis, ctrlResult, err = reconcileRedis(ctx, instance, version, helper, name, &spec)

0 commit comments

Comments
 (0)