Skip to content

Commit 41fb4f1

Browse files
committed
Extract nova04 BMH-related configurations
Create a separate kustomization for BMH and provisioning to make it applicably independently from nodeset. Remove duplicated inclusion of network values source for control plane stage in automation. 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 41fb4f1

File tree

11 files changed

+180
-130
lines changed

11 files changed

+180
-130
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 & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,32 @@ 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:
39-
- name: network-values
40-
src_file: networking/nncp/values.yaml
4139
- name: service-values
4240
src_file: service-values.yaml
4341
build_output: control-plane.yaml
4442

45-
- name: edpm-nodeset
46-
path: examples/dt/nova/nova04delta/edpm/nodeset
43+
- name: baremetalhosts-configuration
44+
path: examples/dt/nova/nova04delta/edpm/baremetalhosts
4745
wait_conditions:
4846
- >-
4947
oc -n openstack wait baremetalhosts.metal3.io edpm-compute-0
5048
--for=jsonpath='{.status.provisioning.state}'=available
5149
--timeout=10m
50+
- >-
51+
oc -n openstack wait osctlplane controlplane
52+
--for condition=Ready
53+
--timeout=40m
54+
values:
55+
- name: baremetalhost-values
56+
src_file: values.yaml
57+
build_output: baremetalhosts.yaml
58+
59+
- name: edpm-nodeset
60+
path: examples/dt/nova/nova04delta/edpm/nodeset
61+
wait_conditions:
5262
- >-
5363
oc -n openstack wait
5464
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)