|
{ |
|
"keepWaitingPipelines" : false, |
|
"lastModifiedBy" : "demo-user", |
|
"roles" : [ "devops" ], |
|
"index" : 0, |
|
"serviceAccount" : "dev-|-demo-web-backend-|-deploy@managed-service-account", |
|
"triggers" : [ { |
|
"branch" : "develop", |
|
"enabled" : true, |
|
"project" : "demo-project", |
|
"runAsUser" : "project-svc-account", |
|
"secret" : "xxxxxxxxxxxxxxxx", |
|
"slug" : "demo-web-backend", |
|
"source" : "github", |
|
"type" : "git" |
|
} ], |
|
"limitConcurrent" : true, |
|
"application" : "demo-web", |
|
"name" : "DEV | DemoWeb BackEnd | Deploy", |
|
"stages" : [ { |
|
"continuePipeline" : false, |
|
"failPipeline" : true, |
|
"job" : "app-demo-dev-build-image", |
|
"master" : "aws-jenkins", |
|
"name" : "Build Image", |
|
"parameters" : { }, |
|
"propertyFile" : "build.properties", |
|
"refId" : "1", |
|
"requisiteStageRefIds" : [ ], |
|
"type" : "jenkins" |
|
}, { |
|
"continuePipeline" : false, |
|
"failPipeline" : true, |
|
"job" : "app-demo-dev-refresh-secrets", |
|
"master" : "aws-jenkins", |
|
"name" : "Refresh Secrets", |
|
"parameters" : { |
|
"envName" : "dev", |
|
"k8sCluster" : "cluster-1.k8s.devstg.demo-project.aws" |
|
}, |
|
"refId" : "2", |
|
"requisiteStageRefIds" : [ "1" ], |
|
"type" : "jenkins" |
|
}, { |
|
"clusters" : [ { |
|
"account" : "project-k8s-devstg", |
|
"application" : "demo-web", |
|
"cloudProvider" : "kubernetes", |
|
"containers" : [ { |
|
"args" : [ ], |
|
"command" : [ ], |
|
"envFrom" : [ { |
|
"prefix" : "", |
|
"secretRef" : { |
|
"name" : "app-demo-dev-config", |
|
"optional" : false |
|
} |
|
} ], |
|
"envVars" : [ ], |
|
"imageDescription" : { |
|
"imageId" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}", |
|
"registry" : "111111111111.dkr.ecr.us-east-2.amazonaws.com", |
|
"repository" : "demo-web-backend", |
|
"tag" : "${TAG}", |
|
"uri" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}" |
|
}, |
|
"imagePullPolicy" : "IFNOTPRESENT", |
|
"limits" : { |
|
"cpu" : "300m", |
|
"memory" : "400Mi" |
|
}, |
|
"name" : "demo-web-backend", |
|
"ports" : [ { |
|
"containerPort" : 80, |
|
"name" : "http", |
|
"protocol" : "TCP" |
|
} ], |
|
"requests" : { |
|
"cpu" : "150m", |
|
"memory" : "300Mi" |
|
}, |
|
"volumeMounts" : [ ] |
|
} ], |
|
"delayBeforeDisableSec" : 3, |
|
"delayBeforeScaleDownSec" : 3, |
|
"dnsPolicy" : "ClusterFirst", |
|
"events" : [ ], |
|
"freeFormDetails" : "api", |
|
"initContainers" : [ ], |
|
"interestingHealthProviderNames" : [ "KubernetesContainer", "KubernetesPod" ], |
|
"loadBalancers" : [ "demo-web-dev-api-lb" ], |
|
"maxRemainingAsgs" : 2, |
|
"namespace" : "demo-web", |
|
"nodeSelector" : { |
|
"kops.k8s.io/instancegroup" : "nodes" |
|
}, |
|
"podAnnotations" : { }, |
|
"provider" : "kubernetes", |
|
"region" : "demo-web", |
|
"replicaSetAnnotations" : { }, |
|
"scaleDown" : true, |
|
"securityGroups" : [ ], |
|
"stack" : "dev", |
|
"strategy" : "redblack", |
|
"targetSize" : 1, |
|
"terminationGracePeriodSeconds" : 30, |
|
"tolerations" : [ ], |
|
"volumeSources" : [ ] |
|
} ], |
|
"name" : "Deploy API", |
|
"overrideTimeout" : true, |
|
"refId" : "3", |
|
"requisiteStageRefIds" : [ "5" ], |
|
"stageTimeoutMs" : 480000, |
|
"type" : "deploy" |
|
}, { |
|
"clusters" : [ { |
|
"account" : "project-k8s-devstg", |
|
"application" : "demo-web", |
|
"cloudProvider" : "kubernetes", |
|
"containers" : [ { |
|
"args" : [ "-m", "celery", "worker", "-A", "demo-project", "-l", "info" ], |
|
"command" : [ "python" ], |
|
"envFrom" : [ { |
|
"prefix" : "", |
|
"secretRef" : { |
|
"name" : "app-demo-dev-config", |
|
"optional" : false |
|
} |
|
} ], |
|
"envVars" : [ ], |
|
"imageDescription" : { |
|
"imageId" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}", |
|
"registry" : "111111111111.dkr.ecr.us-east-2.amazonaws.com", |
|
"repository" : "demo-web-backend", |
|
"tag" : "${TAG}", |
|
"uri" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}" |
|
}, |
|
"imagePullPolicy" : "IFNOTPRESENT", |
|
"limits" : { |
|
"cpu" : "150m", |
|
"memory" : "350Mi" |
|
}, |
|
"livenessProbe" : { |
|
"failureThreshold" : 2, |
|
"handler" : { |
|
"execAction" : { |
|
"commands" : [ "python", "kubernetes/scripts/liveness/logs-timestamp-check.py", "\"-s 300\"" ] |
|
}, |
|
"httpGetAction" : { |
|
"path" : "/", |
|
"port" : 80, |
|
"uriScheme" : "HTTP" |
|
}, |
|
"tcpSocketAction" : { |
|
"port" : 80 |
|
}, |
|
"type" : "EXEC" |
|
}, |
|
"initialDelaySeconds" : 120, |
|
"periodSeconds" : 30, |
|
"successThreshold" : 1, |
|
"timeoutSeconds" : 10 |
|
}, |
|
"name" : "demo-web-backend", |
|
"ports" : [ ], |
|
"requests" : { |
|
"cpu" : "50m", |
|
"memory" : "250Mi" |
|
}, |
|
"volumeMounts" : [ ] |
|
} ], |
|
"dnsPolicy" : "ClusterFirst", |
|
"events" : [ ], |
|
"freeFormDetails" : "worker", |
|
"initContainers" : [ ], |
|
"interestingHealthProviderNames" : [ "KubernetesContainer", "KubernetesPod" ], |
|
"loadBalancers" : [ ], |
|
"namespace" : "demo-web", |
|
"nodeSelector" : { |
|
"kops.k8s.io/instancegroup" : "nodes" |
|
}, |
|
"podAnnotations" : { }, |
|
"provider" : "kubernetes", |
|
"region" : "demo-web", |
|
"replicaSetAnnotations" : { }, |
|
"securityGroups" : [ ], |
|
"stack" : "dev", |
|
"strategy" : "", |
|
"targetSize" : 1, |
|
"terminationGracePeriodSeconds" : 30, |
|
"tolerations" : [ ], |
|
"volumeSources" : [ ] |
|
} ], |
|
"name" : "Deploy New Worker", |
|
"refId" : "4", |
|
"requisiteStageRefIds" : [ "11" ], |
|
"type" : "deploy" |
|
}, { |
|
"account" : "project-k8s-devstg", |
|
"annotations" : { }, |
|
"application" : "demo-web", |
|
"cloudProvider" : "kubernetes", |
|
"cloudProviderType" : "kubernetes", |
|
"containers" : [ { |
|
"args" : [ "manage.py", "migrate" ], |
|
"command" : [ "python" ], |
|
"envFrom" : [ { |
|
"prefix" : "", |
|
"secretRef" : { |
|
"name" : "app-demo-dev-config", |
|
"optional" : false |
|
} |
|
} ], |
|
"envVars" : [ ], |
|
"imageDescription" : { |
|
"account" : "project-sr-ecr", |
|
"imageId" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}", |
|
"registry" : "111111111111.dkr.ecr.us-east-2.amazonaws.com", |
|
"repository" : "demo-web-backend", |
|
"tag" : "${TAG}" |
|
}, |
|
"imagePullPolicy" : "IFNOTPRESENT", |
|
"limits" : { }, |
|
"name" : "demo-web-backend", |
|
"ports" : [ ], |
|
"requests" : { }, |
|
"volumeMounts" : [ ] |
|
} ], |
|
"dnsPolicy" : "ClusterFirst", |
|
"labels" : { }, |
|
"name" : "Run Migrations", |
|
"namespace" : "demo-web", |
|
"nodeSelector" : { |
|
"kops.k8s.io/instancegroup" : "nodes" |
|
}, |
|
"refId" : "5", |
|
"requisiteStageRefIds" : [ "7" ], |
|
"type" : "runJob" |
|
}, { |
|
"cloudProvider" : "kubernetes", |
|
"cloudProviderType" : "kubernetes", |
|
"cluster" : "demo-web-dev-worker", |
|
"completeOtherBranchesThenFail" : false, |
|
"continuePipeline" : true, |
|
"credentials" : "project-k8s-devstg", |
|
"failPipeline" : false, |
|
"interestingHealthProviderNames" : [ "KubernetesService" ], |
|
"name" : "Destroy Prev Worker", |
|
"namespaces" : [ "demo-web" ], |
|
"refId" : "6", |
|
"requisiteStageRefIds" : [ "5" ], |
|
"target" : "current_asg_dynamic", |
|
"type" : "destroyServerGroup" |
|
}, { |
|
"account" : "project-k8s-devstg", |
|
"annotations" : { }, |
|
"application" : "demo-web", |
|
"cloudProvider" : "kubernetes", |
|
"cloudProviderType" : "kubernetes", |
|
"containers" : [ { |
|
"args" : [ "manage.py", "collectstatic", "--noinput", "-v", "1" ], |
|
"command" : [ "python" ], |
|
"envFrom" : [ { |
|
"prefix" : "", |
|
"secretRef" : { |
|
"name" : "app-demo-dev-config", |
|
"optional" : false |
|
} |
|
} ], |
|
"envVars" : [ ], |
|
"imageDescription" : { |
|
"account" : "project-sr-ecr", |
|
"imageId" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}", |
|
"registry" : "111111111111.dkr.ecr.us-east-2.amazonaws.com", |
|
"repository" : "demo-web-backend", |
|
"tag" : "${TAG}" |
|
}, |
|
"imagePullPolicy" : "IFNOTPRESENT", |
|
"limits" : { }, |
|
"name" : "demo-web-backend", |
|
"ports" : [ ], |
|
"requests" : { }, |
|
"volumeMounts" : [ ] |
|
} ], |
|
"dnsPolicy" : "ClusterFirst", |
|
"labels" : { }, |
|
"name" : "Upload Static Assets", |
|
"namespace" : "demo-web", |
|
"nodeSelector" : { |
|
"kops.k8s.io/instancegroup" : "nodes" |
|
}, |
|
"refId" : "7", |
|
"requisiteStageRefIds" : [ "2" ], |
|
"type" : "runJob" |
|
}, { |
|
"cloudProvider" : "kubernetes", |
|
"cloudProviderType" : "kubernetes", |
|
"cluster" : "demo-web-dev-beat", |
|
"completeOtherBranchesThenFail" : false, |
|
"continuePipeline" : true, |
|
"credentials" : "project-k8s-devstg", |
|
"failPipeline" : false, |
|
"interestingHealthProviderNames" : [ "KubernetesService" ], |
|
"name" : "Destroy Prev Beat", |
|
"namespaces" : [ "demo-web" ], |
|
"refId" : "8", |
|
"requisiteStageRefIds" : [ "5" ], |
|
"target" : "current_asg_dynamic", |
|
"type" : "destroyServerGroup" |
|
}, { |
|
"clusters" : [ { |
|
"account" : "project-k8s-devstg", |
|
"application" : "demo-web", |
|
"cloudProvider" : "kubernetes", |
|
"containers" : [ { |
|
"args" : [ "-m", "celery", "beat", "-A", "demo-project", "-l", "info" ], |
|
"command" : [ "python" ], |
|
"envFrom" : [ { |
|
"prefix" : "", |
|
"secretRef" : { |
|
"name" : "app-demo-dev-config", |
|
"optional" : false |
|
} |
|
} ], |
|
"envVars" : [ ], |
|
"imageDescription" : { |
|
"imageId" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}", |
|
"registry" : "111111111111.dkr.ecr.us-east-2.amazonaws.com", |
|
"repository" : "demo-web-backend", |
|
"tag" : "${TAG}", |
|
"uri" : "111111111111.dkr.ecr.us-east-2.amazonaws.com/demo-web-backend:${TAG}" |
|
}, |
|
"imagePullPolicy" : "IFNOTPRESENT", |
|
"limits" : { |
|
"cpu" : "100m", |
|
"memory" : "300Mi" |
|
}, |
|
"livenessProbe" : { |
|
"failureThreshold" : 2, |
|
"handler" : { |
|
"execAction" : { |
|
"commands" : [ "python", "kubernetes/scripts/liveness/logs-timestamp-check.py", "\"-s 600\"" ] |
|
}, |
|
"httpGetAction" : { |
|
"path" : "/", |
|
"port" : 80, |
|
"uriScheme" : "HTTP" |
|
}, |
|
"tcpSocketAction" : { |
|
"port" : 80 |
|
}, |
|
"type" : "EXEC" |
|
}, |
|
"initialDelaySeconds" : 120, |
|
"periodSeconds" : 30, |
|
"successThreshold" : 1, |
|
"timeoutSeconds" : 10 |
|
}, |
|
"name" : "demo-web-backend", |
|
"ports" : [ ], |
|
"requests" : { |
|
"cpu" : "50m", |
|
"memory" : "200Mi" |
|
}, |
|
"volumeMounts" : [ ] |
|
} ], |
|
"dnsPolicy" : "ClusterFirst", |
|
"events" : [ ], |
|
"freeFormDetails" : "beat", |
|
"initContainers" : [ ], |
|
"interestingHealthProviderNames" : [ "KubernetesContainer", "KubernetesPod" ], |
|
"loadBalancers" : [ ], |
|
"namespace" : "demo-web", |
|
"nodeSelector" : { |
|
"kops.k8s.io/instancegroup" : "nodes" |
|
}, |
|
"podAnnotations" : { }, |
|
"provider" : "kubernetes", |
|
"region" : "demo-web", |
|
"replicaSetAnnotations" : { }, |
|
"securityGroups" : [ ], |
|
"stack" : "dev", |
|
"strategy" : "", |
|
"targetSize" : 1, |
|
"terminationGracePeriodSeconds" : 30, |
|
"tolerations" : [ ], |
|
"volumeSources" : [ ] |
|
} ], |
|
"name" : "Deploy New Beat", |
|
"refId" : "9", |
|
"requisiteStageRefIds" : [ "10" ], |
|
"type" : "deploy" |
|
}, { |
|
"name" : "Wait", |
|
"refId" : "10", |
|
"requisiteStageRefIds" : [ "8" ], |
|
"type" : "wait", |
|
"waitTime" : 15 |
|
}, { |
|
"name" : "Wait", |
|
"refId" : "11", |
|
"requisiteStageRefIds" : [ "6" ], |
|
"type" : "wait", |
|
"waitTime" : 15 |
|
}, { |
|
"completeOtherBranchesThenFail" : false, |
|
"continuePipeline" : true, |
|
"failPipeline" : false, |
|
"job" : "app-demo-dev-send-notifications", |
|
"markUnstableAsSuccessful" : false, |
|
"master" : "aws-jenkins", |
|
"name" : "Notify", |
|
"parameters" : { |
|
"appEnv" : "dev", |
|
"appName" : "app-demo", |
|
"appRepo" : "[email protected]:organization/demo-web-backend.git", |
|
"branchName" : "develop", |
|
"currentCommitId" : "${CURRENT_COMMIT_ID}", |
|
"notificationsChannel" : "product-release-be", |
|
"previousCommitId" : "${PREVIOUS_COMMIT_ID}" |
|
}, |
|
"refId" : "12", |
|
"requisiteStageRefIds" : [ "3" ], |
|
"type" : "jenkins" |
|
} ], |
|
"id" : "48b94a82-07be-4ee8-b0b7-1111111111111", |
|
"updateTs" : "1559156385000", |
|
"notifications" : [ { |
|
"address" : "engineering-alerts", |
|
"level" : "pipeline", |
|
"type" : "slack", |
|
"when" : [ "pipeline.starting", "pipeline.complete", "pipeline.failed" ] |
|
} ] |
|
} |