Skip to content

grzegorzgniadek/argocd-appset-substitute-plugin

Repository files navigation

argocd-appset-substitute-plugin

Release Container Release Charts App Version Chart Version Go report card Apache 2.0 license

ArgoCD plugin for variable substitution in ApplicationSet

Supported Kubernetes versions

argocd-appset-substitute-plugin has been developed for and tested with Kubernetes 1.28.

How it works

When Custom resource is created, controller takes secret keys and values and creates new secret as outputSecretName

Architecture and components

  • a Deployment to run interpolator's controller,
$ kubectl top pods
NAME                                               CPU(cores)   MEMORY(bytes)   
argocd-substitute-plugin-59db98964b-ljpvt              1m           6Mi

Installation

  1. Install argocd-appset-substitute-plugin's Helm chart from charts repository:
helm upgrade --install \
    --namespace argocd \
     argocd-substitute-plugin argocd-substitute-plugin \
     --repo https://grzegorzgniadek.github.io/argocd-appset-substitute-plugin

Installation with plain YAML files

You can use Helm to generate plain YAML files and then deploy these YAML files with kubectl apply or whatever you want:

helm template --namespace argocd \
     argocd-substitute-plugin argocd-substitute-plugin \
     --repo https://grzegorzgniadek.github.io/argocd-appset-substitute-plugin \
     > /tmp/plugin.yaml
kubectl apply -f /tmp/plugin.yaml --namespace argocd

Configuration and customization

You can see the full list of parameters (along with their meaning and default values) in the chart's values.yaml file.

Customize resources

helm upgrade --install \
     --namespace argocd  \
     argocd-substitute-plugin argocd-substitute-plugin \
     --repo https://grzegorzgniadek.github.io/argocd-appset-substitute-plugin \
     --set port=8000

Use sample resource

kubectl apply -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/applicationset.yaml
kubectl apply -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/configmap.yaml
kubectl apply -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/secret.yaml

Delete sample resource

kubectl delete -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/applicationset.yaml
kubectl delete -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/configmap.yaml
kubectl delete -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/secret.yaml