Skip to content

Commit 995b36f

Browse files
committed
Use dns cluster info from lib common get function
Openshift coreDNS creates the domain name using an string located in dnses.operator.openshift.io. This string can change in the future, calling lib-common/GetDNSClusterDomain the responsability of gathering this information correctly only falls under lib-common intead of all operators. Depends-on: openstack-k8s-operators/lib-common#580 Resolves: OSPRH-3627
1 parent 559ee7c commit 995b36f

9 files changed

Lines changed: 41 additions & 24 deletions

File tree

pkg/openstack/common.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1"
2020
keystonev1 "github.com/openstack-k8s-operators/keystone-operator/api/v1beta1"
2121
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
22+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
2223
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
2324
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
2425
"github.com/openstack-k8s-operators/lib-common/modules/common/route"
@@ -58,9 +59,6 @@ const (
5859
// overrides
5960
ooAppSelector = "osctlplane-service"
6061

61-
// ClusterInternalDomain - cluster internal dns domain
62-
ClusterInternalDomain = "cluster.local"
63-
6462
// serviceCertSelector selector passed to cert-manager to set on the service cert secret
6563
serviceCertSelector = "service-cert"
6664

@@ -209,6 +207,7 @@ func EnsureEndpointConfig(
209207
endpoints := Endpoints{
210208
EndpointDetails: map[service.Endpoint]EndpointDetail{},
211209
}
210+
clusterDomain := clusterdns.GetDNSClusterDomain()
212211

213212
for _, svc := range svcs.Items {
214213
ed := EndpointDetail{
@@ -316,7 +315,7 @@ func EnsureEndpointConfig(
316315
CertName: ed.Service.TLS.CertName,
317316
Hostnames: []string{
318317
fmt.Sprintf("%s.%s.svc", ed.Name, instance.Namespace),
319-
fmt.Sprintf("%s.%s.svc.%s", ed.Name, instance.Namespace, ClusterInternalDomain),
318+
fmt.Sprintf("%s.%s.svc.%s", ed.Name, instance.Namespace, clusterDomain),
320319
},
321320
Ips: nil,
322321
Annotations: ed.Annotations,
@@ -366,7 +365,7 @@ func EnsureEndpointConfig(
366365
CertName: ed.Service.TLS.CertName,
367366
Hostnames: []string{
368367
fmt.Sprintf("%s.%s.svc", ed.Name, instance.Namespace),
369-
fmt.Sprintf("%s.%s.svc.%s", ed.Name, instance.Namespace, ClusterInternalDomain),
368+
fmt.Sprintf("%s.%s.svc.%s", ed.Name, instance.Namespace, clusterDomain),
370369
},
371370
Ips: nil,
372371
Annotations: ed.Annotations,

pkg/openstack/galera.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
99
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
10+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
1011
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
1112
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
1213
mariadbv1 "github.com/openstack-k8s-operators/mariadb-operator/api/v1beta1"
@@ -41,6 +42,7 @@ func ReconcileGaleras(
4142

4243
var failures = []string{}
4344
var inprogress = []string{}
45+
clusterDomain := clusterdns.GetDNSClusterDomain()
4446

4547
if instance.Spec.Galera.Templates == nil {
4648
instance.Spec.Galera.Templates = ptr.To(map[string]mariadbv1.GaleraSpecCore{})
@@ -57,19 +59,19 @@ func ReconcileGaleras(
5759
CertName: fmt.Sprintf("galera-%s-svc", name),
5860
Hostnames: []string{
5961
hostname,
60-
fmt.Sprintf("%s.%s", hostname, ClusterInternalDomain),
62+
fmt.Sprintf("%s.%s", hostname, clusterDomain),
6163
hostnameHeadless,
62-
fmt.Sprintf("%s.%s", hostnameHeadless, ClusterInternalDomain),
64+
fmt.Sprintf("%s.%s", hostnameHeadless, clusterDomain),
6365
fmt.Sprintf("*.%s", hostnameHeadless),
64-
fmt.Sprintf("*.%s.%s", hostnameHeadless, ClusterInternalDomain),
66+
fmt.Sprintf("*.%s.%s", hostnameHeadless, clusterDomain),
6567
},
6668
// Note (dciabrin) from https://github.com/openstack-k8s-operators/openstack-operator/pull/678#issuecomment-1952459166
6769
// the certificate created for galera should populate the 'organization' field,
6870
// otherwise this trip the SST transfer setup done by wsrep_sst_rsync. This will not show
6971
// at the initial deployment because there is no SST involved when the DB is bootstrapped
7072
// as there are no data to be transferred yet.
7173
Subject: &certmgrv1.X509Subject{
72-
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, ClusterInternalDomain)},
74+
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, clusterDomain)},
7375
},
7476
Usages: []certmgrv1.KeyUsage{
7577
"key encipherment",

pkg/openstack/memcached.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
memcachedv1 "github.com/openstack-k8s-operators/infra-operator/apis/memcached/v1beta1"
99
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
10+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
1011
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
1112
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
1213
"github.com/openstack-k8s-operators/lib-common/modules/common/tls"
@@ -168,14 +169,15 @@ func reconcileMemcached(
168169
tlsCert := ""
169170
if instance.Spec.TLS.PodLevel.Enabled {
170171
Log.Info("Reconciling Memcached TLS", "Memcached.Namespace", instance.Namespace, "Memcached.Name", name)
172+
clusterDomain := clusterdns.GetDNSClusterDomain()
171173
certRequest := certmanager.CertificateRequest{
172174
IssuerName: instance.GetInternalIssuer(),
173175
CertName: fmt.Sprintf("%s-svc", memcached.Name),
174176
Hostnames: []string{
175177
fmt.Sprintf("%s.%s.svc", name, instance.Namespace),
176178
fmt.Sprintf("*.%s.%s.svc", name, instance.Namespace),
177-
fmt.Sprintf("%s.%s.svc.%s", name, instance.Namespace, ClusterInternalDomain),
178-
fmt.Sprintf("*.%s.%s.svc.%s", name, instance.Namespace, ClusterInternalDomain),
179+
fmt.Sprintf("%s.%s.svc.%s", name, instance.Namespace, clusterDomain),
180+
fmt.Sprintf("*.%s.%s.svc.%s", name, instance.Namespace, clusterDomain),
179181
},
180182
Labels: map[string]string{serviceCertSelector: ""},
181183
}

pkg/openstack/neutron.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
88
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
9+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
910
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
1011
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
1112
"github.com/openstack-k8s-operators/lib-common/modules/common/service"
@@ -68,13 +69,14 @@ func ReconcileNeutron(ctx context.Context, instance *corev1beta1.OpenStackContro
6869
instance.Spec.Neutron.Template.TLS = neutronAPI.Spec.TLS
6970

7071
serviceName := "neutron"
72+
clusterDomain := clusterdns.GetDNSClusterDomain()
7173
// create ovndb client certificate for neutron
7274
certRequest := certmanager.CertificateRequest{
7375
IssuerName: instance.GetOvnIssuer(),
7476
CertName: fmt.Sprintf("%s-ovndbs", serviceName),
7577
Hostnames: []string{
7678
fmt.Sprintf("%s.%s.svc", serviceName, instance.Namespace),
77-
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, "cluster.local"),
79+
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, clusterDomain),
7880
},
7981
Ips: nil,
8082
Usages: []certmgrv1.KeyUsage{

pkg/openstack/nova.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"fmt"
2222

2323
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
24+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
2425
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
2526
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
2627
"github.com/openstack-k8s-operators/lib-common/modules/common/service"
@@ -273,6 +274,7 @@ func ReconcileNova(ctx context.Context, instance *corev1beta1.OpenStackControlPl
273274

274275
// create novncproxy vencrypt cert
275276
if instance.Spec.TLS.PodLevel.Enabled {
277+
clusterDomain := clusterdns.GetDNSClusterDomain()
276278
serviceName := endpointDetails.EndpointDetails[service.EndpointPublic].Service.Spec.Name
277279
hostname := fmt.Sprintf("%s.%s.svc", serviceName, instance.Namespace)
278280
certRequest := certmanager.CertificateRequest{
@@ -281,10 +283,10 @@ func ReconcileNova(ctx context.Context, instance *corev1beta1.OpenStackControlPl
281283
CommonName: ptr.To(serviceName), // common name has a max length of 64bytes, therefore just set the short name
282284
Hostnames: []string{
283285
hostname,
284-
fmt.Sprintf("%s.%s", hostname, ClusterInternalDomain),
286+
fmt.Sprintf("%s.%s", hostname, clusterDomain),
285287
},
286288
Subject: &certmgrv1.X509Subject{
287-
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, ClusterInternalDomain)},
289+
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, clusterDomain)},
288290
},
289291
Usages: []certmgrv1.KeyUsage{
290292
certmgrv1.UsageKeyEncipherment,

pkg/openstack/octavia.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
2424
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
25+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
2526
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
2627
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
2728
"github.com/openstack-k8s-operators/lib-common/modules/common/service"
@@ -81,6 +82,7 @@ func ReconcileOctavia(ctx context.Context, instance *corev1beta1.OpenStackContro
8182

8283
// preserve any previously set TLS certs, set CA cert
8384
if instance.Spec.TLS.PodLevel.Enabled {
85+
clusterDomain := clusterdns.GetDNSClusterDomain()
8486
instance.Spec.Octavia.Template.OctaviaAPI.TLS = octavia.Spec.OctaviaAPI.TLS
8587

8688
serviceName := "octavia"
@@ -90,7 +92,7 @@ func ReconcileOctavia(ctx context.Context, instance *corev1beta1.OpenStackContro
9092
CertName: fmt.Sprintf("%s-ovndbs", serviceName),
9193
Hostnames: []string{
9294
fmt.Sprintf("%s.%s.svc", serviceName, instance.Namespace),
93-
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, ClusterInternalDomain),
95+
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, clusterDomain),
9496
},
9597
Ips: nil,
9698
Usages: []certmgrv1.KeyUsage{

pkg/openstack/ovn.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66

77
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
8+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
89
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
910
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
1011

@@ -73,6 +74,7 @@ func ReconcileOVN(ctx context.Context, instance *corev1beta1.OpenStackControlPla
7374

7475
func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (bool, error) {
7576
Log := GetLogger(ctx)
77+
dnsSuffix := clusterdns.GetDNSClusterDomain()
7678

7779
OVNDBClustersReady := len(instance.Spec.Ovn.Template.OVNDBCluster) != 0
7880
for name, dbcluster := range instance.Spec.Ovn.Template.OVNDBCluster {
@@ -111,7 +113,7 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack
111113
// Cert needs to be valid for the individual pods in the statefulset so make this a wildcard cert
112114
Hostnames: []string{
113115
fmt.Sprintf("*.%s.svc", instance.Namespace),
114-
fmt.Sprintf("*.%s.svc.%s", instance.Namespace, ovnv1.DNSSuffix),
116+
fmt.Sprintf("*.%s.svc.%s", instance.Namespace, dnsSuffix),
115117
},
116118
Ips: nil,
117119
Usages: []certmgrv1.KeyUsage{
@@ -217,6 +219,7 @@ func ReconcileOVNNorthd(ctx context.Context, instance *corev1beta1.OpenStackCont
217219
}
218220
if instance.Spec.TLS.PodLevel.Enabled {
219221
ovnNorthdSpec.TLS = OVNNorthd.Spec.TLS
222+
dnsSuffix := clusterdns.GetDNSClusterDomain()
220223

221224
serviceName := ovnv1.ServiceNameOvnNorthd
222225
// create certificate for ovnnorthd
@@ -225,7 +228,7 @@ func ReconcileOVNNorthd(ctx context.Context, instance *corev1beta1.OpenStackCont
225228
CertName: fmt.Sprintf("%s-ovndbs", "ovnnorthd"),
226229
Hostnames: []string{
227230
fmt.Sprintf("%s.%s.svc", serviceName, instance.Namespace),
228-
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, ovnv1.DNSSuffix),
231+
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, dnsSuffix),
229232
},
230233
Ips: nil,
231234
Usages: []certmgrv1.KeyUsage{
@@ -338,6 +341,7 @@ func ReconcileOVNController(ctx context.Context, instance *corev1beta1.OpenStack
338341
}
339342
}
340343
if instance.Spec.TLS.PodLevel.Enabled {
344+
dnsSuffix := clusterdns.GetDNSClusterDomain()
341345
ovnControllerSpec.TLS = OVNController.Spec.TLS
342346

343347
serviceName := ovnv1.ServiceNameOvnController
@@ -347,7 +351,7 @@ func ReconcileOVNController(ctx context.Context, instance *corev1beta1.OpenStack
347351
CertName: fmt.Sprintf("%s-ovndbs", "ovncontroller"),
348352
Hostnames: []string{
349353
fmt.Sprintf("%s.%s.svc", serviceName, instance.Namespace),
350-
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, ovnv1.DNSSuffix),
354+
fmt.Sprintf("%s.%s.svc.%s", serviceName, instance.Namespace, dnsSuffix),
351355
},
352356
Ips: nil,
353357
Usages: []certmgrv1.KeyUsage{

pkg/openstack/rabbitmq.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
99
networkv1 "github.com/openstack-k8s-operators/infra-operator/apis/network/v1beta1"
1010
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
11+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
1112
condition "github.com/openstack-k8s-operators/lib-common/modules/common/condition"
1213
"github.com/openstack-k8s-operators/lib-common/modules/common/configmap"
1314
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
@@ -259,13 +260,14 @@ func reconcileRabbitMQ(
259260
},
260261
}
261262

263+
clusterDomain := clusterdns.GetDNSClusterDomain()
262264
hostname := fmt.Sprintf("%s.%s.svc", name, instance.Namespace)
263265
hostnameHeadless := fmt.Sprintf("%s-nodes.%s.svc", name, instance.Namespace)
264266
hostnames := []string{
265267
hostname,
266-
fmt.Sprintf("%s.%s", hostname, ClusterInternalDomain),
268+
fmt.Sprintf("%s.%s", hostname, clusterDomain),
267269
hostnameHeadless,
268-
fmt.Sprintf("%s.%s", hostnameHeadless, ClusterInternalDomain),
270+
fmt.Sprintf("%s.%s", hostnameHeadless, clusterDomain),
269271
}
270272
for i := 0; i < int(*spec.Replicas); i++ {
271273
hostnames = append(hostnames, fmt.Sprintf("%s-server-%d.%s-nodes.%s", name, i, name, instance.Namespace))
@@ -278,7 +280,7 @@ func reconcileRabbitMQ(
278280
CertName: fmt.Sprintf("%s-svc", rabbitmq.Name),
279281
Hostnames: hostnames,
280282
Subject: &certmgrv1.X509Subject{
281-
Organizations: []string{fmt.Sprintf("%s.%s", rabbitmq.Namespace, ClusterInternalDomain)},
283+
Organizations: []string{fmt.Sprintf("%s.%s", rabbitmq.Namespace, clusterDomain)},
282284
},
283285
Usages: []certmgrv1.KeyUsage{
284286
certmgrv1.UsageKeyEncipherment,

pkg/openstack/redis.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
certmgrv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
99
redisv1 "github.com/openstack-k8s-operators/infra-operator/apis/redis/v1beta1"
1010
"github.com/openstack-k8s-operators/lib-common/modules/certmanager"
11+
"github.com/openstack-k8s-operators/lib-common/modules/common/clusterdns"
1112
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
1213
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
1314
"github.com/openstack-k8s-operators/lib-common/modules/common/tls"
@@ -180,17 +181,18 @@ func reconcileRedis(
180181

181182
tlsCert := ""
182183
if instance.Spec.TLS.PodLevel.Enabled {
184+
clusterDomain := clusterdns.GetDNSClusterDomain()
183185
certRequest := certmanager.CertificateRequest{
184186
IssuerName: instance.GetInternalIssuer(),
185187
CertName: fmt.Sprintf("%s-svc", redis.Name),
186188
Hostnames: []string{
187189
fmt.Sprintf("redis-%s.%s.svc", name, instance.Namespace),
188190
fmt.Sprintf("*.redis-%s.%s.svc", name, instance.Namespace),
189-
fmt.Sprintf("redis-%s.%s.svc.%s", name, instance.Namespace, ClusterInternalDomain),
190-
fmt.Sprintf("*.redis-%s.%s.svc.%s", name, instance.Namespace, ClusterInternalDomain),
191+
fmt.Sprintf("redis-%s.%s.svc.%s", name, instance.Namespace, clusterDomain),
192+
fmt.Sprintf("*.redis-%s.%s.svc.%s", name, instance.Namespace, clusterDomain),
191193
},
192194
Subject: &certmgrv1.X509Subject{
193-
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, ClusterInternalDomain)},
195+
Organizations: []string{fmt.Sprintf("%s.%s", instance.Namespace, clusterDomain)},
194196
},
195197
Usages: []certmgrv1.KeyUsage{
196198
"key encipherment",

0 commit comments

Comments
 (0)