Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5eb3352b40 | ||
|
|
e3a5ac20fc | ||
|
|
e0c05b3b14 | ||
|
|
144fd97a0c |
No files matched your search
@@ -1 +1,12 @@
|
|||||||
# ArgoCD Example Apps
|
# ArgoCD Example Apps
|
||||||
|
|
||||||
|
This repository contains example ksonnet applications for demoing ArgoCD functionality. Feel free
|
||||||
|
to register this repository to your ArgoCD instance, or fork this repo and push your own commits
|
||||||
|
to explore ArgoCD and GitOps!
|
||||||
|
|
||||||
|
| Application | Description |
|
||||||
|
|-------------|-------------|
|
||||||
|
| [guestbook](guestbook/) | The ksonnet hello word application |
|
||||||
|
| [pre-post-sync](pre-post-sync/) | Demonstrates ArgoCD PreSync and PostSync hooks |
|
||||||
|
| [blue-green-deploy](blue-green-deploy/) | Demonstrates an ArgoCD Sync hook which performs a blue/green deployment |
|
||||||
|
| [sock-shop](sock-shop/) | A microservices demo application (https://microservices-demo.github.io) |
|
||||||
@@ -6,6 +6,18 @@ environments:
|
|||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
k8sVersion: v1.10.0
|
k8sVersion: v1.10.0
|
||||||
path: default
|
path: default
|
||||||
|
dev:
|
||||||
|
destination:
|
||||||
|
namespace: dev
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
k8sVersion: v1.10.0
|
||||||
|
path: dev
|
||||||
|
prod:
|
||||||
|
destination:
|
||||||
|
namespace: prod
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
k8sVersion: v1.10.0
|
||||||
|
path: prod
|
||||||
kind: ksonnet.io/app
|
kind: ksonnet.io/app
|
||||||
name: guestbook
|
name: guestbook
|
||||||
version: 0.0.1
|
version: 0.0.1
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
local base = import "base.libsonnet";
|
||||||
|
// uncomment if you reference ksonnet-lib
|
||||||
|
// local k = import "k.libsonnet";
|
||||||
|
|
||||||
|
base + {
|
||||||
|
// Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
|
||||||
|
// "nginx-deployment"+: k.deployment.mixin.metadata.labels({foo: "bar"})
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local params = std.extVar("__ksonnet/params");
|
||||||
|
local globals = import "globals.libsonnet";
|
||||||
|
local envParams = params + {
|
||||||
|
components +: {
|
||||||
|
// Insert component parameter overrides here. Ex:
|
||||||
|
// guestbook +: {
|
||||||
|
// name: "guestbook-dev",
|
||||||
|
// replicas: params.global.replicas,
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
components: {
|
||||||
|
[x]: envParams.components[x] + globals, for x in std.objectFields(envParams.components)
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
local base = import "base.libsonnet";
|
||||||
|
// uncomment if you reference ksonnet-lib
|
||||||
|
// local k = import "k.libsonnet";
|
||||||
|
|
||||||
|
base + {
|
||||||
|
// Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
|
||||||
|
// "nginx-deployment"+: k.deployment.mixin.metadata.labels({foo: "bar"})
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local params = std.extVar("__ksonnet/params");
|
||||||
|
local globals = import "globals.libsonnet";
|
||||||
|
local envParams = params + {
|
||||||
|
components +: {
|
||||||
|
// Insert component parameter overrides here. Ex:
|
||||||
|
// guestbook +: {
|
||||||
|
// name: "guestbook-dev",
|
||||||
|
// replicas: params.global.replicas,
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
components: {
|
||||||
|
[x]: envParams.components[x] + globals, for x in std.objectFields(envParams.components)
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
/lib
|
||||||
|
/.ksonnet/registries
|
||||||
|
/app.override.yaml
|
||||||
|
/.ks_environment
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: 0.1.0
|
||||||
|
environments:
|
||||||
|
default:
|
||||||
|
destination:
|
||||||
|
namespace: default
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
k8sVersion: v1.10.0
|
||||||
|
path: default
|
||||||
|
kind: ksonnet.io/app
|
||||||
|
name: pre-post-sync
|
||||||
|
version: 0.0.1
|
||||||
@@ -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": 10,
|
||||||
|
"periodSeconds": 30,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -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.2",
|
||||||
|
name: "pre-post-sync",
|
||||||
|
replicas: 1,
|
||||||
|
servicePort: 80,
|
||||||
|
type: "ClusterIP",
|
||||||
|
},
|
||||||
|
"pre-sync-job": {},
|
||||||
|
"post-sync-job": {},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
generateName: after-
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/hook: PostSync
|
||||||
|
argocd.argoproj.io/hook-delete-policy: OnSuccess
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: sleep
|
||||||
|
image: alpine:latest
|
||||||
|
command: ["sleep", "10"]
|
||||||
|
restartPolicy: Never
|
||||||
|
backoffLimit: 0
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
generateName: before-
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/hook: PreSync
|
||||||
|
argocd.argoproj.io/hook-delete-policy: OnSuccess
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: sleep
|
||||||
|
image: alpine:latest
|
||||||
|
command: ["sleep", "10"]
|
||||||
|
restartPolicy: Never
|
||||||
|
backoffLimit: 0
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
local components = std.extVar("__ksonnet/components");
|
||||||
|
components + {
|
||||||
|
// Insert user-specified overrides here.
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
local base = import "base.libsonnet";
|
||||||
|
// uncomment if you reference ksonnet-lib
|
||||||
|
// local k = import "k.libsonnet";
|
||||||
|
|
||||||
|
base + {
|
||||||
|
// Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
|
||||||
|
// "nginx-deployment"+: k.deployment.mixin.metadata.labels({foo: "bar"})
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local params = std.extVar("__ksonnet/params");
|
||||||
|
local globals = import "globals.libsonnet";
|
||||||
|
local envParams = params + {
|
||||||
|
components +: {
|
||||||
|
// Insert component parameter overrides here. Ex:
|
||||||
|
// guestbook +: {
|
||||||
|
// name: "guestbook-dev",
|
||||||
|
// replicas: params.global.replicas,
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
components: {
|
||||||
|
[x]: envParams.components[x] + globals, for x in std.objectFields(envParams.components)
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in new issue
Block a user