Skip to content

Helm Installation

Install the Kedify Agent using Helm. You can do this either through the Kedify Service or manually by following the guide in this document.

Prerequisites

  • A running Kubernetes cluster (local or cloud-based like EKS, GKE, etc.).
  • helm installed and accessible in your environment.
  • An account created and signed in to the Kedify Service.

Installation with Kedify Service

Log in to the Kedify Service and open the cluster view:

Kedify Service Cluster View

In the top-right corner, click the dropdown button to open the installation options, and select Helm Installation:

Kedify Service Installation Options

This opens a dialog showing the necessary steps to install the Kedify using Helm:

Kedify Service Helm Installation

Prepare Installation

Follow these steps to install Kedify using Helm manually.

Getting Organization ID

In the Kedify dashboard, navigate to Organization and select Details. Copy the ID.

Getting API Key

If you already have a Kedify Agent deployed, you can retrieve your pre-provisioned API key from a Secret in the same Kubernetes cluster:

Terminal window
kubectl get secret -n keda kedify-agent -o=jsonpath='{.data.apikey}' | base64 --decode

If you don’t have an existing Agent, you can generate a new API Key in the Kedify dashboard. Navigate to Organization and select API Keys. Click Regenerate Agent Key and copy the key.

Helm Installation

The following steps guide you through the installation of Kedify on your cluster using Helm. Each component is installed individually from its respective Helm chart. This means you are responsible for updating each component separately.

You can either use the quick installation steps below with default values, or proceed to the advanced installation section for more customized configuration options.

Kedify Helm Repository

To install Kedify using Helm, you first need to add the Kedify Helm repository to your local Helm configuration.

Terminal window
helm repo add kedifykeda https://kedify.github.io/charts
helm repo update

Quick Installation

Follow these steps to quickly install Kedify using Helm with default settings.

1. Install Kedify build of KEDA:

Terminal window
helm upgrade --install keda kedifykeda/keda --namespace keda \
--version v2.17.1-2 \
--create-namespace

2. Install Kedify HTTP Scaler:

Terminal window
helm upgrade --install keda-add-ons-http kedifykeda/keda-add-ons-http \
--namespace keda \
--version v0.10.0-12

3. Install Kedify Agent:

Terminal window
helm upgrade --install kedify-agent kedifykeda/kedify-agent \
--namespace keda \
--version v0.2.10 \
--set clusterName="my-cluster" \
--set agent.orgId="$YOUR_ORG_ID" \
--set agent.apiKey="$YOUR_API_KEY"

4. (Optional) Install OTel Scaler:

Terminal window
helm upgrade -i kedify-otel oci://ghcr.io/kedify/charts/otel-add-on \
--namespace keda \
--version v0.0.11

Advanced Installation

For a more customized installation, you can create your own values.yaml files for each component.

1. Configure Kedify build of KEDA

Create a values_keda.yaml file with the following content. See all available options in the values.yaml file.

image:
keda:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-operator
metricsApiServer:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-metrics-apiserver
webhooks:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-admission-webhooks
watchNamespace: ''
rbac:
scaledRefKinds:
- apiGroup: '*'
kind: '*'
## Please fill this file with your custom values based on the available options

2. Configure HTTP Scaler

Create a values_http.yaml file with the following content. See all available options in the values.yaml file.

images:
tag: v0.10.0-12
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
resources:
requests:
cpu: '0.1'
memory: 32Mi
limits:
cpu: 1
memory: 64Mi
scaler:
replicas: 1
resources:
requests:
cpu: '0.1'
memory: 16Mi
limits:
cpu: 0.5
memory: 64Mi
operator:
replicas: 0
## Please fill this file with your custom values based on the available options

3. Configure Kedify Agent

Create a values_kedify.yaml file with the following content. See all available options in the values.yaml file.

clusterName: my-cluster
agent:
orgId: "YOUR_ORG_ID"
apiKey: "YOUR_API_KEY"
image:
tag: v0.2.10
repository: ghcr.io/kedify/agent
## Please fill this file with your custom values based on the available options

4. Install Kedify

To install Kedify using the custom values files, run the following commands:

Terminal window
helm upgrade --install keda kedifykeda/keda --namespace keda \
--create-namespace \
--values values_keda.yaml
helm upgrade --install keda-add-ons-http kedifykeda/keda-add-ons-http \
--namespace keda \
--values values_http.yaml
helm upgrade --install kedify-agent kedifykeda/kedify-agent \
--namespace keda \
--values values_kedify.yaml

4. (Optional) Install OTel Scaler

Prepare a values_otel.yaml file with the following content. See all available options in the values.yaml file.

image:
repository: ghcr.io/kedify/otel-add-on
tag: v0.0.11
## Please fill this file with your custom values based on the available options

Then, install the OTel Scaler using the following command:

Terminal window
helm upgrade --install kedify-otel oci://ghcr.io/kedify/charts/otel-add-on \
--namespace keda \
--values values_otel.yaml

Helm Installation with Argo CD

To install the Helm charts using Argo CD, you can use the following manifests. They provide a base configuration for deploying keda, http-add-on, and kedify-agent.

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.17.1-2
helm:
values: |
image:
keda:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-operator
metricsApiServer:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-metrics-apiserver
webhooks:
tag: v2.17.1-2
registry: ghcr.io
repository: kedify/keda-admission-webhooks
## 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.10.0-12
helm:
values: |
images:
tag: v0.10.0-12
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.2.10
helm:
values: |
clusterName: my-cluster # EDIT THIS
agent:
orgId: "$YOUR_ORG_ID" # EDIT THIS
apiKey: "$YOUR_API_KEY" # EDIT THIS
## 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
namespace: argocd
spec:
destination:
namespace: keda
server: https://kubernetes.default.svc
project: default
source:
repoURL: oci://ghcr.io/kedify/charts/otel-add-on
targetRevision: v0.0.11
helm:
values: |
image:
repository: ghcr.io/kedify/otel-add-on
tag: v0.0.11
## Please fill this section with your custom values based on the available options

Verifying Installation

After installing Kedify, you can verify the installation by checking the status of the Kedify Agent and KEDA components in your cluster.

Terminal window
kubectl get pods -n keda

You should see output similar to the following, indicating that all components are running:

Terminal window
NAME READY STATUS RESTARTS AGE
keda-add-ons-http-external-scaler-8464ffbdc5-9xf2t 1/1 Running 0 66s
keda-add-ons-http-interceptor-86bbbbcdb6-rb77p 1/1 Running 0 66s
keda-admission-webhooks-54d747fd77-46hz8 1/1 Running 0 66s
keda-operator-679d985bf7-s29m5 1/1 Running 0 66s
keda-operator-metrics-apiserver-845c769bcd-qghqj 1/1 Running 0 66s
kedify-agent-74df5f847-rmv8b 1/1 Running 0 66s
otel-add-on-scaler-55ff5fcb77-krfxs 1/1 Running 0 66s
otelcol-786f85f4c7-hfdp6 1/1 Running 0 66s