Skip to content

Commit 0bdcb71

Browse files
author
Philip Hurst
committed
update controller logic for IP Families and IP Family Policy
1 parent f8d3112 commit 0bdcb71

File tree

4 files changed

+40
-16
lines changed

4 files changed

+40
-16
lines changed

internal/controller/postgrescluster/cluster.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -268,11 +268,17 @@ func (r *Reconciler) generateClusterReplicaService(
268268
service.Spec.ExternalTrafficPolicy = initialize.FromPointer(spec.ExternalTrafficPolicy)
269269
service.Spec.InternalTrafficPolicy = spec.InternalTrafficPolicy
270270

271-
// Default to SingleStack if IP Family Policy is not defined
272-
if spec.IPFamilyPolicy == "" {
273-
spec.IPFamilyPolicy = "SingleStack"
271+
// Set IPFamilyPolicy and IPFamilies
272+
if spec.IPFamilyPolicy != "" {
273+
policy := corev1.IPFamilyPolicyType(spec.IPFamilyPolicy)
274+
service.Spec.IPFamilyPolicy = &policy
275+
}
276+
if len(spec.IPFamilies) > 0 {
277+
service.Spec.IPFamilies = []corev1.IPFamily{}
278+
for _, family := range spec.IPFamilies {
279+
service.Spec.IPFamilies = append(service.Spec.IPFamilies, corev1.IPFamily(family))
280+
}
274281
}
275-
service.Spec.IPFamilyPolicy = (*corev1.IPFamilyPolicy)(&spec.IPFamilyPolicy)
276282

277283
}
278284
service.Spec.Ports = []corev1.ServicePort{servicePort}

internal/controller/postgrescluster/patroni.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,17 @@ func (r *Reconciler) generatePatroniLeaderLeaseService(
272272
service.Spec.ExternalTrafficPolicy = initialize.FromPointer(spec.ExternalTrafficPolicy)
273273
service.Spec.InternalTrafficPolicy = spec.InternalTrafficPolicy
274274

275-
// Default to SingleStack if IP Family Policy is not defined
276-
if spec.IPFamilyPolicy == "" {
277-
spec.IPFamilyPolicy = "SingleStack"
275+
// Set IPFamilyPolicy and IPFamilies
276+
if spec.IPFamilyPolicy != "" {
277+
policy := corev1.IPFamilyPolicyType(spec.IPFamilyPolicy)
278+
service.Spec.IPFamilyPolicy = &policy
279+
}
280+
if len(spec.IPFamilies) > 0 {
281+
service.Spec.IPFamilies = []corev1.IPFamily{}
282+
for _, family := range spec.IPFamilies {
283+
service.Spec.IPFamilies = append(service.Spec.IPFamilies, corev1.IPFamily(family))
284+
}
278285
}
279-
service.Spec.IPFamilyPolicy = (*corev1.IPFamilyPolicy)(&spec.IPFamilyPolicy)
280286
}
281287
service.Spec.Ports = []corev1.ServicePort{servicePort}
282288

internal/controller/postgrescluster/pgadmin.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,17 @@ func (r *Reconciler) generatePGAdminService(
184184
service.Spec.ExternalTrafficPolicy = initialize.FromPointer(spec.ExternalTrafficPolicy)
185185
service.Spec.InternalTrafficPolicy = spec.InternalTrafficPolicy
186186

187-
// Default to SingleStack if IP Family Policy is not defined
188-
if spec.IPFamilyPolicy == "" {
189-
spec.IPFamilyPolicy = "SingleStack"
187+
// Set IPFamilyPolicy and IPFamilies
188+
if spec.IPFamilyPolicy != "" {
189+
policy := corev1.IPFamilyPolicyType(spec.IPFamilyPolicy)
190+
service.Spec.IPFamilyPolicy = &policy
191+
}
192+
if len(spec.IPFamilies) > 0 {
193+
service.Spec.IPFamilies = []corev1.IPFamily{}
194+
for _, family := range spec.IPFamilies {
195+
service.Spec.IPFamilies = append(service.Spec.IPFamilies, corev1.IPFamily(family))
196+
}
190197
}
191-
service.Spec.IPFamilyPolicy = (*corev1.IPFamilyPolicy)(&spec.IPFamilyPolicy)
192198
}
193199
service.Spec.Ports = []corev1.ServicePort{servicePort}
194200

internal/controller/postgrescluster/pgbouncer.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,17 @@ func (r *Reconciler) generatePGBouncerService(
307307
service.Spec.ExternalTrafficPolicy = initialize.FromPointer(spec.ExternalTrafficPolicy)
308308
service.Spec.InternalTrafficPolicy = spec.InternalTrafficPolicy
309309

310-
// Default to SingleStack if IP Family Policy is not defined
311-
if spec.IPFamilyPolicy == "" {
312-
spec.IPFamilyPolicy = "SingleStack"
310+
// Set IPFamilyPolicy and IPFamilies
311+
if spec.IPFamilyPolicy != "" {
312+
policy := corev1.IPFamilyPolicyType(spec.IPFamilyPolicy)
313+
service.Spec.IPFamilyPolicy = &policy
314+
}
315+
if len(spec.IPFamilies) > 0 {
316+
service.Spec.IPFamilies = []corev1.IPFamily{}
317+
for _, family := range spec.IPFamilies {
318+
service.Spec.IPFamilies = append(service.Spec.IPFamilies, corev1.IPFamily(family))
319+
}
313320
}
314-
service.Spec.IPFamilyPolicy = (*corev1.IPFamilyPolicy)(&spec.IPFamilyPolicy)
315321
}
316322
service.Spec.Ports = []corev1.ServicePort{servicePort}
317323

0 commit comments

Comments
 (0)