@@ -35,12 +35,18 @@ spec:
3535 - name : device_id
3636 value : " {{steps.enroll-server.outputs.result}}"
3737 when : " {{steps.server-enroll-state.outputs.result}} == enroll"
38+ - - name : get-raid-config
39+ template : get-raid-config
3840 - - name : openstack-set-baremetal-node-raid-config
3941 template : openstack-set-baremetal-node-raid-config
4042 arguments :
4143 parameters :
4244 - name : device_id
4345 value : " {{steps.enroll-server.outputs.result}}"
46+ - name : controller_id
47+ value : " {{=jsonpath(steps.['get-raid-config'].outputs.result, $.controller)}}"
48+ - name : physical_disks
49+ value : " {{=jsonpath(steps.['get-raid-config'].outputs.result, $.physical_disks)}}"
4450 - - name : server-manage-state
4551 template : openstack-state-cmd
4652 arguments :
@@ -135,10 +141,44 @@ spec:
135141 items :
136142 - key : clouds.yaml
137143 path : clouds.yaml
144+ - name : get-raid-config
145+ container :
146+ image : ghcr.io/rackerlabs/understack/ironic-nautobot-client:latest
147+ command :
148+ - get-raid-devices
149+ args :
150+ - --ip-address
151+ - " {{workflow.parameters.ip_address}}"
152+ volumeMounts :
153+ - mountPath : /etc/openstack
154+ name : baremetal-manage
155+ readOnly : true
156+ - mountPath : /etc/bmc_master/
157+ name : bmc-master
158+ readOnly : true
159+ env :
160+ - name : WF_NS
161+ value : " {{workflow.namespace}}"
162+ - name : WF_NAME
163+ value : " {{workflow.name}}"
164+ - name : WF_UID
165+ value : " {{workflow.uid}}"
166+ volumes :
167+ - name : bmc-master
168+ secret :
169+ secretName : bmc-master
170+ - name : baremetal-manage
171+ secret :
172+ secretName : baremetal-manage
173+ items :
174+ - key : clouds.yaml
175+ path : clouds.yaml
138176 - name : openstack-set-baremetal-node-raid-config
139177 inputs :
140178 parameters :
141179 - name : device_id
180+ - name : controller_id
181+ - name : physical_disks
142182 # https://rackerlabs.github.io/understack/user-guide/openstack-ironic/#setting-baremetal-node-flavor
143183 script :
144184 image : ghcr.io/rackerlabs/understack/openstack-client:2025.2
@@ -149,12 +189,9 @@ spec:
149189 # than passing a big json string on command line
150190 cat <<'EOF' >> raid1-config.json
151191 { "logical_disks":
152- [ { "controller": "RAID.SL.1-1" ,
192+ [ { "controller": {{ inputs.parameters.controller_id }} ,
153193 "is_root_volume": true,
154- "physical_disks": [
155- "Disk.Bay.0:Enclosure.Internal.0-1:RAID.SL.1-1",
156- "Disk.Bay.1:Enclosure.Internal.0-1:RAID.SL.1-1"
157- ],
194+ "physical_disks": {{ inputs.parameters.physical_disks }},
158195 "raid_level": "1",
159196 "size_gb": "MAX"
160197 }
0 commit comments