Skip to content

Commit 41a2d0c

Browse files
[hotfix-v0.35] Add the next-cluster-version-compatible flag to the generated configmap. (#1293)
Co-authored-by: Shreyas S <shreyas.s@sap.com>
1 parent 875dc1e commit 41a2d0c

File tree

2 files changed

+41
-37
lines changed

2 files changed

+41
-37
lines changed

internal/component/configmap/configmap_test.go

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -184,17 +184,6 @@ func TestPrepareInitialCluster(t *testing.T) {
184184
}
185185
}
186186

187-
func buildEtcd(replicas int32, clientTLSEnabled, peerTLSEnabled bool) *druidv1alpha1.Etcd {
188-
etcdBuilder := testutils.EtcdBuilderWithDefaults(testutils.TestEtcdName, testutils.TestNamespace).WithReplicas(replicas)
189-
if clientTLSEnabled {
190-
etcdBuilder.WithClientTLS()
191-
}
192-
if peerTLSEnabled {
193-
etcdBuilder.WithPeerTLS()
194-
}
195-
return etcdBuilder.Build()
196-
}
197-
198187
func TestSyncWhenConfigMapExists(t *testing.T) {
199188
testCases := []struct {
200189
name string
@@ -298,6 +287,17 @@ func TestTriggerDelete(t *testing.T) {
298287
}
299288

300289
// ---------------------------- Helper Functions -----------------------------
290+
func buildEtcd(replicas int32, clientTLSEnabled, peerTLSEnabled bool) *druidv1alpha1.Etcd {
291+
etcdBuilder := testutils.EtcdBuilderWithDefaults(testutils.TestEtcdName, testutils.TestNamespace).WithReplicas(replicas)
292+
if clientTLSEnabled {
293+
etcdBuilder.WithClientTLS()
294+
}
295+
if peerTLSEnabled {
296+
etcdBuilder.WithPeerTLS()
297+
}
298+
return etcdBuilder.Build()
299+
}
300+
301301
func newConfigMap(g *WithT, etcd *druidv1alpha1.Etcd) *corev1.ConfigMap {
302302
cm := emptyConfigMap(getObjectKey(etcd.ObjectMeta))
303303
err := buildResource(etcd, cm)
@@ -334,16 +334,17 @@ func matchConfigMap(g *WithT, etcd *druidv1alpha1.Etcd, actualConfigMap corev1.C
334334
err := yaml.Unmarshal([]byte(actualETCDConfigYAML), &actualETCDConfig)
335335
g.Expect(err).ToNot(HaveOccurred())
336336
g.Expect(actualETCDConfig).To(MatchKeys(IgnoreExtras|IgnoreMissing, Keys{
337-
"name": Equal("etcd-config"),
338-
"data-dir": Equal(fmt.Sprintf("%s/new.etcd", common.VolumeMountPathEtcdData)),
339-
"metrics": Equal(string(druidv1alpha1.Basic)),
340-
"snapshot-count": Equal(ptr.Deref(etcd.Spec.Etcd.SnapshotCount, defaultSnapshotCount)),
341-
"enable-v2": Equal(false),
342-
"quota-backend-bytes": Equal(etcd.Spec.Etcd.Quota.Value()),
343-
"initial-cluster-token": Equal("etcd-cluster"),
344-
"initial-cluster-state": Equal("new"),
345-
"auto-compaction-mode": Equal(string(ptr.Deref(etcd.Spec.Common.AutoCompactionMode, druidv1alpha1.Periodic))),
346-
"auto-compaction-retention": Equal(ptr.Deref(etcd.Spec.Common.AutoCompactionRetention, defaultAutoCompactionRetention)),
337+
"name": Equal("etcd-config"),
338+
"data-dir": Equal(fmt.Sprintf("%s/new.etcd", common.VolumeMountPathEtcdData)),
339+
"metrics": Equal(string(druidv1alpha1.Basic)),
340+
"snapshot-count": Equal(ptr.Deref(etcd.Spec.Etcd.SnapshotCount, defaultSnapshotCount)),
341+
"enable-v2": Equal(false),
342+
"quota-backend-bytes": Equal(etcd.Spec.Etcd.Quota.Value()),
343+
"initial-cluster-token": Equal("etcd-cluster"),
344+
"initial-cluster-state": Equal("new"),
345+
"auto-compaction-mode": Equal(string(ptr.Deref(etcd.Spec.Common.AutoCompactionMode, druidv1alpha1.Periodic))),
346+
"auto-compaction-retention": Equal(ptr.Deref(etcd.Spec.Common.AutoCompactionRetention, defaultAutoCompactionRetention)),
347+
"next-cluster-version-compatible": Equal(true),
347348
}))
348349
matchClientTLSRelatedConfiguration(g, etcd, actualETCDConfig)
349350
matchPeerTLSRelatedConfiguration(g, etcd, actualETCDConfig)

internal/component/configmap/etcdconfig.go

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ type etcdConfig struct {
5050
AdvertiseClientUrls map[string][]string `json:"advertise-client-urls"`
5151
ClientSecurity *securityConfig `json:"client-transport-security,omitempty"`
5252
PeerSecurity *securityConfig `json:"peer-transport-security,omitempty"`
53+
//TODO: (@Shreyas-s14): remove this field once etcd 3.5.26 is the minimum supported version.
54+
NextClusterVersionCompatible bool `json:"next-cluster-version-compatible,omitempty"`
5355
}
5456

5557
type securityConfig struct {
@@ -65,22 +67,23 @@ func createEtcdConfig(etcd *druidv1alpha1.Etcd) *etcdConfig {
6567
peerScheme, peerSecurityConfig := getSchemeAndSecurityConfig(etcd.Spec.Etcd.PeerUrlTLS, common.VolumeMountPathEtcdPeerCA, common.VolumeMountPathEtcdPeerServerTLS)
6668
peerSvcName := druidv1alpha1.GetPeerServiceName(etcd.ObjectMeta)
6769
cfg := &etcdConfig{
68-
Name: "etcd-config",
69-
DataDir: defaultDataDir,
70-
Metrics: ptr.Deref(etcd.Spec.Etcd.Metrics, druidv1alpha1.Basic),
71-
SnapshotCount: getSnapshotCount(etcd),
72-
EnableV2: false,
73-
EnableGRPCGateway: ptr.Deref(etcd.Spec.Etcd.EnableGRPCGateway, false),
74-
QuotaBackendBytes: getDBQuotaBytes(etcd),
75-
InitialClusterToken: defaultInitialClusterToken,
76-
InitialClusterState: defaultInitialClusterState,
77-
InitialCluster: prepareInitialCluster(etcd, peerScheme),
78-
AutoCompactionMode: ptr.Deref(etcd.Spec.Common.AutoCompactionMode, druidv1alpha1.Periodic),
79-
AutoCompactionRetention: ptr.Deref(etcd.Spec.Common.AutoCompactionRetention, defaultAutoCompactionRetention),
80-
ListenPeerUrls: fmt.Sprintf("%s://0.0.0.0:%d", peerScheme, ptr.Deref(etcd.Spec.Etcd.ServerPort, common.DefaultPortEtcdPeer)),
81-
ListenClientUrls: fmt.Sprintf("%s://0.0.0.0:%d", clientScheme, ptr.Deref(etcd.Spec.Etcd.ClientPort, common.DefaultPortEtcdClient)),
82-
AdvertisePeerUrls: getAdvertiseURLs(etcd, advertiseURLTypePeer, peerScheme, peerSvcName),
83-
AdvertiseClientUrls: getAdvertiseURLs(etcd, advertiseURLTypeClient, clientScheme, peerSvcName),
70+
Name: "etcd-config",
71+
DataDir: defaultDataDir,
72+
Metrics: ptr.Deref(etcd.Spec.Etcd.Metrics, druidv1alpha1.Basic),
73+
SnapshotCount: getSnapshotCount(etcd),
74+
EnableV2: false,
75+
EnableGRPCGateway: ptr.Deref(etcd.Spec.Etcd.EnableGRPCGateway, false),
76+
QuotaBackendBytes: getDBQuotaBytes(etcd),
77+
InitialClusterToken: defaultInitialClusterToken,
78+
InitialClusterState: defaultInitialClusterState,
79+
InitialCluster: prepareInitialCluster(etcd, peerScheme),
80+
AutoCompactionMode: ptr.Deref(etcd.Spec.Common.AutoCompactionMode, druidv1alpha1.Periodic),
81+
AutoCompactionRetention: ptr.Deref(etcd.Spec.Common.AutoCompactionRetention, defaultAutoCompactionRetention),
82+
ListenPeerUrls: fmt.Sprintf("%s://0.0.0.0:%d", peerScheme, ptr.Deref(etcd.Spec.Etcd.ServerPort, common.DefaultPortEtcdPeer)),
83+
ListenClientUrls: fmt.Sprintf("%s://0.0.0.0:%d", clientScheme, ptr.Deref(etcd.Spec.Etcd.ClientPort, common.DefaultPortEtcdClient)),
84+
AdvertisePeerUrls: getAdvertiseURLs(etcd, advertiseURLTypePeer, peerScheme, peerSvcName),
85+
AdvertiseClientUrls: getAdvertiseURLs(etcd, advertiseURLTypeClient, clientScheme, peerSvcName),
86+
NextClusterVersionCompatible: true,
8487
}
8588
cfg.PeerSecurity = peerSecurityConfig
8689
cfg.ClientSecurity = clientSecurityConfig

0 commit comments

Comments
 (0)