Skip to content

Commit 50591b2

Browse files
Merge pull request #646 from stuggi/tlse_ironic
[tlse] internal TLS support for ironic
2 parents 24378d9 + 6282a3f commit 50591b2

File tree

7 files changed

+96
-8
lines changed

7 files changed

+96
-8
lines changed

apis/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5852,6 +5852,24 @@ spec:
58525852
x-kubernetes-int-or-string: true
58535853
type: object
58545854
type: object
5855+
tls:
5856+
properties:
5857+
api:
5858+
properties:
5859+
internal:
5860+
properties:
5861+
secretName:
5862+
type: string
5863+
type: object
5864+
public:
5865+
properties:
5866+
secretName:
5867+
type: string
5868+
type: object
5869+
type: object
5870+
caBundleSecretName:
5871+
type: string
5872+
type: object
58555873
type: object
58565874
ironicConductors:
58575875
items:
@@ -6110,6 +6128,24 @@ spec:
61106128
type: string
61116129
storageClass:
61126130
type: string
6131+
tls:
6132+
properties:
6133+
api:
6134+
properties:
6135+
internal:
6136+
properties:
6137+
secretName:
6138+
type: string
6139+
type: object
6140+
public:
6141+
properties:
6142+
secretName:
6143+
type: string
6144+
type: object
6145+
type: object
6146+
caBundleSecretName:
6147+
type: string
6148+
type: object
61136149
type: object
61146150
ironicNeutronAgent:
61156151
properties:

apis/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/openstack-k8s-operators/heat-operator/api v0.3.1-0.20240126104104-98b57e66f7b5
1313
github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-f2df1172f89e
1414
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039
15-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810
15+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807
1616
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034
1717
github.com/openstack-k8s-operators/lib-common/modules/common v0.3.1-0.20240124141114-55d029e4658b
1818
github.com/openstack-k8s-operators/manila-operator/api v0.3.1-0.20240125214002-8d4df0d9e4d6

apis/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-
144144
github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-f2df1172f89e/go.mod h1:5U3y8EfcYL21ipAXxPgVMSSfSOdCRN0wNmh0L7aREKw=
145145
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039 h1:z48vu+NVNS2Pt5Pv0DLSUpTFfb1nqb8jweC2ZRurNlw=
146146
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039/go.mod h1:M3859LWhTb+9zahzU3nhkrwUBvAgTmLPaG10haK9djM=
147-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810 h1:fUJThA4L42a7q3RBWZS63vP/iyDw2Zeoz5LFs48e3vU=
148-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810/go.mod h1:ucxn3iX+wWE+8khOSw+RnE6aUhuUENF5M1MHNnlYYPo=
147+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807 h1:pCGPzFAo85glN8ApN45uyxQ8uaOPCDQYdfF2Kh0ReK8=
148+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807/go.mod h1:NlnYSKt/RKA28cKgtyYy0nUubhfdZ3QP+dkgjyyAl5I=
149149
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034 h1:aEtjPHkCsANdkB8pirv7r9p7DE0KOBwxUvaVA5LPua8=
150150
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034/go.mod h1:bgVKIMNoFsK3roq5DA8BBn3Cpxh8PRTqYhBgnlRhWvk=
151151
github.com/openstack-k8s-operators/lib-common/modules/common v0.3.1-0.20240124141114-55d029e4658b h1:8tPUN0Aj4MKEltI2pv3vjy2HyxPEAYXcs6UNrz2vzm8=

