Skip to content

Commit 5208198

Browse files
Merge pull request #655 from bogdando/OSPRH-21650
Extract nova04 BMH-related configurations and fix T-O configs Adjust nova04delta T-O, add DNS and BMO layers Add DNS config and ctlplane NAD for T-O When T-O uses ctlplane net for metrics scrapping on EDPM hosts, additional Openshift DNS servers must be added to let it resolving FQDN of EDPM hosts on controlplane network. Note that cifmw addresses this differently, however, nova04delta is also used outside of cifmw. Enable metricStorage/dashboard. Also, as documented for T-O, add ctlplane NAD for metrics storage template spec in oscp CR. Simplify bmh kustzomiation and extract BMO into a separate kustomization for allowing it in parallel steps in CI. Create a separate kustomization for BMH and provisioning to make it applicable independently of nodeset. Adjust automation to create CP and BMH in parallel. The stages will now execute as follows: nncp-configuration (networking setup) network-configuration (MetalLB setup) control-plane and baremetalhosts-configuration (run in parallel) edpm-nodeset (depends on both control plane and BMH being ready) edpm-deployment (final deployment) Align nvidia-vfio VA with underlying DT changes 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 Jira: OSPRH-21650 Reviewed-by: Andrew Bays <[email protected]> Reviewed-by: Bogdan Dobrelya
2 parents c16eae9 + 8da3c85 commit 5208198

File tree

22 files changed

+348
-175
lines changed

22 files changed

+348
-175
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: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,49 @@ 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: dns-configuration
46+
path: examples/dt/nova/nova04delta/control-plane/networking/dns
47+
wait_conditions:
48+
- >-
49+
oc -n openshift-dns wait dns.operator/default --for condition=Available
50+
--timeout=20m
51+
values:
52+
- name: dns-values
53+
src_file: values.yaml
54+
build_output: dns.yaml
55+
56+
- name: baremetalhosts-configuration
57+
path: examples/dt/nova/nova04delta/edpm/baremetalhosts
4758
wait_conditions:
4859
- >-
4960
oc -n openstack wait baremetalhosts.metal3.io edpm-compute-0
5061
--for=jsonpath='{.status.provisioning.state}'=available
51-
--timeout=10m
62+
--timeout=20m
63+
- >-
64+
oc -n openstack wait osctlplane controlplane
65+
--for condition=Ready
66+
--timeout=20m
67+
values:
68+
- name: baremetalhost-values
69+
src_file: values.yaml
70+
build_output: baremetalhosts.yaml
71+
72+
- name: edpm-nodeset
73+
path: examples/dt/nova/nova04delta/edpm/nodeset
74+
wait_conditions:
5275
- >-
5376
oc -n openstack wait
5477
osdpns openstack-edpm --for condition=SetupReady
55-
--timeout=60m
78+
--timeout=20m
5679
values:
5780
- name: edpm-nodeset-values
5881
src_file: values.yaml

dt/nova/nova04delta/edpm/nodeset/baremetalhost_template.yaml renamed to dt/nova/nova04delta/edpm/baremetalhosts/baremetalhosts.yaml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
---
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: edpm-compute-0-preprovision-network-data
6+
namespace: openstack
7+
type: Opaque
8+
stringData: {}
9+
---
210
apiVersion: metal3.io/v1alpha1
311
kind: BareMetalHost
412
metadata:
513
labels: {}
6-
name: _ignored_
7-
namespace: _replaced_
14+
name: edpm-compute-0
15+
namespace: openstack
816
annotations:
9-
inspect.metal3.io: _replaced_
17+
inspect.metal3.io: ""
1018
spec:
1119
architecture: x86_64
1220
automatedCleaningMode: metadata
@@ -17,4 +25,3 @@ spec:
1725
bootMode: UEFI
1826
rootDeviceHints: {}
1927
online: true
20-
preprovisioningNetworkDataName: _replaced_
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: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
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+
replacements:
33+
# Labels
34+
- source:
35+
kind: ConfigMap
36+
name: baremetalhost-values
37+
fieldPath: data.edpm-compute-0.labels
38+
targets:
39+
- select:
40+
kind: BareMetalHost
41+
name: edpm-compute-0
42+
fieldPaths:
43+
- metadata.labels
44+
options:
45+
create: true
46+
47+
# Enable/Disable Metal3 Inspection
48+
- source:
49+
kind: ConfigMap
50+
name: baremetalhost-values
51+
fieldPath: data.metal3_inspection
52+
targets:
53+
- select:
54+
kind: BareMetalHost
55+
fieldPaths:
56+
- metadata.annotations.inspect\.metal3\.io
57+
options:
58+
create: true
59+
60+
# BMC Configuration
61+
- source:
62+
kind: ConfigMap
63+
name: baremetalhost-values
64+
fieldPath: data.edpm-compute-0.bmc
65+
targets:
66+
- select:
67+
kind: BareMetalHost
68+
name: edpm-compute-0
69+
fieldPaths:
70+
- spec.bmc
71+
options:
72+
create: true
73+
74+
# bootMACAddress
75+
- source:
76+
kind: ConfigMap
77+
name: baremetalhost-values
78+
fieldPath: data.edpm-compute-0.bootMACAddress
79+
targets:
80+
- select:
81+
kind: BareMetalHost
82+
name: edpm-compute-0
83+
fieldPaths:
84+
- spec.bootMACAddress
85+
options:
86+
create: true
87+
88+
# rootDeviceHints
89+
- source:
90+
kind: ConfigMap
91+
name: baremetalhost-values
92+
fieldPath: data.edpm-compute-0.rootDeviceHints
93+
targets:
94+
- select:
95+
kind: BareMetalHost
96+
name: edpm-compute-0
97+
fieldPaths:
98+
- spec.rootDeviceHints
99+
options:
100+
create: true
101+
102+
# preprovisioningNetworkData
103+
- source:
104+
kind: ConfigMap
105+
name: baremetalhost-values
106+
fieldPath: data.edpm-compute-0.preprovisioningNetworkData
107+
targets:
108+
- select:
109+
kind: Secret
110+
name: edpm-compute-0-preprovision-network-data
111+
fieldPaths:
112+
- stringData
113+
options:
114+
create: true

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

Lines changed: 0 additions & 15 deletions
This file was deleted.

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: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
apiVersion: operator.openshift.io/v1
3+
kind: DNS
4+
metadata:
5+
name: default
6+
spec:
7+
cache:
8+
negativeTTL: 0s
9+
positiveTTL: 0s
10+
logLevel: Normal
11+
nodePlacement: {}
12+
operatorLogLevel: Normal
13+
upstreamResolvers:
14+
policy: Sequential
15+
protocolStrategy: ""
16+
transportConfig: {}
17+
upstreams:
18+
- port: 53
19+
type: SystemResolvConf
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1alpha1
3+
kind: Component
4+
5+
resources:
6+
- dns.yaml
7+
8+
replacements:
9+
- source:
10+
kind: ConfigMap
11+
name: dns-values
12+
fieldPath: data.servers
13+
targets:
14+
- select:
15+
kind: DNS
16+
name: default
17+
fieldPaths:
18+
- spec.servers
19+
options:
20+
create: true

0 commit comments

Comments
 (0)