# Helm values and component configuration

Helm value paths are relative to a chart. A bundled subchart value and a standalone chart value can have different prefixes. Match the selected chart version before editing configuration; the Agent’s collection flag does not install every controller it can observe.

## Configuration ownership

Use [Install with Helm](https://docs.kedify.io/installation/helm/) for core install and Argo CD/Terraform/ARM variants. When the Agent manages a component, [KedifyConfiguration](https://docs.kedify.io/reference/kubernetes-api/kedifyconfiguration/) describes its desired installation state. Keep Helm/GitOps and that resource’s ownership consistent; a direct change to a managed dependent release can be reverted.

## Agent feature and collection options

These feature paths can describe a newer release than the Agent v0.7.0 defaults below. Use the values for your installed chart version.

Full set of configuration options is available in Kedify Agent [chart values](https://github.com/kedify/charts/blob/main/kedify-agent/values.yaml). Here are some notable options:

- `agent.features.podResourceProfilesEnabled`: Enables the controller for `PodResourceProfile` to be started by Kedify Agent. The feature is further described on its own [docs](https://docs.kedify.io/features/pod-resource-profiles/). By default, it is `true`. Env var equivalent: `PRP_ENABLED`.

- `agent.features.prpRequiresAnnotatedPods`: If enabled, the controller for `PodResourceProfile` requires the target pods (where container resources should be modified) to have annotation `prp.kedify.io/reconcile=enabled` on them. This is a performance optimization so that more pod events can be ignored by the controller. Default: `true`. Env var equivalent: `PRP_REQUIRES_ANNOTATED_PODS`.

- `agent.features.podResourceAutoscalersEnabled`: Enables the controller for [Pod Resource Autoscaler](https://docs.kedify.io/features/pod-resource-autoscaler/). Default is `false`; set it to `true` to enable PRA. Env var equivalent: `PRA_ENABLED`.

- `global.features.multicluster.enabled`: Enables both `DistributedScaledObject` and `DistributedScaledJob` controllers used by [Multi-Cluster Scaling](https://docs.kedify.io/features/multi-cluster-scaling/), plus the raw metrics gRPC service required by distributed jobs when the chart installs Kedify KEDA. The equivalent `agent.features.multicluster.enabled` setting enables both Agent controllers but cannot configure the dependent KEDA chart. The previous flat `distributedScaledObjectsEnabled` and `distributedScaledJobsEnabled` values remain supported during the deprecation period.

- `global.features.multicluster.vClusterDiscoveryEnabled`: Discovers shared-node vClusters through their native kubeconfig Secrets. The equivalent setting under `agent.features.multicluster` is also supported. This opt-in grants the Agent cluster-wide `get`, `list`, and `watch` access to Secrets and Services and requires multi-cluster scaling to be enabled.

- `agent.features.scalingPoliciesEnabled`: Enables the controller for [Scaling Policy](https://docs.kedify.io/features/scaling-policy/). Default is `true`; set it to `false` to disable the controller. Env var equivalent: `SCALING_POLICY_ENABLED`.

- `agent.features.kedifyPodAutoscalerEnabled`: Enables KPA telemetry and Dashboard support. Default is `false`. A compatible Agent, Dashboard, KEDA, and KPA release set is required.

- `agent.features.scaleAdaptersEnabled`: Enables the controller for [ScaleAdapter](https://docs.kedify.io/features/scale-adapter/), which lets KEDA scale resources with an incomplete `/scale` subresource, such as Agones Fleets, or with no `/scale` subresource at all. Default is `false`; the agent additionally needs RBAC through `agent.extraRbacRules`: `get` and `update` on the target kinds’ `/scale` subresource, or `get`, `list`, `watch` and `update` on the whole resource for targets adapted through replica field paths. Env var equivalent: `SCALE_ADAPTER_ENABLED`.

- `agent.features.recommendationsForLabeledNamespaces`: Limits Kubernetes container utilization scraping to opted-in namespaces. Default: `true`. Env var equivalent: `METRICS_FOR_LABELED_NAMESPACES_ENABLED`.

- `agent.metricsWatchNamespace`: Comma-separated list of namespaces where Kubernetes container utilization metrics should be collected. When `agent.features.recommendationsForLabeledNamespaces=true`, explicit namespaces in this list are added to the labeled namespaces. When label-gated collection is disabled, an unset or empty value means all namespaces. Env var equivalent: `METRICS_WATCH_NAMESPACE`.

- `agent.kedifyProxy.clusterWide`: Enables the cluster-wide deployment of `kedify-proxy`, shared across all namespaces in the cluster. This variable should be set to `true` to configure a single instance of `kedify-proxy` in the KEDA installation namespace for centralized scaling. The cluster-wide setup is supported only for configurations using Istio’s VirtualService. For more details, see [Kedify Proxy](https://docs.kedify.io/scalers/http-scaler/#kedify-proxy).

- `agent.kedifyProxy.globalValues`: Set of options to configure `kedify-proxy` deployments. See [Kedify Proxy helm chart](https://github.com/kedify/charts/blob/main/kedify-proxy/values.yaml) for more details. This can also be fine-tuned per namespace through `agent.kedifyProxy.namespacedValues.${NAMESPACE}`.

## Read the values for your installed release

```bash
helm list --all-namespaces
helm get values RELEASE -n NAMESPACE -a
helm show values kedifykeda/kedify-agent --version CHART_VERSION
```

Treat live values as sensitive: they may contain credentials. Compare the selected chart’s schema/defaults with the deployed values before changing them. [Availability](https://docs.kedify.io/reference/capability-availability/) records prerequisites; [Insights settings](https://docs.kedify.io/features/insights/) explains namespace selection; [observation](https://docs.kedify.io/troubleshooting/workload-scaling/) explains native and existing-stack telemetry.

## Agent chart v0.7.0 snapshot

| Chart-relative path | Type | Snapshot default |
| --- | --- | --- |
| `clusterName` | string | `"cluster-1"` |
| `disableSchemaValidation` | boolean | `false` |
| `global.features.podResourceProfilesDownscaleGuardEnabled` | boolean | `true` |
| `global.features.podResourceProfilesEnabled` | boolean | `true` |
| `global.features.podResourceAutoscalersEnabled` | boolean | `false` |
| `global.features.argoRolloutsEnabled` | boolean | `false` |
| `global.features.prpRequiresAnnotatedPods` | boolean | `true` |
| `global.features.praRequiresAnnotatedPods` | boolean | `false` |
| `global.features.distributedScaledObjectsEnabled` | boolean | `false` |
| `global.features.distributedScaledJobsEnabled` | boolean | `false` |
| `global.features.scaleAdaptersEnabled` | boolean | `false` |
| `global.features.scalingPoliciesEnabled` | boolean | `true` |
| `global.features.recommendationsForLabeledNamespaces` | boolean | `true` |
| `global.features.multitenantKEDAEnabled` | boolean | `false` |
| `global.features.kedifyPodAutoscalerEnabled` | boolean | `false` |
| `agent.replicas` | number | `1` |
| `agent.orgId` | string | `""` |
| `agent.apiKey` | string | `""` |
| `agent.createApiKeySecret` | boolean | `true` |
| `agent.agentId` | string | `""` |
| `agent.kedifyServer` | string | `"service.kedify.io:443"` |
| `agent.cloudAccountID` | string | `""` |
| `agent.logging.level` | string | `"info"` |
| `agent.logging.format` | string | `"console"` |
| `agent.logging.timeEncoding` | string | `"RFC3339"` |
| `agent.logging.stackTracesEnabled` | boolean | `false` |
| `agent.kedifyProxy.clusterWide` | boolean | `false` |
| `agent.kedifyProxy.chart` | string | `"/helm/kedify/kedify-proxy.tgz"` |
| `agent.kedifyProxy.chartVersion` | string | `"v0.0.12"` |
| `agent.kedifyProxy.proxyConfigmapWatcherEnabled` | boolean | `true` |
| `agent.kedifyProxy.globalValues.logging.format` | string | `"plaintext"` |
| `agent.kedifyProxy.globalEnvoyConfigs.route.idle_timeout` | string | `"3600s"` |
| `agent.kedifyProxy.globalEnvoyConfigs.cluster.lb_policy` | string | `"ROUND_ROBIN"` |
| `agent.kedifyProxy.namespacedValues` | object | `{}` |
| `agent.kedifyProxy.namespacedEnvoyConfigs` | object | `{}` |
| `agent.createCrds` | boolean | `true` |
| `agent.createKedifyConfiguration` | boolean | `true` |
| `agent.kedifyConfiguration.agentAutoUpdate` | boolean | `false` |
| `agent.kedifyConfiguration.mode` | string | `"Helm"` |
| `agent.kedifyConfiguration.httpAddonHelm.enabled` | boolean | `true` |
| `agent.kedifyConfiguration.predictorAddonHelm.enabled` | boolean | `true` |
| `agent.kedifyConfiguration.otelAddonHelm.enabled` | boolean | `true` |
| `agent.kedifyConfiguration.kedaHelm.enabled` | boolean | `true` |
| `agent.kedifyConfiguration.telemetry.controlPlane.interval` | number | `30` |
| `agent.kedifyConfiguration.telemetry.controlPlane.disabled` | boolean | `false` |
| `agent.kedifyConfiguration.telemetry.kedaResources.interval` | number | `30` |
| `agent.kedifyConfiguration.telemetry.kedaResources.disabled` | boolean | `false` |
| `agent.kedifyConfiguration.telemetry.kubernetesResources.interval` | number | `30` |
| `agent.kedifyConfiguration.telemetry.kubernetesResources.disabled` | boolean | `true` |
| `agent.image.tag` | string | `"v0.7.0"` |
| `agent.image.repository` | string | `"ghcr.io/kedify/agent"` |
| `agent.image.pullPolicy` | string | `"Always"` |
| `agent.imagePullSecrets` | array | `[]` |
| `agent.kubectlImage.tag` | string | `"v1.33.1"` |
| `agent.kubectlImage.repository` | string | `"ghcr.io/kedify/kubectl"` |
| `agent.kubectlImage.pullPolicy` | string | `"Always"` |
| `agent.metricsWatchNamespace` | string | `""` |
| `agent.noBanner` | boolean | `false` |
| `agent.noColor` | boolean | `false` |
| `agent.nameOverride` | string | `""` |
| `agent.fullnameOverride` | string | `""` |
| `agent.features.podResourceProfilesDownscaleGuardEnabled` | boolean | `true` |
| `agent.features.podResourceProfilesEnabled` | boolean | `true` |
| `agent.features.podResourceAutoscalersEnabled` | boolean | `false` |
| `agent.features.argoRolloutsEnabled` | boolean | `false` |
| `agent.features.prpRequiresAnnotatedPods` | boolean | `true` |
| `agent.features.praRequiresAnnotatedPods` | boolean | `false` |
| `agent.features.distributedScaledObjectsEnabled` | boolean | `false` |
| `agent.features.distributedScaledJobsEnabled` | boolean | `false` |
| `agent.features.scaleAdaptersEnabled` | boolean | `false` |
| `agent.features.scalingPoliciesEnabled` | boolean | `true` |
| `agent.features.recommendationsForLabeledNamespaces` | boolean | `true` |
| `agent.features.multitenantKEDAEnabled` | boolean | `false` |
| `agent.features.kedifyPodAutoscalerEnabled` | boolean | `false` |
| `agent.multicluster.localCluster.enabled` | boolean | `false` |
| `agent.multicluster.localCluster.name` | string | `"multicluster-local"` |
| `agent.autowire.serviceSyncPeriod` | string | `"500ms"` |
| `agent.autowire.ingressCooldownPeriod` | string | `"3600s"` |
| `agent.rbac.create` | boolean | `true` |
| `agent.rbac.shouldBeAbleToInstallKeda` | boolean | `false` |
| `agent.rbac.shouldBeAbleToInstallHttpAddon` | boolean | `false` |
| `agent.rbac.selfUpdates` | boolean | `false` |
| `agent.rbac.readMetrics` | boolean | `true` |
| `agent.rbac.readLogs` | boolean | `true` |
| `agent.rbac.readStatefulSets` | boolean | `false` |
| `agent.rbac.readDaemonSets` | boolean | `false` |
| `agent.rbac.readHpas` | boolean | `false` |
| `agent.rbac.readNodes` | boolean | `true` |
| `agent.rbac.readPods` | boolean | `true` |
| `agent.rbac.readDeploymentsClusterwide` | boolean | `true` |
| `agent.rbac.readDeployments` | boolean | `true` |
| `agent.rbac.readServices` | boolean | `true` |
| `agent.rbac.ingressAutoWire` | boolean | `true` |
| `agent.rbac.kedifyConfig` | boolean | `false` |
| `agent.extraRbacRules` | array | `[]` |
| `agent.extraObjects` | array | `[]` |
| `agent.extraPreInstallObjects` | array | `[]` |
| `agent.extraPostInstallObjects` | array | `[]` |
| `agent.serviceAccount.create` | boolean | `true` |
| `agent.serviceAccount.automount` | boolean | `true` |
| `agent.serviceAccount.annotations` | object | `{}` |
| `agent.podAnnotations.kubectl.kubernetes.io/default-container` | string | `"manager"` |
| `agent.podLabels` | object | `{}` |
| `agent.resources.limits.cpu` | string | `"500m"` |
| `agent.resources.limits.memory` | string | `"1024Mi"` |
| `agent.resources.requests.cpu` | string | `"10m"` |
| `agent.resources.requests.memory` | string | `"300Mi"` |
| `agent.volumes` | array | `[]` |
| `agent.volumeMounts` | array | `[]` |
| `agent.podSecurityContext` | object | `{}` |
| `agent.securityContext.runAsNonRoot` | boolean | `true` |
| `agent.securityContext.allowPrivilegeEscalation` | boolean | `false` |
| `agent.securityContext.readOnlyRootFilesystem` | boolean | `false` |
| `agent.securityContext.seccompProfile.type` | string | `"RuntimeDefault"` |
| `agent.securityContext.capabilities.drop` | array | `["ALL"]` |
| `agent.nodeSelector` | object | `{}` |
| `agent.tolerations` | array | `[]` |
| `agent.affinity` | object | `{}` |
| `agent.extraArgs` | object | `{}` |
| `hooks` | string | `"helm"` |
| `keda.enabled` | boolean | `false` |
| `keda.prometheus.operator.enabled` | boolean | `true` |
| `keda.prometheus.metricServer.enabled` | boolean | `true` |
| `keda.prometheus.webhooks.enabled` | boolean | `true` |
| `keda-add-ons-http.enabled` | boolean | `false` |
| `keda-add-ons-http.interceptor.scaledObject.waitForCrd` | boolean | `true` |
| `otel-add-on.enabled` | boolean | `false` |
| `otel-add-on.fullnameOverride` | string | `"kedify-otel-scaler"` |
| `otel-add-on.otelOperator.enabled` | boolean | `true` |
| `kedify-predictor.enabled` | boolean | `false` |
| `kedify-predictor.fullnameOverride` | string | `"kedify-predictor"` |
| `autoscaling-checks.enabled` | boolean | `false` |
| `autoscaling-checks.http.enabled` | boolean | `true` |
| `autoscaling-checks.prometheus.enabled` | boolean | `false` |
| `autoscaling-checks.otel.enabled` | boolean | `false` |
| `autoscaling-checks.cpu.enabled` | boolean | `true` |
| `autoscaling-checks.memory.enabled` | boolean | `false` |

## Standalone KPA chart snapshot

| Chart-relative path | Type | Snapshot default |
| --- | --- | --- |
| `replicaCount` | number | `2` |
| `image.repository` | string | `"ghcr.io/kedify/kpa"` |
| `image.tag` | string | `""` |
| `image.pullPolicy` | string | `"IfNotPresent"` |
| `image.hardened` | boolean | `false` |
| `imagePullSecrets` | array | `[]` |
| `nameOverride` | string | `""` |
| `fullnameOverride` | string | `""` |
| `serviceAccount.create` | boolean | `true` |
| `serviceAccount.annotations` | object | `{}` |
| `serviceAccount.name` | string | `""` |
| `crds.install` | boolean | `true` |
| `watchNamespace` | string | `""` |
| `controller.syncPeriod` | string | `"15s"` |
| `controller.minimumSyncPeriod` | string | `"5s"` |
| `controller.infrastructureRetryMax` | string | `"30s"` |
| `controller.maxConcurrentReconciles` | number | `5` |
| `controller.downscaleStabilization` | string | `"5m"` |
| `controller.tolerance` | number | `0.1` |
| `controller.cpuInitializationPeriod` | string | `"5m"` |
| `controller.initialReadinessDelay` | string | `"30s"` |
| `controller.kubeAPIQPS` | number | `20` |
| `controller.kubeAPIBurst` | number | `30` |
| `controller.kedaRequestTimeout` | string | `"3s"` |
| `controller.leaderElect` | boolean | `true` |
| `controller.leaderElectionID` | string | `""` |
| `controller.logLevel` | string | `"info"` |
| `controller.extraArgs` | array | `[]` |
| `keda.metricsAddress` | string | `"keda-operator.keda.svc:9666"` |
| `keda.metricsAuthority` | string | `"keda-operator.keda.svc"` |
| `keda.certificateSecret` | string | `"kedaorg-certs"` |
| `keda.certificateMountPath` | string | `"/certs"` |
| `podAnnotations.prometheus.io/scrape` | string | `"true"` |
| `podAnnotations.prometheus.io/port` | string | `"8080"` |
| `podAnnotations.prometheus.io/path` | string | `"/metrics"` |
| `podLabels.app.kubernetes.io/part-of` | string | `"kedify-pod-autoscaler"` |
| `podSecurityContext.runAsNonRoot` | boolean | `true` |
| `podSecurityContext.runAsUser` | number | `65532` |
| `podSecurityContext.runAsGroup` | number | `65532` |
| `podSecurityContext.fsGroup` | number | `65532` |
| `podSecurityContext.seccompProfile.type` | string | `"RuntimeDefault"` |
| `securityContext.allowPrivilegeEscalation` | boolean | `false` |
| `securityContext.capabilities.drop` | array | `["ALL"]` |
| `securityContext.readOnlyRootFilesystem` | boolean | `true` |
| `securityContext.runAsNonRoot` | boolean | `true` |
| `resources.requests.cpu` | string | `"50m"` |
| `resources.requests.memory` | string | `"64Mi"` |
| `resources.limits.cpu` | string | `"500m"` |
| `resources.limits.memory` | string | `"256Mi"` |
| `service.annotations` | object | `{}` |
| `service.metricsPort` | number | `8080` |
| `serviceMonitor.enabled` | boolean | `false` |
| `serviceMonitor.labels` | object | `{}` |
| `serviceMonitor.interval` | string | `"30s"` |
| `serviceMonitor.scrapeTimeout` | string | `"10s"` |
| `prometheusRule.enabled` | boolean | `false` |
| `prometheusRule.labels` | object | `{}` |
| `podDisruptionBudget.enabled` | boolean | `true` |
| `podDisruptionBudget.minAvailable` | number | `1` |
| `networkPolicy.enabled` | boolean | `false` |
| `networkPolicy.apiServerPorts` | array | `[443, 6443]` |
| `networkPolicy.prometheusNamespaceSelector` | object | `{}` |
| `networkPolicy.prometheusPodSelector` | object | `{}` |
| `networkPolicy.kedaNamespaceSelector` | object | `{}` |
| `networkPolicy.kedaPodSelector.matchLabels.app.kubernetes.io/name` | string | `"keda-operator"` |
| `nodeSelector` | object | `{}` |
| `tolerations` | array | `[]` |
| `affinity` | object | `{}` |
| `topologySpreadConstraints` | array | `[]` |
| `priorityClassName` | string | `""` |
| `terminationGracePeriodSeconds` | number | `10` |

## Continue with this topic

**Related capabilities:** [Kedify Agent and data collection](https://docs.kedify.io/concepts/kedify-agent/).

Last updated: Sep 21, 2026

---
Canonical: https://docs.kedify.io/reference/helm-values/
Source: src/content/docs/reference/helm-values.md
Documentation index: https://docs.kedify.io/llms.txt
