Skip to content

Instantly share code, notes, and snippets.

@descrepes
Created June 29, 2020 17:06
Show Gist options
  • Save descrepes/ee69d94a86d2403f27dbf667dc757290 to your computer and use it in GitHub Desktop.
Save descrepes/ee69d94a86d2403f27dbf667dc757290 to your computer and use it in GitHub Desktop.
---
apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
name: k8s-vmpool
namespace: argo
spec:
template:
serviceAccountName: argo-events-sa
subscription:
http:
port: 9300
dependencies:
- name: vmpool
gatewayName: resource
eventName: vmpool
triggers:
- template:
name: vmpool-web-trigger
k8s:
group: argoproj.io
version: v1alpha1
resource: workflows
operation: create
source:
resource:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: vmpool-web-
namespace: argo
spec:
entrypoint: cloud-bootstrap-web
arguments:
parameters:
- name: provider
value: PROVIDER
- name: customer
value: CUSTOMER
templates:
- name: cloud-bootstrap-web
dag:
tasks:
- name: salt-cloud
templateRef:
name: saltstack
template: cloud-create
arguments:
parameters:
- name: profile
value: "{{workflow.parameters.provider}}-web"
- name: vms
value: "web1-{{workflow.parameters.customer}},web2-{{workflow.parameters.customer}}
- name: salt-highstate
suspend:
duration: "30"
dependencies: [salt-cloud]
templateRef:
name: saltstack
template: highstate
arguments:
parameters:
- name: compound
value: "L@web1-{{workflow.parameters.customer}},web2-{{workflow.parameters.customer}}"
parameters:
- src:
dependencyName: vmpool
dataKey: body.spec.cloud.provider
dest: spec.arguments.parameters.0.value
- src:
dependencyName: vmpool
dataKey: body.spec.customer
dest: spec.arguments.parameters.1.value
- template:
name: vmpool-db-trigger
k8s:
group: argoproj.io
version: v1alpha1
resource: workflows
operation: create
source:
resource:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: vmpool-db-
namespace: argo
spec:
entrypoint: cloud-bootstrap-db
arguments:
parameters:
- name: provider
value: PROVIDER
- name: customer
value: CUSTOMER
templates:
- name: cloud-bootstrap-db
dag:
tasks:
- name: salt-cloud
templateRef:
name: saltstack
template: cloud-create
arguments:
parameters:
- name: profile
value: "{{workflow.parameters.provider}}-db"
- name: vms
value: "db1-{{workflow.parameters.customer}},db2-{{workflow.parameters.customer}}
- name: salt-highstate
suspend:
duration: "30"
dependencies: [salt-cloud]
templateRef:
name: saltstack
template: highstate
arguments:
parameters:
- name: compound
value: "L@db1-{{workflow.parameters.customer}},db2-{{workflow.parameters.customer}}"
parameters:
- src:
dependencyName: vmpool
dataKey: body.spec.cloud.provider
dest: spec.arguments.parameters.0.value
- src:
dependencyName: vmpool
dataKey: body.spec.customer
dest: spec.arguments.parameters.1.value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment