Add config template plugin examples (#7)
parent
179faabd63
commit
23eeb0925b
|
@ -16,3 +16,4 @@ to explore ArgoCD and GitOps!
|
|||
| [helm-dependency](helm-dependency/) | Demonstrates how to customize an OTS (off-the-shelf) helm chart from an upstream repo |
|
||||
| [blue-green-deploy](blue-green-deploy/) | Demonstrates an Argo CD Sync hook which performs a blue/green deployment |
|
||||
| [sock-shop](sock-shop/) | A microservices demo application (https://microservices-demo.github.io) |
|
||||
| [plugins](plugins/) | Applications which demonstrate config management plugins usage |
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: guestbook-ui
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: guestbook-ui
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
app: guestbook-ui
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
# Config Management Plugins Examples
|
||||
|
||||
| Application | Description |
|
||||
|-------------|-------------|
|
||||
| [kasane](kasane/) | The guestbook application as a `kasane` package. |
|
||||
| [kustomized-helm](kustomized-helm/) | Application comprised of a `helm` chart and customized using `kustomize` |
|
|
@ -0,0 +1,2 @@
|
|||
vendor
|
||||
Kasanefile.lock
|
|
@ -0,0 +1,5 @@
|
|||
layers:
|
||||
- ../../guestbook/guestbook-ui-deployment.yaml
|
||||
- patch.jsonnet
|
||||
- ../../guestbook/guestbook-ui-svc.yaml
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
# Kasane
|
||||
|
||||
[Kasane](https://github.com/google/kasane) is a layering tool for Kubernetes which utilises Jsonnet for deep object modification and patching.
|
||||
|
||||
Use following steps to try the application:
|
||||
|
||||
* Follow instructions from [custom_tools.md](https://github.com/argoproj/argo-cd/blob/master/docs/custom_tools.md) to make sure `kasane` binary is available in `argocd-repo-server` pod.
|
||||
* Register `kasane` plugin `argocd-cm` ConfigMap:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
data:
|
||||
configManagementPlugins: |
|
||||
- name: kasane
|
||||
init:
|
||||
command: [kasane, update]
|
||||
generate:
|
||||
command: [kasane, show]
|
||||
```
|
||||
* Create application using `kasane` as a config management plugin name.
|
||||
|
||||
```
|
||||
argocd app create kasane \
|
||||
--config-management-plugin kasane \
|
||||
--repo https://github.com/argoproj/argocd-example-apps \
|
||||
--path plugins/kasane \
|
||||
--dest-server https://kubernetes.default.svc \
|
||||
--dest-namespace default
|
||||
```
|
|
@ -0,0 +1,9 @@
|
|||
function (layers)
|
||||
|
||||
[
|
||||
layers[0] {
|
||||
spec+: {
|
||||
replicas: 2,
|
||||
},
|
||||
}
|
||||
]
|
|
@ -0,0 +1,3 @@
|
|||
all.yaml
|
||||
charts
|
||||
requirements.lock
|
|
@ -0,0 +1 @@
|
|||
name: guestbook
|
|
@ -0,0 +1,30 @@
|
|||
# Helm + Kustomize
|
||||
|
||||
Sometimes Helm chart don't have all required parameters and additional customization is required. This example application demonstrates how to combine Helm and Kustomize and use it
|
||||
as a config management plugin in Argo CD.
|
||||
|
||||
Use following steps to try the application:
|
||||
|
||||
* configure `kustomized-helm` tool in `argocd-cm` ConfigMap:
|
||||
|
||||
```yaml
|
||||
configManagementPlugins: |
|
||||
- name: kustomized-helm
|
||||
init:
|
||||
command: [helm, dependency, build]
|
||||
generate:
|
||||
command: [sh, -c]
|
||||
args: ["helm template . > all.yaml && kustomize build"]
|
||||
```
|
||||
|
||||
* create application using `kustomized-helm` as a config management plugin name:
|
||||
|
||||
|
||||
```
|
||||
argocd app create kustomized-helm \
|
||||
--config-management-plugin kustomized-helm \
|
||||
--repo https://github.com/argoproj/argocd-example-apps \
|
||||
--path plugins/kustomized-helm \
|
||||
--dest-server https://kubernetes.default.svc \
|
||||
--dest-namespace default
|
||||
```
|
|
@ -0,0 +1,7 @@
|
|||
namePrefix: kustomize-
|
||||
|
||||
resources:
|
||||
- ./all.yaml
|
||||
|
||||
patches:
|
||||
- overlays/guestbook-deployment.yaml
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: release-name-helm-guestbook
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: helm-guestbook
|
||||
image: "gcr.io/heptio-images/ks-guestbook-demo:0.2"
|
|
@ -0,0 +1,4 @@
|
|||
dependencies:
|
||||
- name: helm-guestbook
|
||||
version: 0.1.0
|
||||
repository: file://../../helm-guestbook
|
Loading…
Reference in New Issue