Skip to content

Instantly share code, notes, and snippets.

@ahpook
Created February 24, 2020 19:06
Show Gist options
  • Save ahpook/c464f3bc097dc535edc4f71140a11089 to your computer and use it in GitHub Desktop.
Save ahpook/c464f3bc097dc535edc4f71140a11089 to your computer and use it in GitHub Desktop.
{
"workflow": {
"kind": "Workflow",
"steps": [
{
"name": "Step-1-Provision-K8s-cluster",
"input": [
"echo \"Hello world. I am Step 1\"",
"sleep 5"
],
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-2-Notify-team",
"input": [
"echo \"Hello world. I am Step 2\"",
"sleep 2"
],
"dependsOn": "Step-1-Provision-K8s-cluster",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-3-Deploy-supporting-services",
"input": [
"echo \"Hello world. I am Step 3\"",
"sleep 2"
],
"dependsOn": "Step-1-Provision-K8s-cluster",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-3-Deploy-supporting-services",
"input": [
"echo \"Hello world. I am Step 3\"",
"sleep 2"
],
"dependsOn": "Step-1-Provision-K8s-cluster",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-4-Deploy-application-bits-to-Stage",
"input": [
"echo \"Hello world. I am Step 4\"",
"sleep 5"
],
"dependsOn": "Step-3-Deploy-supporting-services",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-5-Manual-approval-to-Prod",
"input": [
"echo \"Hello world. I am Step 5\"",
"sleep 2",
"echo \"Waiting on some manual approval from approvers @kenazk\"",
"sleep 3"
],
"dependsOn": "Step-4-Deploy-application-bits-to-Stage",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-6-Adjust-traffic-throttle-by-10-percent",
"input": [
"echo \"Hello world. I am Step 6\""
],
"dependsOn": "Step-5-Manual-approval-to-Prod",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-7-Manual-approval-to-Prod",
"input": [
"echo \"Hello world. I am Step 7\""
],
"dependsOn": "Step-6-Adjust-traffic-throttle-by-10-percent",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-4a-Notify-team",
"input": [
"echo \"Deployment to stage is complete. Please verify application instance.\"",
"sleep 2"
],
"dependsOn": "Step-4-Deploy-application-bits-to-Stage",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-5a-Update-JIRA-ticket-with-deployment-time",
"input": [
"echo \"Update to stage complete\"",
"sleep 3"
],
"dependsOn": "Step-5-Manual-approval-to-Prod",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-8-Adjust-traffic-to-100-percent",
"input": [
"echo \"Traffic adjusted to 100% - Fully deployed\"",
"sleep 3"
],
"dependsOn": "Step-7-Manual-approval-to-Prod",
"description": "",
"image": "alpine:latest"
},
{
"name": "Step-9-Notify-team-deployment-complete",
"input": [
"echo \"Team notified via Slack, email - deployment complete\"",
"sleep 2"
],
"dependsOn": "Step-8-Adjust-traffic-to-100-percent",
"description": "",
"image": "alpine:latest"
}
],
"description": "Default description",
"apiVersion": "v1"
}
}
apiVersion: v1
description: Default description
kind: Workflow
steps:
- description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 1"
- sleep 5
name: Step-1-Provision-K8s-cluster
- dependsOn: Step-1-Provision-K8s-cluster
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 2"
- sleep 2
name: Step-2-Notify-team
- dependsOn: Step-1-Provision-K8s-cluster
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 3"
- sleep 2
name: Step-3-Deploy-supporting-services
- dependsOn: Step-1-Provision-K8s-cluster
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 3"
- sleep 2
name: Step-3-Deploy-supporting-services
- dependsOn: Step-3-Deploy-supporting-services
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 4"
- sleep 5
name: Step-4-Deploy-application-bits-to-Stage
- dependsOn: Step-4-Deploy-application-bits-to-Stage
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 5"
- sleep 2
- echo "Waiting on some manual approval from approvers @kenazk"
- sleep 3
name: Step-5-Manual-approval-to-Prod
- dependsOn: Step-5-Manual-approval-to-Prod
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 6"
name: Step-6-Adjust-traffic-throttle-by-10-percent
- dependsOn: Step-6-Adjust-traffic-throttle-by-10-percent
description: ""
image: alpine:latest
input:
- echo "Hello world. I am Step 7"
name: Step-7-Manual-approval-to-Prod
- dependsOn: Step-4-Deploy-application-bits-to-Stage
description: ""
image: alpine:latest
input:
- echo "Deployment to stage is complete. Please verify application instance."
- sleep 2
name: Step-4a-Notify-team
- dependsOn: Step-5-Manual-approval-to-Prod
description: ""
image: alpine:latest
input:
- echo "Update to stage complete"
- sleep 3
name: Step-5a-Update-JIRA-ticket-with-deployment-time
- dependsOn: Step-7-Manual-approval-to-Prod
description: ""
image: alpine:latest
input:
- echo "Traffic adjusted to 100% - Fully deployed"
- sleep 3
name: Step-8-Adjust-traffic-to-100-percent
- dependsOn: Step-8-Adjust-traffic-to-100-percent
description: ""
image: alpine:latest
input:
- echo "Team notified via Slack, email - deployment complete"
- sleep 2
name: Step-9-Notify-team-deployment-complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment