Skip to content

Commit 2a93f5d

Browse files
authored
Merge pull request #1240 from rackerlabs/storage-workflow-envs
feat: Storage support multiple environments
2 parents c751407 + 5423726 commit 2a93f5d

File tree

4 files changed

+82
-70
lines changed

4 files changed

+82
-70
lines changed

workflows/argo-events/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ resources:
2222
- workflowtemplates/reclean-server.yaml
2323
- workflowtemplates/openstack-oslo-event.yaml
2424
- workflowtemplates/netapp-configure-net.yaml
25+
- workflowtemplates/ansible-run.yaml
2526
# Alert automation
2627
- sensors/alertmanager-webhook-sensor.yaml
2728
- eventsources/alertmanager-webhook-eventsource.yaml
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
apiVersion: argoproj.io/v1alpha1
3+
kind: WorkflowTemplate
4+
metadata:
5+
name: ansible-workflow-template
6+
annotations:
7+
workflows.argoproj.io/title: Run arbitrary ansible playbook from the undercloud-rackspace repo
8+
workflows.argoproj.io/description: |
9+
Defined in `workflows/argo-events/workflowtemplates/ansible-run.yaml`
10+
spec:
11+
serviceAccountName: workflow
12+
templates:
13+
- name: ansible-run
14+
inputs:
15+
parameters:
16+
- name: playbook
17+
default: "nonexistent.yaml"
18+
- name: extra_vars
19+
default: "var=default"
20+
- name: inventory_file
21+
default: inventory/in-cluster/01-nautobot.yaml
22+
container:
23+
image: ghcr.io/rss-engineering/undercloud-nautobot/ansible:latest
24+
command: [ansible-playbook]
25+
args:
26+
- "{{ inputs.parameters.playbook }}"
27+
- --extra-vars
28+
- "{{ inputs.parameters.extra_vars }}"
29+
- "-i"
30+
- "{{ inputs.parameters.inventory_file }}"
31+
- "-vvv"
32+
env:
33+
- name: NAUTOBOT_TOKEN
34+
valueFrom:
35+
secretKeyRef:
36+
key: token
37+
name: nautobot-token
38+
envFrom:
39+
- configMapRef:
40+
name: cluster-metadata
41+
optional: false

workflows/openstack/sensors/sensor-ironic-oslo-event.yaml

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ spec:
3939
type: "string"
4040
value:
4141
- "baremetal.node.provision_set.end"
42+
- path: "body.ironic_object.previous_provision_state"
43+
type: "string"
44+
value:
45+
- "deploying"
4246
template:
4347
serviceAccountName: sensor-submit-workflow
4448
triggers:
@@ -99,37 +103,21 @@ spec:
99103
print(str(uuid.UUID(project_id_without_dashes)))
100104
- - name: ansible-on-server-create
101105
when: "\"{{steps.oslo-events.outputs.parameters.storage}}\" == wanted"
102-
inline:
103-
container:
104-
image: ghcr.io/rss-engineering/undercloud-nautobot/ansible:latest
105-
command: [ansible-playbook]
106-
args:
107-
- "storage_on_server_create.yml"
108-
- --extra-vars
109-
- "project_id={{steps.convert-project-id.outputs.result}} device_id={{workflow.parameters.device_id}} env=dev"
110-
- "-i"
111-
- "inventory/uc-dev/01-nautobot.yaml"
112-
- "-vvv"
113-
env:
114-
- name: NAUTOBOT_TOKEN
115-
valueFrom:
116-
secretKeyRef:
117-
key: token
118-
name: nautobot-token
106+
templateRef:
107+
name: ansible-workflow-template
108+
template: ansible-run
109+
arguments:
110+
parameters:
111+
- name: playbook
112+
value: storage_on_server_create.yml
113+
- name: extra_vars
114+
value: project_id={{steps.convert-project-id.outputs.result}} device_id={{workflow.parameters.device_id}}
119115
- - name: ansible-storage-update
120116
when: "\"{{steps.oslo-events.outputs.parameters.storage}}\" == wanted"
121-
inline:
122-
container:
123-
image: ghcr.io/rss-engineering/undercloud-nautobot/ansible:latest
124-
command: [ansible-playbook]
125-
args:
126-
- "storage_update_switches.yml"
127-
- "-i"
128-
- "inventory/uc-dev/01-nautobot.yaml"
129-
- "-vvv"
130-
env:
131-
- name: NAUTOBOT_TOKEN
132-
valueFrom:
133-
secretKeyRef:
134-
key: token
135-
name: nautobot-token
117+
templateRef:
118+
name: ansible-workflow-template
119+
template: ansible-run
120+
arguments:
121+
parameters:
122+
- name: playbook
123+
value: storage_update_switches.yml

workflows/openstack/sensors/sensor-keystone-oslo-event.yaml

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -97,46 +97,28 @@ spec:
9797
9898
- - name: ansible-create-project
9999
when: "{{steps.oslo-events.outputs.parameters.svm_enabled}} == True"
100-
inline:
101-
container:
102-
image: ghcr.io/rss-engineering/undercloud-nautobot/ansible:latest
103-
command: [ansible-playbook]
104-
args:
105-
- "storage_on_create_project.yml"
106-
- --extra-vars
107-
- "project_id={{steps.convert-project-id.outputs.result}} env=dev"
108-
- "-i"
109-
- "inventory/uc-dev/01-nautobot.yaml"
110-
- "-vvv"
111-
# TODO: this shouldn't be hardcodod to dev, but will work since
112-
# it really talks to https://nautobot-default.svc
113-
env:
114-
- name: NAUTOBOT_TOKEN
115-
valueFrom:
116-
secretKeyRef:
117-
key: token
118-
name: nautobot-token
100+
templateRef:
101+
name: ansible-workflow-template
102+
template: ansible-run
103+
arguments:
104+
parameters:
105+
- name: playbook
106+
value: storage_on_create_project.yml
107+
- name: extra_vars
108+
value: "project_id={{steps.convert-project-id.outputs.result}}"
109+
119110
- - name: ansible-create-svm
120111
when: "{{steps.oslo-events.outputs.parameters.svm_created}} == True"
121-
inline:
122-
container:
123-
image: ghcr.io/rss-engineering/undercloud-nautobot/ansible:latest
124-
command: [ansible-playbook]
125-
args:
126-
- "storage_on_svm_create.yml"
127-
- --extra-vars
128-
- "svm_name=os-{{workflow.parameters.project_id}} project_id={{steps.convert-project-id.outputs.result}} env=dev"
129-
- "-i"
130-
- "inventory/uc-dev/01-nautobot.yaml"
131-
- "-vvv"
132-
# TODO: this shouldn't be hardcodod to dev, but will work since
133-
# it really talks to https://nautobot-default.svc
134-
env:
135-
- name: NAUTOBOT_TOKEN
136-
valueFrom:
137-
secretKeyRef:
138-
key: token
139-
name: nautobot-token
112+
templateRef:
113+
name: ansible-workflow-template
114+
template: ansible-run
115+
arguments:
116+
parameters:
117+
- name: playbook
118+
value: storage_on_svm_create.yml
119+
- name: extra_vars
120+
value: svm_name=os-{{workflow.parameters.project_id}} project_id={{steps.convert-project-id.outputs.result}}
121+
140122
- - name: netapp-configure-net
141123
when: "{{steps.oslo-events.outputs.parameters.svm_created}} == True"
142124
templateRef:

0 commit comments

Comments
 (0)