Skip to main content

Deploying Addons

Once you have created the addons, you can enable (deploy) them in your cluster. Before deploying, you must first configure the addon.

Step 1: Configure Addon

To configure an addon, follow these steps:

  1. In the Addons tab in your ArgoCD instance, click on the addon you wish to configure.

    Addons Tab

  2. In the addon details view, click the Config button.

    Addon Details

  3. Configure the addon options:

    1. Template Name: The templated name of the addon.
    2. Template Namespace: The templated namespace where the addon will be deployed.
    3. Template Project: The templated project where the addon will be deployed.
    Template Syntax

    You can use the following allowed template expressions to dynamically configure your addon:

    • Addon Fields:
    • {{ .addon.name }} — The name of the addon.
    • {{ .addon.type }} — The type of the addon (e.g., "helm", "kustomize").
    • Cluster Fields:
    • {{ .cluster.name }} — The cluster's name.
    • {{ .cluster.namespace }} — The cluster's namespace.
    • {{ .cluster.labels }} — The cluster's labels (use {{ .cluster.labels.key }} to access specific labels).
    • {{ .cluster.annotations }} — The cluster's annotations:
      • Use {{ .cluster.annotations.key }} to access specific annotations
      • Use {{ .cluster.annotations["example.com/xyz"] }} for keys with dots/slashes
    • Note: Array values cannot be accessed by index. The entire array must be set as a value.
    1. Creation Options: Configure the creation details for the addon.
    2. Auto Sync Options:
      • Auto Sync: Enable automatic synchronization of the addon.
      • Auto Heal: Enable automatic healing of the addon.
      • Prune Resources: Enable automatic pruning of resources.
    3. Sync Options:
      • Skip Schema Validation: Skip schema validation.
      • Auto-Create Namespace: Automatically create the namespace if it does not exist.
      • Prune Last: Prune the last remaining resources.
      • Apply Out of Sync Only: Apply changes only when the addon is out of sync.
      • Respect Ignore Differences: Respect the ignore differences configuration.
      • Server-Side Apply: Use Kubernetes Server-Side Apply.
      • Replace: Replace existing resources during sync.
    4. Prune Propagation Policy: Set the prune propagation policy.
    5. Deployment Options: Configure the addon deployment details based on its type:
      • Helm Options:
        • Source Values: Specify YAML paths to extract specific values from your Helm values file. These paths define which configuration values will be managed by the addon system. For example:
          # Example YAML paths to extract specific values:
          image.tag
          replicaCount
          ingress.host
          resources.limits.memory
          The system will extract these values from your values.yaml file and allow you to override them per cluster or environment through Manifest Source updates.
        • Release Name Template: Define the release name template for Helm releases. This is useful for distinguishing between the same addon deployed to different clusters:
          # Examples:
          {{ .addon.name }}-{{ .cluster.name }}
          {{ .cluster.name }}-{{ .addon.type }}
          {{ .cluster.annotations["example.com/xyz"] }}-{{ .addon.name }} # For keys with dots/slashes
      • Kustomize Options:
        • Name Prefix Template: Define the name prefix template for Kustomize resources. This helps avoid naming conflicts across clusters:
          # Examples:
          {{ .cluster.name }}-{{ .addon.name }}
          {{ .addon.name }}-{{ .cluster.labels.environment }}
        • Name Suffix Template: Define the name suffix template for Kustomize resources:
          # Examples:
          {{ .addon.name }}-{{ .cluster.name }}
          {{ .addon.name }}-{{ .cluster.labels.region }}
    6. Filters: Control which clusters receive the addon:
      • All Clusters: Deploy the addon to all connected clusters.
      • Selected Clusters: Deploy the addon to selected clusters based on name and label filters.
  4. Click Save to store the configuration.

    Addon Configuration

Step 2: Enable/Deploy Addon

After configuring the addon, enable (deploy) it in your cluster by following these steps:

  1. In the Addons tab, select the addon you wish to enable.

    Addons Tab

  2. In the addon details view, click the Enable button. Confirm the action by clicking Enable in the confirmation dialog.

    Addon Details

  3. Navigate to the Summary tab for your addon. Here, you can view the current sync status. If auto-sync is not enabled, click the Sync button to synchronize the addon with your cluster.

    Addon Application

  4. The addon will now be deployed in your cluster.

Enable Kustomize

To use Kustomize for incorporating Helm charts in your addons, enable Kustomize in your ArgoCD instance as follows:

  1. Open your instance settings and click on the Manifest Generation tab.

  2. In the Kustomize section, enable the Enabled option and add the following build options:

    --enable-helm --helm-kube-version=1.30
  3. Click Save to apply the settings.

    Addon Application

Cluster Customization

You can patch the application spec of an addon to make cluster-specific changes. To patch the application spec, follow these steps:

  1. In the Addons tab, select the addon you wish to patch.

  2. Go to the Cluster Customization tab.

  3. Click on the New Customization button to add a new patch.

    Addon Application

  4. Select the target cluster, enter the patch details, and click Add to apply the patch.

    Addon Application

Update Manifest Source

You can update the manifest source for an addon to implement environment or cluster-specific changes. This is where you can override the base configuration defined in the Deployment Options for specific clusters or environments.

Deployment Options

The Source Values (YAML paths) configured in Deployment Options define which configuration values from your Helm values file will be managed by the addon system. The Manifest Source updates allow you to override these specific values for different clusters or environments, providing fine-grained control over your addon deployments.

Helm Addon Manifest Source Updates

For Helm addons, you can update:

  1. Values Override: Override specific values that were defined as YAML paths in the Source Values configuration. The system will update your values.yaml file with these overrides.

  2. Chart Dependencies: Update chart dependency versions.

    Helm Addon Settings

Kustomize Addon Manifest Source Updates

For Kustomize addons, you can update:

  1. Images: Update container image configurations including name, new name, tag, and digest.

  2. Helm Charts: Update Helm chart dependencies used by Kustomize.

    Kustomize Addon Settings

How to Update Manifest Source

To update the manifest source, follow these steps:

  1. In the Addons tab, select the addon you want to update.

  2. Navigate to the Manifest Source tab.

  3. Click on the Settings icon next to the manifest source you wish to update.

    Addon Application

  4. Update the configuration based on your addon type:

    • For Helm: Update values and chart dependencies
    • For Kustomize: Update images and Helm chart dependencies
  5. Click Update to apply the changes.

    Addon Application

In this way, you can deploy and manage addons in your cluster using ArgoCD. In the next section, we will cover how to delete addons from the cluster.