Skip to content

Commit c02c7c9

Browse files
feat: support topologySpreadConstraints in replication & sentinel (#1184)
* feat: support topologySpreadConstraints in replication & sentinel Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com> * feat: support topologySpreadConstraints in replication & sentinel Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com> * feat: support topologySpreadConstraints in replication & sentinel Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com> * feat: support topologySpreadConstraints in replication & sentinel Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com> * feat: support topologySpreadConstraints in replication & sentinel Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com> --------- Signed-off-by: Husni Alhamdani <dhanielluis@gmail.com>
1 parent 81296c7 commit c02c7c9

13 files changed

+528
-41
lines changed

api/v1beta2/redisreplication_types.go

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,28 @@ import (
77
)
88

99
type RedisReplicationSpec struct {
10-
Size *int32 `json:"clusterSize"`
11-
KubernetesConfig KubernetesConfig `json:"kubernetesConfig"`
12-
RedisExporter *RedisExporter `json:"redisExporter,omitempty"`
13-
RedisConfig *RedisConfig `json:"redisConfig,omitempty"`
14-
Storage *Storage `json:"storage,omitempty"`
15-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
16-
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
17-
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
18-
PriorityClassName string `json:"priorityClassName,omitempty"`
19-
Affinity *corev1.Affinity `json:"affinity,omitempty"`
20-
Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
21-
TLS *TLSConfig `json:"TLS,omitempty"`
22-
PodDisruptionBudget *common.RedisPodDisruptionBudget `json:"pdb,omitempty"`
23-
ACL *ACLConfig `json:"acl,omitempty"`
24-
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
25-
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,12,opt,name=livenessProbe"`
26-
InitContainer *InitContainer `json:"initContainer,omitempty"`
27-
Sidecars *[]Sidecar `json:"sidecars,omitempty"`
28-
ServiceAccountName *string `json:"serviceAccountName,omitempty"`
29-
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
30-
EnvVars *[]corev1.EnvVar `json:"env,omitempty"`
10+
Size *int32 `json:"clusterSize"`
11+
KubernetesConfig KubernetesConfig `json:"kubernetesConfig"`
12+
RedisExporter *RedisExporter `json:"redisExporter,omitempty"`
13+
RedisConfig *RedisConfig `json:"redisConfig,omitempty"`
14+
Storage *Storage `json:"storage,omitempty"`
15+
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
16+
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
17+
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
18+
PriorityClassName string `json:"priorityClassName,omitempty"`
19+
Affinity *corev1.Affinity `json:"affinity,omitempty"`
20+
Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
21+
TLS *TLSConfig `json:"TLS,omitempty"`
22+
PodDisruptionBudget *common.RedisPodDisruptionBudget `json:"pdb,omitempty"`
23+
ACL *ACLConfig `json:"acl,omitempty"`
24+
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
25+
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,12,opt,name=livenessProbe"`
26+
InitContainer *InitContainer `json:"initContainer,omitempty"`
27+
Sidecars *[]Sidecar `json:"sidecars,omitempty"`
28+
ServiceAccountName *string `json:"serviceAccountName,omitempty"`
29+
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
30+
EnvVars *[]corev1.EnvVar `json:"env,omitempty"`
31+
TopologySpreadConstrains []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
3132
}
3233

3334
func (cr *RedisReplicationSpec) GetReplicationCounts(t string) int32 {

api/v1beta2/redissentinel_types.go

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,27 @@ import (
99
type RedisSentinelSpec struct {
1010
// +kubebuilder:validation:Minimum=1
1111
// +kubebuilder:default=3
12-
Size *int32 `json:"clusterSize"`
13-
KubernetesConfig KubernetesConfig `json:"kubernetesConfig"`
14-
RedisExporter *RedisExporter `json:"redisExporter,omitempty"`
15-
RedisSentinelConfig *RedisSentinelConfig `json:"redisSentinelConfig,omitempty"`
16-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
17-
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
18-
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
19-
PriorityClassName string `json:"priorityClassName,omitempty"`
20-
Affinity *corev1.Affinity `json:"affinity,omitempty"`
21-
Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
22-
TLS *TLSConfig `json:"TLS,omitempty"`
23-
PodDisruptionBudget *common.RedisPodDisruptionBudget `json:"pdb,omitempty"`
24-
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
25-
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,12,opt,name=livenessProbe"`
26-
InitContainer *InitContainer `json:"initContainer,omitempty"`
27-
Sidecars *[]Sidecar `json:"sidecars,omitempty"`
28-
ServiceAccountName *string `json:"serviceAccountName,omitempty"`
29-
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
30-
EnvVars *[]corev1.EnvVar `json:"env,omitempty"`
31-
VolumeMount *common.AdditionalVolume `json:"volumeMount,omitempty"`
12+
Size *int32 `json:"clusterSize"`
13+
KubernetesConfig KubernetesConfig `json:"kubernetesConfig"`
14+
RedisExporter *RedisExporter `json:"redisExporter,omitempty"`
15+
RedisSentinelConfig *RedisSentinelConfig `json:"redisSentinelConfig,omitempty"`
16+
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
17+
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
18+
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
19+
PriorityClassName string `json:"priorityClassName,omitempty"`
20+
Affinity *corev1.Affinity `json:"affinity,omitempty"`
21+
Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
22+
TLS *TLSConfig `json:"TLS,omitempty"`
23+
PodDisruptionBudget *common.RedisPodDisruptionBudget `json:"pdb,omitempty"`
24+
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,11,opt,name=readinessProbe"`
25+
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,12,opt,name=livenessProbe"`
26+
InitContainer *InitContainer `json:"initContainer,omitempty"`
27+
Sidecars *[]Sidecar `json:"sidecars,omitempty"`
28+
ServiceAccountName *string `json:"serviceAccountName,omitempty"`
29+
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
30+
EnvVars *[]corev1.EnvVar `json:"env,omitempty"`
31+
VolumeMount *common.AdditionalVolume `json:"volumeMount,omitempty"`
32+
TopologySpreadConstrains []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
3233
}
3334

3435
func (cr *RedisSentinelSpec) GetSentinelCounts(t string) int32 {

api/v1beta2/zz_generated.deepcopy.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)