# Install components separately

Install KEDA, HTTP Scaler, Agent, OTel and Predictor as separate Helm releases. Use this path when each component has its own values and release lifecycle. For the bundled installation, use [Helm](https://docs.kedify.io/installation/helm/).

The following components can be installed and configured separately:

- [Kedify Agent](https://docs.kedify.io/installation/components/#configure-kedify-agent) - The main Kedify component ([Documentation](https://docs.kedify.io/concepts/kedify-agent/))

- [KEDA](https://docs.kedify.io/installation/components/#configure-kedify-build-of-keda) - The Kedify build of KEDA ([Documentation](https://keda.sh/))

- [HTTP Scaler](https://docs.kedify.io/installation/components/#configure-http-scaler) - HTTP-based autoscaler ([Documentation](https://docs.kedify.io/scalers/http-scaler/))

- [OTel Scaler](https://docs.kedify.io/installation/components/#install-otel-scaler) - OpenTelemetry-based general purpose autoscaler ([Documentation](https://docs.kedify.io/scalers/otel-scaler/))

- [Kedify Predictor](https://docs.kedify.io/installation/components/#install-kedify-predictor) - Predictive autoscaler ([Documentation](https://docs.kedify.io/scalers/predictive-scaler/))

## 0. Prerequisites

Before proceeding, ensure you have added the Kedify Helm repository to your local Helm configuration as described in the [Kedify Helm Repository](https://docs.kedify.io/installation/helm/#kedify-helm-repository) section.

## 1. Configure Kedify build of KEDA

Create a `values_keda.yaml` file with the following content. See all available options in the [values.yaml](https://github.com/kedify/charts/blob/keda/v2.20.2-0/keda/values.yaml) file.

```yaml
image:
  keda:
    tag: v2.20.2-0
    registry: ghcr.io
    repository: kedify/keda-operator
  metricsApiServer:
    tag: v2.20.2-0
    registry: ghcr.io
    repository: kedify/keda-metrics-apiserver
  webhooks:
    tag: v2.20.2-0
    registry: ghcr.io
    repository: kedify/keda-admission-webhooks
prometheus:
  operator:
    enabled: true
  metricServer:
    enabled: true
  webhooks:
    enabled: true
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](https://github.com/kedify/charts/blob/http-add-on/v0.11.1-6/http-add-on/values.yaml) file.

```yaml
images:
    tag: v0.11.1-6
    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

Disable bundled subcharts in this release because the commands below install them separately.

Create a `values_kedify.yaml` file with the following content. See all available options in the [values.yaml](https://github.com/kedify/charts/blob/kedify-agent/v0.7.1/kedify-agent/values.yaml) file.

Ensure you update fields such as `clusterName`, `$YOUR_ORG_ID`, and `YOUR_API_KEY` in the command according to your organization's specific requirements. For more details on obtaining your `orgId` and `apiKey`, please refer to the [Getting Organization ID](https://docs.kedify.io/installation/helm/#getting-organization-id) and [Getting API Key](https://docs.kedify.io/installation/helm/#getting-api-key) sections, respectively.

```yaml
keda:
  enabled: false
keda-add-ons-http:
  enabled: false
otel-add-on:
  enabled: false
kedify-predictor:
  enabled: false
clusterName: my-cluster
agent:
  orgId: "YOUR_ORG_ID"
  apiKey: "YOUR_API_KEY"
  image:
    tag: v0.7.1
    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:

```bash
helm upgrade --install keda kedifykeda/keda --namespace keda \
    --version=v2.20.2-0 \
    --create-namespace \
    --values values_keda.yaml

helm upgrade --install keda-add-ons-http kedifykeda/keda-add-ons-http \
    --version=v0.11.1-6 \
    --namespace keda \
    --values values_http.yaml

helm upgrade --install kedify-agent kedifykeda/kedify-agent \
    --version=v0.7.1 \
    --namespace keda \
    --values values_kedify.yaml
```

## 5. (Optional) Install OTel Scaler

Prepare a `values_otel.yaml` file with the following content. See all available options in the [values.yaml](https://github.com/kedify/otel-add-on/blob/v0.1.4/helmchart/otel-add-on/values.yaml) file.

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

Then, install the OTel Scaler using the following command:

```bash
helm upgrade --install kedify-otel-scaler oci://ghcr.io/kedify/charts/otel-add-on \
    --version=v0.1.4 \
    --namespace keda \
    --values values_otel.yaml
```

## 6. (Optional) Install Kedify Predictor

Prepare a `values_predictor.yaml` file with the following example content. To see all the available options, check the default [values.yaml](https://github.com/kedify/charts/blob/348c2ba3868f1097ecad50cdead712e7c8a4aa5d/kedify-agent/values.yaml#L253-L255) file.

```yaml
settings:
  logs:
    logLvl: info
kedaPredictionController:
  retrainUsingJobs: false
## Please fill this file with your custom values based on the available options
```

Predictor uses SQLite file based DB by default for storing the metric data. It can also be configured to use an external Postgres DB using following values:

```yaml
db:
  type: "postgres"
  host: "postgres.keda.svc"  # default
  port: "5432"  # default
  user: "predictor"  # default
  password: "***"
  name: "predictor"  # default
  useSecretAndConfigmap: true  # default
kedaPredictionController:
  noSharedVolumes: true
```

Then, install the Kedify Predictor using the following command:

```bash
helm upgrade --install kedify-predictor oci://ghcr.io/kedify/charts/kedify-predictor \
    --version=v0.1.6 \
    --namespace keda \
    --values values_predictor.yaml
```

## Verify

Run the [installation checks](https://docs.kedify.io/installation/helm/#verifying-installation), then configure a [scaler](https://docs.kedify.io/features/). Consult [Helm values](https://docs.kedify.io/reference/helm-values/) for additional fields.

---
Canonical: https://docs.kedify.io/installation/components/
Source: src/pages/installation/components.astro
Documentation index: https://docs.kedify.io/llms.txt
