Skip to content

Commit 5630750

Browse files
committed
Extract nova04 BMH-related configurations
Create a separate kustomization for BMH and provisioning to make it applicably independently from nodeset. Adjust automation to create CP and BMH in parallel. The stages will now execute as follows: 1. nncp-configuration (networking setup) 2. network-configuration (MetalLB setup) 3. control-plane and baremetalhosts-configuration (run in parallel) 4. edpm-nodeset (depends on both control plane and BMH being ready) 5. edpm-deployment (final deployment) Unrelated change: * update gitignore for asdf .tool-versions to simplify local development when kustomize is installed with asdf. CI impact: rework extracted BMO values for baremetalhosts-configuration Signed-off-by: Bohdan Dobrelia <[email protected]>
1 parent 03d848d commit 5630750

File tree

11 files changed

+180
-128
lines changed

11 files changed

+180
-128
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ examples/dt/uni*/data-plane.yaml
44
examples/dt/uni*/networker/edpm-networker.yaml
55
.idea/
66
.aider*
7+
.tool-versions*

automation/vars/nova04delta.yaml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,34 @@ vas:
3333
wait_conditions:
3434
- >-
3535
oc -n openstack wait osctlplane controlplane
36-
--for condition=Ready
37-
--timeout=60m
36+
--for condition=OpenStackControlPlaneDNSReadyCondition
37+
--timeout=20m
3838
values:
3939
- name: network-values
4040
src_file: networking/nncp/values.yaml
4141
- name: service-values
4242
src_file: service-values.yaml
4343
build_output: control-plane.yaml
4444

45-
- name: edpm-nodeset
46-
path: examples/dt/nova/nova04delta/edpm/nodeset
45+
- name: baremetalhosts-configuration
46+
path: examples/dt/nova/nova04delta/edpm/baremetalhosts
4747
wait_conditions:
4848
- >-
4949
oc -n openstack wait baremetalhosts.metal3.io edpm-compute-0
5050
--for=jsonpath='{.status.provisioning.state}'=available
5151
--timeout=10m
52+
- >-
53+
oc -n openstack wait osctlplane controlplane
54+
--for condition=Ready
55+
--timeout=40m
56+
values:
57+
- name: baremetalhost-values
58+
src_file: values.yaml
59+
build_output: baremetalhosts.yaml
60+
61+
- name: edpm-nodeset
62+
path: examples/dt/nova/nova04delta/edpm/nodeset
63+
wait_conditions:
5264
- >-
5365
oc -n openstack wait
5466
osdpns openstack-edpm --for condition=SetupReady
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
username=admin
2+
password=password
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1alpha1
3+
kind: Component
4+
5+
transformers:
6+
# Set namespace to OpenStack on all namespaced objects without a namespace
7+
- |-
8+
apiVersion: builtin
9+
kind: NamespaceTransformer
10+
metadata:
11+
name: _ignored_
12+
namespace: openstack
13+
setRoleBindingSubjects: none
14+
unsetOnly: true
15+
fieldSpecs:
16+
- path: metadata/name
17+
kind: Namespace
18+
create: true
19+
20+
secretGenerator:
21+
- name: bmc-secret
22+
behavior: create
23+
envs:
24+
- bmc-secret.env
25+
options:
26+
disableNameSuffixHash: true
27+
28+
resources:
29+
- baremetalhosts.yaml
30+
- provisioning.yaml
31+
32+
patches:
33+
- target:
34+
kind: BareMetalHost
35+
path: baremetalhost_template.yaml
36+
- target:
37+
kind: BareMetalHost
38+
name: edpm-compute-0
39+
patch: |
40+
- op: replace
41+
path: /spec/preprovisioningNetworkDataName
42+
value: edpm-compute-0-preprovision-network-data
43+
44+
replacements:
45+
# Labels
46+
- source:
47+
kind: ConfigMap
48+
name: baremetalhost-values
49+
fieldPath: data.edpm-compute-0.labels
50+
targets:
51+
- select:
52+
kind: BareMetalHost
53+
name: edpm-compute-0
54+
fieldPaths:
55+
- metadata.labels
56+
options:
57+
create: true
58+
59+
# Enable/Disable Metal3 Inspection
60+
- source:
61+
kind: ConfigMap
62+
name: baremetalhost-values
63+
fieldPath: data.metal3_inspection
64+
targets:
65+
- select:
66+
kind: BareMetalHost
67+
fieldPaths:
68+
- metadata.annotations.inspect\.metal3\.io
69+
options:
70+
create: true
71+
72+
# BMC Configuration
73+
- source:
74+
kind: ConfigMap
75+
name: baremetalhost-values
76+
fieldPath: data.edpm-compute-0.bmc
77+
targets:
78+
- select:
79+
kind: BareMetalHost
80+
name: edpm-compute-0
81+
fieldPaths:
82+
- spec.bmc
83+
options:
84+
create: true
85+
86+
# bootMACAddress
87+
- source:
88+
kind: ConfigMap
89+
name: baremetalhost-values
90+
fieldPath: data.edpm-compute-0.bootMACAddress
91+
targets:
92+
- select:
93+
kind: BareMetalHost
94+
name: edpm-compute-0
95+
fieldPaths:
96+
- spec.bootMACAddress
97+
options:
98+
create: true
99+
100+
# rootDeviceHints
101+
- source:
102+
kind: ConfigMap
103+
name: baremetalhost-values
104+
fieldPath: data.edpm-compute-0.rootDeviceHints
105+
targets:
106+
- select:
107+
kind: BareMetalHost
108+
name: edpm-compute-0
109+
fieldPaths:
110+
- spec.rootDeviceHints
111+
options:
112+
create: true
113+
114+
# preprovisioningNetworkData
115+
- source:
116+
kind: ConfigMap
117+
name: baremetalhost-values
118+
fieldPath: data.edpm-compute-0.preprovisioningNetworkData
119+
targets:
120+
- select:
121+
kind: Secret
122+
name: edpm-compute-0-preprovision-network-data
123+
fieldPaths:
124+
- stringData
125+
options:
126+
create: true

