The following configuration options are available for Kustomize:
namePrefixis a prefix appended to resources for Kustomize apps
nameSuffixis a suffix appended to resources for Kustomize apps
imagesis a list of Kustomize image overrides
commonLabelsis a string map of additional labels
commonAnnotationsis a string map of additional annotations
To use Kustomize with an overlay, point your path to the overlay.
If you're generating resources, you should read up how to ignore those generated resources using the
IgnoreExtraneous compare option.
Private Remote Bases¶
If you have remote bases that are either (a) HTTPS and need username/password (b) SSH and need SSH private key, then they'll inherit that from the app's repo.
This will work if the remote bases uses the same credentials/private key. It will not work if they use different ones. For security reasons your app only ever knows about its own repo (not other team's or users repos), and so you won't be able to access other private repos, even if Argo CD knows about them.
Read more about private repos.
kustomize build Options/Parameters¶
To provide build options to
kustomize build of default Kustomize version, use
kustomize.buildOptions field of
argocd-cm ConfigMap. Use
kustomize.buildOptions.<version> to register version specific build options.
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/name: argocd-cm app.kubernetes.io/part-of: argocd data: kustomize.buildOptions: --load-restrictor LoadRestrictionsNone kustomize.buildOptions.v4.4.0: --output /tmp
Custom Kustomize versions¶
Argo CD supports using multiple Kustomize versions simultaneously and specifies required version per application.
To add additional versions make sure required versions are bundled and then
kustomize.path.<version> fields of
argocd-cm ConfigMap to register bundled additional versions.
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/name: argocd-cm app.kubernetes.io/part-of: argocd data: kustomize.path.v3.5.1: /custom-tools/kustomize_3_5_1 kustomize.path.v3.5.4: /custom-tools/kustomize_3_5_4
Once a new version is configured you can reference it in an Application spec as follows:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook spec: source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook-kustomize kustomize: version: v3.5.4
Additionally, the application kustomize version can be configured using the Parameters tab of the Application Details page, or using the following CLI command:
argocd app set <appName> --kustomize-version v3.5.4
Kustomize does not support parameters and therefore cannot support the standard build environment.
Kustomizing Helm charts¶
It's possible to render Helm charts with Kustomize.
Doing so requires that you pass the
--enable-helm flag to the
kustomize build command.
This flag is not part of the Kustomize options within Argo CD.
If you would like to render Helm charts through Kustomize in an Argo CD application, you have two options:
You can either create a custom plugin, or modify the
argocd-cm ConfigMap to include the
--enable-helm flag globally for all Kustomize applications:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd data: kustomize.buildOptions: --enable-helm