Skip to content

Install with Argo CD

Export from the Dashboard

In Clusters → Connect cluster, or an existing cluster's Installation dialog, select Argo CD. Configure components, cluster name, Agent API key and any multi-tenant or multi-cluster options.

  1. Open GitOps settings and set the Argo CD namespace, project and destination. The default project is Argo CD's built-in project. A custom name must refer to an existing AppProject that permits the chart repositories and destination.
  2. Select Application for complete Argo CD resources, or Values to integrate the chart values into your existing Applications. Download YAML downloads only the selected output; repeat for each generated release.
  3. Supply credentials below, commit the Applications and sync them. The generated Applications do not enable automatic sync or pruning.
Kedify installation dialog with Argo CD selected and Values and Application output choices

Applications pin the chart with spec.source.targetRevision and configure it with helm.valuesObject. Keep the exact chart version in Git and change it through a reviewed update; it is a chart version, not a Git commit or an image tag. Set a stable helm.releaseName when integrating values into your own Application.

For multi-tenant installations, export every KEDA and optional KPA release. Keep exactly one KPA CRD owner, and reconcile each KEDA/KPA pair together. Sync-wave annotations order children when a parent Application manages them; they do not order manually synced, independent Applications. Bootstrap the generated CRD-owning KPA release alongside the first installation that needs it, then sync dependent tenants. See multi-tenant installation.

For HTTP traffic autowiring, configure drift handling on the Application that owns your workload routing, not just the Kedify Application. See Argo CD routing guidance.

When changing an existing installation from cluster-wide to namespace-scoped watches, review and prune obsolete RBAC during a manual sync. The exported Applications keep automatic pruning disabled.

Provide credentials

Before syncing, create namespace keda and supply Secret kedify-agent with an apikey field using your secret manager or encrypted Secret workflow. The dashboard's Credentials section provides Copy Secret YAML and Preview Secret YAML; the copied Secret contains credentials and must not be committed unencrypted.

The generated values set agent.createApiKeySecret: false, so Argo CD does not render the credential Secret from chart values. The Secret is managed separately. Preserve agent_id when adopting an existing installation. Generated Applications ignore the Agent-written /data/agent_id field and enable RespectIgnoreDifferences=true.

Separate component Applications

The examples below give each component its own Application. Use this layout instead of the dashboard's bundled Agent release; do not enable the same components in both. Sync KEDA first to establish its namespace and CRDs, then sync the other components.

Replace organization and chart values before syncing, and supply the credential Secret as described above. OTel and Predictor use Argo CD's Helm OCI source format: registry path in repoURL and chart name in chart.

Kedify build of KEDA Installation Manifest with Argo CD

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: keda
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
chart: keda
repoURL: https://kedify.github.io/charts
targetRevision: v2.21.0-3
helm:
values: |
image:
keda:
tag: v2.21.0-3
registry: ghcr.io
repository: kedify/keda-operator
metricsApiServer:
tag: v2.21.0-3
registry: ghcr.io
repository: kedify/keda-metrics-apiserver
webhooks:
tag: v2.21.0-3
registry: ghcr.io
repository: kedify/keda-admission-webhooks
prometheus:
operator:
enabled: true
metricServer:
enabled: true
webhooks:
enabled: true
## Please fill this section with your custom values based on the available options
syncPolicy:
automated: {}
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
ignoreDifferences:
- kind: APIService
group: apiregistration.k8s.io
jqPathExpressions:
- '.spec.insecureSkipTLSVerify'
- kind: ValidatingWebhookConfiguration
group: admissionregistration.k8s.io
jqPathExpressions:
- '.webhooks[].clientConfig.caBundle'

HTTP Scaler Installation Manifest with Argo CD

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: http-scaler
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
chart: keda-add-ons-http
repoURL: https://kedify.github.io/charts
targetRevision: v0.11.1-8
helm:
values: |
images:
tag: v0.11.1-8
operator: ghcr.io/kedify/http-add-on-operator
interceptor: ghcr.io/kedify/http-add-on-interceptor
scaler: ghcr.io/kedify/http-add-on-scaler
interceptor:
replicas:
min: 1
scaler:
replicas: 1
operator:
replicas: 0
## Please fill this section with your custom values based on the available options

Kedify Agent Installation Manifest with Argo CD

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kedify-agent
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
chart: kedify-agent
repoURL: https://kedify.github.io/charts
targetRevision: v0.8.3
helm:
values: |
keda:
enabled: false
keda-add-ons-http:
enabled: false
otel-add-on:
enabled: false
kedify-predictor:
enabled: false
clusterName: my-cluster # EDIT THIS
agent:
orgId: "$YOUR_ORG_ID" # EDIT THIS
createApiKeySecret: false # Supply Secret keda/kedify-agent separately
## Please fill this section with your custom values based on the available options

OTel Scaler Installation Manifest with Argo CD

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kedify-otel-scaler
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
chart: otel-add-on
repoURL: ghcr.io/kedify/charts
targetRevision: v0.1.5
helm:
values: |
image:
repository: ghcr.io/kedify/otel-add-on
tag: v0.1.5
## Please fill this section with your custom values based on the available options

Kedify Predictor Installation Manifest with Argo CD

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kedify-predictor
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
chart: kedify-predictor
repoURL: ghcr.io/kedify/charts
targetRevision: v0.1.9
helm:
values: |
settings:
logs:
logLvl: info
## Please fill this section with your custom values based on the available options

Verify

Check that the Applications are synced and healthy, then run the installation checks. For HTTP traffic autowiring, retain the application-level ignoreDifferences configuration described above.