Skip to content

Commit a27fef9

Browse files
RSaboundsstevekeay
authored andcommitted
Add workflow template step for raid config.
1 parent 657aba2 commit a27fef9

1 file changed

Lines changed: 42 additions & 5 deletions

File tree

workflows/argo-events/workflowtemplates/enroll-server.yaml

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)