dt/nova/nova04delta/edpm/nodeset/kustomization.yaml

Lines changed: 0 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,6 @@ components:
3131
resources:
3232
- network-data-secrets.yaml
3333
- nova_gpu.yaml
34-
- baremetalhost.yaml
35-
- provisioning.yaml
36-
37-
patches:
38-
- target:
39-
kind: BareMetalHost
40-
path: baremetalhost_template.yaml
4134

4235
replacements:
4336
# Nova compute CPU pinning customization
@@ -90,102 +83,6 @@ replacements:
9083
- spec.baremetalSetTemplate
9184
options:
9285
create: true
93-
# BareMetalHost
94-
- source:
95-
kind: ConfigMap
96-
name: edpm-nodeset-values
97-
fieldPath: data.baremetalhosts.edpm-compute-0.labels
98-
targets:
99-
- select:
100-
kind: BareMetalHost
101-
name: edpm-compute-0
102-
fieldPaths:
103-
- metadata.labels
104-
options:
105-
create: true
106-
- source:
107-
kind: ConfigMap
108-
name: edpm-nodeset-values
109-
fieldPath: data.metal3_inspection
110-
targets:
111-
- select:
112-
kind: BareMetalHost
113-
fieldPaths:
114-
- metadata.annotations.inspect\.metal3\.io
115-
options:
116-
create: true
117-
- source:
118-
kind: ConfigMap
119-
name: edpm-nodeset-values
120-
fieldPath: data.baremetalhosts.edpm-compute-0.bmc
121-
targets:
122-
- select:
123-
kind: BareMetalHost
124-
name: edpm-compute-0
125-
fieldPaths:
126-
- spec.bmc
127-
options:
128-
create: true
129-
- source:
130-
kind: ConfigMap
131-
name: edpm-nodeset-values
132-
fieldPath: data.baremetalhosts.edpm-compute-0.online
133-
targets:
134-
- select:
135-
kind: BareMetalHost
136-
name: edpm-compute-0
137-
fieldPaths:
138-
- spec.online
139-
options:
140-
create: true
141-
- source:
142-
kind: ConfigMap
143-
name: edpm-nodeset-values
144-
fieldPath: data.baremetalhosts.edpm-compute-0.preprovisioningNetworkDataName
145-
targets:
146-
- select:
147-
kind: BareMetalHost
148-
name: edpm-compute-0
149-
fieldPaths:
150-
- spec.preprovisioningNetworkDataName
151-
options:
152-
create: true
153-
- source:
154-
kind: ConfigMap
155-
name: edpm-nodeset-values
156-
fieldPath: data.baremetalhosts.edpm-compute-0.bootMACAddress
157-
targets:
158-
- select:
159-
kind: BareMetalHost
160-
name: edpm-compute-0
161-
fieldPaths:
162-
- spec.bootMACAddress
163-
options:
164-
create: true
165-
- source:
166-
kind: ConfigMap
167-
name: edpm-nodeset-values
168-
fieldPath: data.baremetalhosts.edpm-compute-0.rootDeviceHints
169-
targets:
170-
- select:
171-
kind: BareMetalHost
172-
name: edpm-compute-0
173-
fieldPaths:
174-
- spec.rootDeviceHints
175-
options:
176-
create: true
177-
- source:
178-
kind: ConfigMap
179-
name: edpm-nodeset-values
180-
fieldPath: data.baremetalhosts.edpm-compute-0.preprovisioningNetworkData
181-
targets:
182-
- select:
183-
kind: Secret
184-
name: edpm-compute-0-preprovision-network-data
185-
fieldPaths:
186-
- stringData
187-
options:
188-
create: true
18986
# BMO root password for provisioned host
19087
- source:
19188
kind: ConfigMap
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
components:
6+
- ../../../../../../dt/nova/nova04delta/edpm/baremetalhosts
7+
8+
resources:
9+
- values.yaml
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: baremetalhost-values
6+
annotations:
7+
config.kubernetes.io/local-config: "true"
8+
data:
9+
metal3_inspection: disabled
10+
edpm-compute-0:
11+
name: edpm-compute-0
12+
labels:
13+
app: openstack
14+
nodeset: edpm
15+
nodeName: edpm-compute-0
16+
bmc:
17+
address: CHANGEME
18+
credentialsName: bmc-secret
19+
disableCertificateVerification: true
20+
bootMACAddress: CHANGEME
21+
rootDeviceHints:
22+
deviceName: /dev/vda
23+
preprovisioningNetworkData:
24+
nmstate: |
25+
CHANGEME

0 commit comments

Comments
 (0)