argocd-appset-substitute-plugin

Release Container 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

$ 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 repo add argocd-appset-substitute-plugin https://grzegorzgniadek.github.io/argocd-appset-substitute-plugin
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

Installation with GitOps(ArgoCD)

You can use ArgoCD as installation Installation Manifest

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/configmap.yaml
kubectl apply -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/secret.yaml
kubectl apply -f https://raw.githubusercontent.com/grzegorzgniadek/argocd-appset-substitute-plugin/refs/heads/master/examples/applicationset.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