Add Pre/PostSync job example

This commit is contained in:
Jesse Suen committed 2018-07-11 18:24:18 -07:00
1 parent 96a019c088
commit 144fd97a0c
10 files changed
+162

No files matched your search

@@ -0,0 +1,66 @@
local env = std.extVar("__ksonnet/environments");
local params = std.extVar("__ksonnet/params").components["guestbook-ui"];
[
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": params.name
},
"spec": {
"ports": [
{
"port": params.servicePort,
"targetPort": params.containerPort
}
],
"selector": {
"app": params.name
},
"type": params.type
}
},
{
"apiVersion": "apps/v1beta2",
"kind": "Deployment",
"metadata": {
"name": params.name
},
"spec": {
"replicas": params.replicas,
"selector": {
"matchLabels": {
"app": params.name
},
},
"template": {
"metadata": {
"labels": {
"app": params.name
}
},
"spec": {
"containers": [
{
"image": params.image,
"name": params.name,
"ports": [
{
"containerPort": params.containerPort
}
],
// dummy readiness probe to slow down the rollout for demo/testing
"readinessProbe": {
"exec": {
"command": [ "sh", "-c", "exit 0" ],
},
"initialDelaySeconds": 30,
"periodSeconds": 120,
}
}
]
}
}
}
}
]
+20
View File
@@ -0,0 +1,20 @@
{
global: {
// User-defined global parameters; accessible to all component and environments, Ex:
// replicas: 4,
},
components: {
// Component-level parameters, defined initially from 'ks prototype use ...'
// Each object below should correspond to a component in the components/ directory
"guestbook-ui": {
containerPort: 80,
image: "gcr.io/heptio-images/ks-guestbook-demo:0.1",
name: "pre-post-sync",
replicas: 1,
servicePort: 80,
type: "LoadBalancer",
},
"pre-sync-job": {},
"post-sync-job": {},
},
}
@@ -0,0 +1,15 @@
apiVersion: batch/v1
kind: Job
metadata:
generateName: after-
annotations:
argocd.argoproj.io/hook: PostSync
spec:
template:
spec:
containers:
- name: sleep
image: alpine:latest
command: ["sleep", "30"]
restartPolicy: Never
backoffLimit: 4
@@ -0,0 +1,15 @@
apiVersion: batch/v1
kind: Job
metadata:
generateName: before-
annotations:
argocd.argoproj.io/hook: PreSync
spec:
template:
spec:
containers:
- name: sleep
image: alpine:latest
command: ["sleep", "30"]
restartPolicy: Never
backoffLimit: 4