config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5852,6 +5852,24 @@ spec:
58525852
x-kubernetes-int-or-string: true
58535853
type: object
58545854
type: object
5855+
tls:
5856+
properties:
5857+
api:
5858+
properties:
5859+
internal:
5860+
properties:
5861+
secretName:
5862+
type: string
5863+
type: object
5864+
public:
5865+
properties:
5866+
secretName:
5867+
type: string
5868+
type: object
5869+
type: object
5870+
caBundleSecretName:
5871+
type: string
5872+
type: object
58555873
type: object
58565874
ironicConductors:
58575875
items:
@@ -6110,6 +6128,24 @@ spec:
61106128
type: string
61116129
storageClass:
61126130
type: string
6131+
tls:
6132+
properties:
6133+
api:
6134+
properties:
6135+
internal:
6136+
properties:
6137+
secretName:
6138+
type: string
6139+
type: object
6140+
public:
6141+
properties:
6142+
secretName:
6143+
type: string
6144+
type: object
6145+
type: object
6146+
caBundleSecretName:
6147+
type: string
6148+
type: object
61136149
type: object
61146150
ironicNeutronAgent:
61156151
properties:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/openstack-k8s-operators/heat-operator/api v0.3.1-0.20240126104104-98b57e66f7b5
1818
github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-f2df1172f89e
1919
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039
20-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810
20+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807
2121
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034
2222
github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.0.0-20240124141114-55d029e4658b
2323
github.com/openstack-k8s-operators/lib-common/modules/common v0.3.1-0.20240124141114-55d029e4658b

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-
157157
github.com/openstack-k8s-operators/horizon-operator/api v0.3.1-0.20240107213124-f2df1172f89e/go.mod h1:5U3y8EfcYL21ipAXxPgVMSSfSOdCRN0wNmh0L7aREKw=
158158
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039 h1:z48vu+NVNS2Pt5Pv0DLSUpTFfb1nqb8jweC2ZRurNlw=
159159
github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240131020128-fea7453a8039/go.mod h1:M3859LWhTb+9zahzU3nhkrwUBvAgTmLPaG10haK9djM=
160-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810 h1:fUJThA4L42a7q3RBWZS63vP/iyDw2Zeoz5LFs48e3vU=
161-
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240112015156-0cd36db16810/go.mod h1:ucxn3iX+wWE+8khOSw+RnE6aUhuUENF5M1MHNnlYYPo=
160+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807 h1:pCGPzFAo85glN8ApN45uyxQ8uaOPCDQYdfF2Kh0ReK8=
161+
github.com/openstack-k8s-operators/ironic-operator/api v0.3.1-0.20240201134523-df1ac5ea0807/go.mod h1:NlnYSKt/RKA28cKgtyYy0nUubhfdZ3QP+dkgjyyAl5I=
162162
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034 h1:aEtjPHkCsANdkB8pirv7r9p7DE0KOBwxUvaVA5LPua8=
163163
github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240125201204-a18a1e700034/go.mod h1:bgVKIMNoFsK3roq5DA8BBn3Cpxh8PRTqYhBgnlRhWvk=
164164
github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.0.0-20240124141114-55d029e4658b h1:j4kZGURzJ97rc8SAUeyQr9AUB27xjqJ6imbYMusOin0=

pkg/openstack/ironic.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,14 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl
6464
}
6565
}
6666

67+
// preserve any previously set TLS certs,set CA cert
68+
if instance.Spec.TLS.Enabled(service.EndpointInternal) {
69+
instance.Spec.Ironic.Template.IronicAPI.TLS = ironic.Spec.IronicAPI.TLS
70+
instance.Spec.Ironic.Template.IronicInspector.TLS = ironic.Spec.IronicInspector.TLS
71+
}
72+
instance.Spec.Ironic.Template.IronicAPI.TLS.CaBundleSecretName = instance.Status.TLS.CaBundleSecretName
73+
instance.Spec.Ironic.Template.IronicInspector.TLS.CaBundleSecretName = instance.Status.TLS.CaBundleSecretName
74+
6775
// Ironic API
6876
if ironic.Status.Conditions.IsTrue(ironicv1.IronicAPIReadyCondition) {
6977
svcs, err := service.GetServicesListWithLabel(
@@ -85,7 +93,7 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl
8593
instance.Spec.Ironic.Template.IronicAPI.Override.Service,
8694
instance.Spec.Ironic.APIOverride,
8795
corev1beta1.OpenStackControlPlaneExposeIronicReadyCondition,
88-
true, // TODO: (mschuppert) disable TLS for now until implemented
96+
false, // TODO (mschuppert) could be removed when all integrated service support TLS
8997
)
9098
if err != nil {
9199
return ctrlResult, err
@@ -94,6 +102,10 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl
94102
}
95103

96104
instance.Spec.Ironic.Template.IronicAPI.Override.Service = endpointDetails.GetEndpointServiceOverrides()
105+
106+
// update TLS settings with cert secret
107+
instance.Spec.Ironic.Template.IronicAPI.TLS.API.Public.SecretName = endpointDetails.GetEndptCertSecret(service.EndpointPublic)
108+
instance.Spec.Ironic.Template.IronicAPI.TLS.API.Internal.SecretName = endpointDetails.GetEndptCertSecret(service.EndpointInternal)
97109
}
98110

99111
// Ironic Inspector
@@ -117,7 +129,7 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl
117129
instance.Spec.Ironic.Template.IronicInspector.Override.Service,
118130
instance.Spec.Ironic.InspectorOverride,
119131
corev1beta1.OpenStackControlPlaneExposeIronicReadyCondition,
120-
true, // TODO: (mschuppert) disable TLS for now until implemented
132+
false, // TODO (mschuppert) could be removed when all integrated service support TLS
121133
)
122134
if err != nil {
123135
return ctrlResult, err
@@ -126,6 +138,10 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl
126138
}
127139

128140
instance.Spec.Ironic.Template.IronicInspector.Override.Service = endpointDetails.GetEndpointServiceOverrides()
141+
142+
// update TLS settings with cert secret
143+
instance.Spec.Ironic.Template.IronicInspector.TLS.API.Public.SecretName = endpointDetails.GetEndptCertSecret(service.EndpointPublic)
144+
instance.Spec.Ironic.Template.IronicInspector.TLS.API.Internal.SecretName = endpointDetails.GetEndptCertSecret(service.EndpointInternal)
129145
}
130146

131147
Log.Info("Reconciling Ironic", "Ironic.Namespace", instance.Namespace, "Ironic.Name", "ironic")

0 commit comments

Comments
 (0)