Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
189 changes: 189 additions & 0 deletions workflows/argo-events/workflowtemplates/inspect-server.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
---
apiVersion: argoproj.io/v1alpha1
metadata:
name: inspect-server
annotations:
workflows.argoproj.io/title: Perform Ironic inspection on a node/server
workflows.argoproj.io/description: |
Defined in `workflows/argo-events/workflowtemplates/inspect-server.yaml`
kind: WorkflowTemplate
spec:
serviceAccountName: workflow
entrypoint: main
arguments:
parameters:
- name: node
templates:
- name: main
steps:
- - name: node-id
template: openstack-read-param
arguments:
parameters:
- name: object
value: node
- name: object_ref
value: "{{workflow.parameters.node}}"
- name: param
value: uuid
- - name: server-start-state
template: openstack-read-param
arguments:
parameters:
- name: object
value: node
- name: object_ref
value: "{{steps.node-id.outputs.result}}"
- name: param
value: provision_state
- - name: manage-server
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "manage"
- name: node_id
value: "{{steps.node-id.outputs.result}}"
when: "{{steps.server-start-state.outputs.result}} != manageable"
- - name: server-set-agent-inspect
template: openstack-set-cmd
arguments:
parameters:
- name: object
value: node
- name: flag
value: "--inspect-interface"
- name: value
value: "agent"
- name: obj_id
value: "{{steps.node-id.outputs.result}}"
- - name: server-manage-state
template: openstack-read-param
arguments:
parameters:
- name: object
value: node
- name: object_ref
value: "{{steps.node-id.outputs.result}}"
- name: param
value: provision_state
- - name: inspect-server
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "inspect"
- name: node_id
value: "{{steps.node-id.outputs.result}}"
when: "{{steps.server-manage-state.outputs.result}} == manageable"
- - name: server-inspect-state
template: openstack-read-param
arguments:
parameters:
- name: object
value: node
- name: object_ref
value: "{{steps.node-id.outputs.result}}"
- name: param
value: provision_state
- - name: avail-server
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "provide"
- name: node_id
value: "{{steps.node-id.outputs.result}}"
when: "{{steps.server-inspect-state.outputs.result}} == manageable"
- name: openstack-wait-cmd
inputs:
parameters:
- name: operation
- name: node_id
container:
image: ghcr.io/rackerlabs/understack/openstack-client:2025.1-ubuntu_jammy
command:
- openstack
args:
- baremetal
- node
- "{{inputs.parameters.operation}}"
- --wait
- "0"
- "{{inputs.parameters.node_id}}"
env:
- name: OS_CLOUD
value: understack
volumeMounts:
- mountPath: /etc/openstack
name: baremetal-manage
volumes:
- name: baremetal-manage
secret:
secretName: baremetal-manage
items:
- key: clouds.yaml
path: clouds.yaml
- name: openstack-set-cmd
inputs:
parameters:
- name: object
- name: flag
- name: value
- name: obj_id
container:
image: ghcr.io/rackerlabs/understack/openstack-client:2025.1-ubuntu_jammy
command:
- openstack
args:
- baremetal
- "{{inputs.parameters.object}}"
- set
- "{{inputs.parameters.flag}}"
- "{{inputs.parameters.value}}"
- "{{inputs.parameters.obj_id}}"
env:
- name: OS_CLOUD
value: understack
volumeMounts:
- mountPath: /etc/openstack
name: baremetal-manage
volumes:
- name: baremetal-manage
secret:
secretName: baremetal-manage
items:
- key: clouds.yaml
path: clouds.yaml
- name: openstack-read-param
inputs:
parameters:
- name: object
- name: object_ref
- name: param
container:
image: ghcr.io/rackerlabs/understack/openstack-client:2025.1-ubuntu_jammy
command:
- openstack
args:
- baremetal
- "{{inputs.parameters.object}}"
- show
- "-f"
- "value"
- "-c"
- "{{inputs.parameters.param}}"
- "{{inputs.parameters.object_ref}}"
env:
- name: OS_CLOUD
value: understack
volumeMounts:
- mountPath: /etc/openstack
name: baremetal-manage
volumes:
- name: baremetal-manage
secret:
secretName: baremetal-manage
items:
- key: clouds.yaml
path: clouds.yaml
Loading