diff --git a/examples/containerized-krm/README.md b/examples/containerized-krm/README.md new file mode 100644 index 0000000..13407ef --- /dev/null +++ b/examples/containerized-krm/README.md @@ -0,0 +1,16 @@ +# Container Plugin Example + +This example runs `YqTransformer` as a **containerized KRM function**. + +## Locate the plugin image + +The `config.kubernetes.io/function` annotation in `yq-transformer.yaml` +points to the plugin's image address in the `container.image` key. + +## Build with alpha plugins enabled + +```bash +kustomize build --enable-alpha-plugins . +``` + +You should see a label `environment: dev` added to one of the Deployments. diff --git a/examples/containerized-krm/kustomization.yaml b/examples/containerized-krm/kustomization.yaml new file mode 100644 index 0000000..7eda22d --- /dev/null +++ b/examples/containerized-krm/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../manifests + +transformers: + - yq-transformer.yaml diff --git a/examples/containerized-krm/yq-transformer.yaml b/examples/containerized-krm/yq-transformer.yaml new file mode 100644 index 0000000..2d7b308 --- /dev/null +++ b/examples/containerized-krm/yq-transformer.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.bdeshi.space/v1 +kind: YqTransformer +metadata: + name: yq-transformer-dev-label # this can be anything + annotations: + config.kubernetes.io/function: | + container: + image: ghcr.io/bdeshi/kustomize-plugin-yqtransformer:latest +targets: + - apiVersion: apps/v1 + kind: Deployment + spec: + template: + spec: + serviceAccountName: dev-app +expression: | + .metadata.labels.environment = "dev" + | .spec.template.metadata.labels.environment = "dev" diff --git a/examples/exec-krm/README.md b/examples/exec-krm/README.md new file mode 100644 index 0000000..84dbf8e --- /dev/null +++ b/examples/exec-krm/README.md @@ -0,0 +1,17 @@ +# Exec Plugin Example + +This example runs `YqTransformer` as an **exec KRM function**. + +## Locate the plugin executable + +The `config.kubernetes.io/function` annotation in `yq-transformer.yaml` +points to the plugin's executable path in the `exec.path` key. +This path is relative to `kustomization.yaml` and can be anywhere on disk. + +## Build with alpha plugins and exec enabled + +```bash +kustomize build --enable-alpha-plugins --enable-exec . +``` + +You should see a label `environment: dev` added to one of the Deployments. diff --git a/examples/exec-krm/kustomization.yaml b/examples/exec-krm/kustomization.yaml new file mode 100644 index 0000000..7eda22d --- /dev/null +++ b/examples/exec-krm/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../manifests + +transformers: + - yq-transformer.yaml diff --git a/examples/exec-krm/yq-transformer.yaml b/examples/exec-krm/yq-transformer.yaml new file mode 100644 index 0000000..22c7138 --- /dev/null +++ b/examples/exec-krm/yq-transformer.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.bdeshi.space/v1 +kind: YqTransformer +metadata: + name: yq-transformer-dev-label # this can be anything + annotations: + config.kubernetes.io/function: | + exec: + path: ../../YqTransformer.sh +targets: + - apiVersion: apps/v1 + kind: Deployment + spec: + template: + spec: + serviceAccountName: dev-app +expression: | + .metadata.labels.environment = "dev" + | .spec.template.metadata.labels.environment = "dev" diff --git a/examples/manifests/deployment.yaml b/examples/manifests/deployment.yaml new file mode 100644 index 0000000..d2e1433 --- /dev/null +++ b/examples/manifests/deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: demo-app +spec: + selector: + matchLabels: + app: demo-app + template: + metadata: + labels: + app: demo-app + spec: + serviceAccountName: demo-app + containers: + - name: app + image: app:demo +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: demo-app-2 +spec: + selector: + matchLabels: + app: demo-app-2 + template: + metadata: + labels: + app: demo-app-2 + spec: + serviceAccountName: dev-app + containers: + - name: app + image: app:demo diff --git a/examples/manifests/kustomization.yaml b/examples/manifests/kustomization.yaml new file mode 100644 index 0000000..0123c18 --- /dev/null +++ b/examples/manifests/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - deployment.yaml + - serviceaccount.yaml diff --git a/examples/manifests/serviceaccount.yaml b/examples/manifests/serviceaccount.yaml new file mode 100644 index 0000000..bdc7fc0 --- /dev/null +++ b/examples/manifests/serviceaccount.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: demo-app-1 +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: dev-app