Skip to content

Commit

Permalink
Add config template plugin examples (argoproj#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexmt authored Feb 25, 2019
1 parent 179faab commit 23eeb09
Show file tree
Hide file tree
Showing 13 changed files with 116 additions and 9 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
18 changes: 9 additions & 9 deletions guestbook/guestbook-ui-svc.yaml
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions plugins/README.md
Original file line number Diff line number Diff line change
@@ -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` |
2 changes: 2 additions & 0 deletions plugins/kasane/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
vendor
Kasanefile.lock
5 changes: 5 additions & 0 deletions plugins/kasane/Kasanefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
layers:
- ../../guestbook/guestbook-ui-deployment.yaml
- patch.jsonnet
- ../../guestbook/guestbook-ui-svc.yaml

29 changes: 29 additions & 0 deletions plugins/kasane/README.md
Original file line number Diff line number Diff line change
@@ -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
```
9 changes: 9 additions & 0 deletions plugins/kasane/patch.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function (layers)

[
layers[0] {
spec+: {
replicas: 2,
},
}
]
3 changes: 3 additions & 0 deletions plugins/kustomized-helm/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
all.yaml
charts
requirements.lock
1 change: 1 addition & 0 deletions plugins/kustomized-helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
name: guestbook
30 changes: 30 additions & 0 deletions plugins/kustomized-helm/README.md
Original file line number Diff line number Diff line change
@@ -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
```
7 changes: 7 additions & 0 deletions plugins/kustomized-helm/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namePrefix: kustomize-

resources:
- ./all.yaml

patches:
- overlays/guestbook-deployment.yaml
10 changes: 10 additions & 0 deletions plugins/kustomized-helm/overlays/guestbook-deployment.yaml
Original file line number Diff line number Diff line change
@@ -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"
4 changes: 4 additions & 0 deletions plugins/kustomized-helm/requirements.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dependencies:
- name: helm-guestbook
version: 0.1.0
repository: file://../../helm-guestbook

0 comments on commit 23eeb09

Please sign in to comment.