Skip to content

KedifyConfiguration API reference

The Agent reconciles this installation configuration. Keep one owner for the Helm values and KedifyConfiguration; editing a managed dependent release can be overwritten. The schema derives from the Agent install API, not its workload-scaling API.

Group: install.kedify.io. Kind: KedifyConfiguration. Scope: Namespaced.

Defaults below are schema defaults only. “Not specified” does not imply a controller default of zero or false. Required fields are required within their containing object. Runtime behavior can impose additional conditions described in the capability guide.

Served: true; storage: true.

FieldTypeRequiredSchema defaultMeaning and validation
specobjectNoNot specifiedKedifyConfigurationSpec defines the desired state of KedifyConfiguration
spec.cloudAccountIDstringNoNot specifiedCloudAccountID is the optional ID of the cloud account of the user, find your cloud account IDs in the Kedify Dashboard https://dashboard.kedify.io/organization-details pattern: ”^(aws:|gcp:|kfy:)[a-zA-Z0-9][a-zA-Z0-9-]*$”
spec.clusterNamestringNoNot specifiedClusterName is the name of this k8s cluster in the Kedify Dashboard
spec.kedaInstallationsarrayNoNot specifiedKEDAInstallations defines the KEDA installations options. Names must be unique across installations.
spec.kedaInstallations[]objectNoNot specifiedKEDAInstallation defines the desired state of a KEDA installation
spec.kedaInstallations[].agentAutoUpdatebooleanYesNot specifiedAutoUpdate controls whether the agent should be auto updated to latest released version
spec.kedaInstallations[].httpAddonHelmobjectNoNot specifiedHTTPAddonHelm defines the http-addon Helm values and chart version for HTTP Addon installation
spec.kedaInstallations[].httpAddonHelm.appVersionstringNoNot specifiedAppVersion defines the actual version of the application that will be installed (KEDA or HttpAddon, this should correspond with the container image tags)
spec.kedaInstallations[].httpAddonHelm.autoUpdatestringNoNot specifiedAutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”]
spec.kedaInstallations[].httpAddonHelm.chartVersionstringNoNot specifiedChartVersion defines the Helm chart version
spec.kedaInstallations[].httpAddonHelm.enabledbooleanNoNot specifiedEnabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this)
spec.kedaInstallations[].httpAddonHelm.valuesstringNoNot specifiedValues defines the Helm values
spec.kedaInstallations[].kedaHelmobjectNoNot specifiedKedaHelm defines the Helm values and chart version for KEDA installation
spec.kedaInstallations[].kedaHelm.appVersionstringNoNot specifiedAppVersion defines the actual version of the application that will be installed (KEDA or HttpAddon, this should correspond with the container image tags)
spec.kedaInstallations[].kedaHelm.autoUpdatestringNoNot specifiedAutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”]
spec.kedaInstallations[].kedaHelm.chartVersionstringNoNot specifiedChartVersion defines the Helm chart version
spec.kedaInstallations[].kedaHelm.enabledbooleanNoNot specifiedEnabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this)
spec.kedaInstallations[].kedaHelm.valuesstringNoNot specifiedValues defines the Helm values
spec.kedaInstallations[].modestringYesNot specifiedMode defines how Agent should manage the KEDA installation Managed: Agent will manage KEDA throughout its lifecycle InstallOnly: Agent will install KEDA but not manage it Adopt: Agent will adopt an existing KEDA installation enum: [“Managed”,“InstallOnly”,“Adopt”,“Auto”,“Disabled”,“Helm”]
spec.kedaInstallations[].multitenancyobjectNoNot specifiedMultitenancy defines if KEDA should be installed in multitenant mode, where metrics API is shared between multiple installations and how to route HPA requests to the right KEDA operator. Multitenancy is only supported with Helm management mode.
spec.kedaInstallations[].multitenancy.multitenancyConfigRefstringNoNot specifiedConfigRef is the reference to the secret for the multitenancy connections, if not provided defaults to “kedify-multitenancy-config” secret in the namespace of the default KEDA installation. This is where the keda adapter gets all TLS certs to each tenant keda-operator and the routing configuration for the HPA requests.
spec.kedaInstallations[].namestringNoNot specifiedName of the KEDA installation. Optional and informational only (used in logs and the config change hash); the installation is keyed by Namespace.
spec.kedaInstallations[].namespacestringNoNot specifiedNamespace where KEDA should be installed
spec.kedaInstallations[].otelAddonHelmobjectNoNot specifiedOTELAddonHelm defines the otel-addon Helm values and chart version for OTEL Addon installation
spec.kedaInstallations[].otelAddonHelm.appVersionstringNoNot specifiedAppVersion defines the actual version of the application that will be installed (KEDA or HttpAddon, this should correspond with the container image tags)
spec.kedaInstallations[].otelAddonHelm.autoUpdatestringNoNot specifiedAutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”]
spec.kedaInstallations[].otelAddonHelm.chartVersionstringNoNot specifiedChartVersion defines the Helm chart version
spec.kedaInstallations[].otelAddonHelm.enabledbooleanNoNot specifiedEnabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this)
spec.kedaInstallations[].otelAddonHelm.valuesstringNoNot specifiedValues defines the Helm values
spec.kedaInstallations[].predictorAddonHelmobjectNoNot specifiedPredictorAddonHelm defines the predictor-addon Helm values and chart version for Predictor Addon installation
spec.kedaInstallations[].predictorAddonHelm.appVersionstringNoNot specifiedAppVersion defines the actual version of the application that will be installed (KEDA or HttpAddon, this should correspond with the container image tags)
spec.kedaInstallations[].predictorAddonHelm.autoUpdatestringNoNot specifiedAutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”]
spec.kedaInstallations[].predictorAddonHelm.chartVersionstringNoNot specifiedChartVersion defines the Helm chart version
spec.kedaInstallations[].predictorAddonHelm.enabledbooleanNoNot specifiedEnabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this)
spec.kedaInstallations[].predictorAddonHelm.valuesstringNoNot specifiedValues defines the Helm values
spec.kedaInstallations[].telemetryobjectNoNot specifiedTelemetry defines the telemetry configuration
spec.kedaInstallations[].telemetry.controlPlaneobjectNoNot specifiedControlPlane defines the telemetry configuration for the control plane
spec.kedaInstallations[].telemetry.controlPlane.disabledbooleanNoNot specifiedDisabled defines if telemetry should be disabled, enabled by default
spec.kedaInstallations[].telemetry.controlPlane.intervalintegerNoNot specifiedInterval defines the interval for telemetry in seconds, 30 by default
spec.kedaInstallations[].telemetry.kedaResourcesobjectNoNot specifiedKedaResources defines the telemetry configuration for the KEDA resources
spec.kedaInstallations[].telemetry.kedaResources.disabledbooleanNoNot specifiedDisabled defines if telemetry should be disabled, enabled by default
spec.kedaInstallations[].telemetry.kedaResources.intervalintegerNoNot specifiedInterval defines the interval for telemetry in seconds, 30 by default
spec.kedaInstallations[].telemetry.kubernetesResourcesobjectNoNot specifiedKubernetesResources defines the telemetry configuration for the Kubernetes resources
spec.kedaInstallations[].telemetry.kubernetesResources.disabledbooleanNoNot specifiedDisabled defines if telemetry should be disabled, enabled by default
spec.kedaInstallations[].telemetry.kubernetesResources.intervalintegerNoNot specifiedInterval defines the interval for telemetry in seconds, 30 by default
FieldTypeRequiredSchema defaultMeaning and validation
statusobjectNoNot specifiedKedifyConfigurationStatus defines the observed state of KedifyConfiguration
status.agentobjectNoNot specifiedAgent contains agent related status information
status.agent.controlPlaneMetricsstringNoNot specified
status.agent.k8sResourcesMetricsstringNoNot specified
status.agent.kedaResourcesMetricsstringNoNot specified
status.agent.observedHelmValuesstringNoNot specified
status.agent.phasestringNoNot specified
status.agent.reasonstringNoNot specified
status.agent.uninstallationStartedAtstringNoNot specified
status.agent.versionstringNoNot specified
status.apiServiceobjectNoNot specifiedAPIService captures the observed status of API Service registration called v1beta1.external.metrics.k8s.io
status.apiService.phasestringNoNot specified
status.apiService.reasonstringNoNot specified
status.componentsobjectNoNot specifiedComponents captures the observed status of Kedify components (Keda, Http Addon and Otel Addon)
status.components.*objectNoNot specifiedKedifyComponentInstallationStatus defines the observed state of a KedifyInstallation
status.components.*.adoptedAtstringNoNot specified
status.components.*.deploymentsobjectNoNot specified
status.components.*.deployments.*objectNoNot specifiedKedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources
status.components.*.deployments.*.phasestringNoNot specified
status.components.*.deployments.*.reasonstringNoNot specified
status.components.*.firstHealthyAtstringNoNot specified
status.components.*.helmReleaseNamestringNoNot specified
status.components.*.observedHelmValuesstringNoNot specified
status.components.*.tenantsobjectNoNot specifiedTenants contains per-tenant status for non-default multitenant KEDA installations
status.components.*.tenants.*objectNoNot specifiedTenantStatus defines the observed state of a non-default multitenant KEDA installation
status.components.*.tenants.*.configSyncedobjectYesNot specifiedKedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources
status.components.*.tenants.*.configSynced.phasestringNoNot specified
status.components.*.tenants.*.configSynced.reasonstringNoNot specified
status.components.*.tenants.*.operatorobjectYesNot specifiedKedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources
status.components.*.tenants.*.operator.phasestringNoNot specified
status.components.*.tenants.*.operator.reasonstringNoNot specified
status.components.*.tenants.*.tlsCertSecretobjectYesNot specifiedKedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources
status.components.*.tenants.*.tlsCertSecret.phasestringNoNot specified
status.components.*.tenants.*.tlsCertSecret.reasonstringNoNot specified
status.components.*.versionstringNoNot specified
status.configSHA256stringNoNot specifiedConfigSHA256 calculated sha over all relevant field used for internal purposes
status.discoveredTenantsarrayNoNot specifiedDiscoveredTenants contains the list of tenants discovered via registration ConfigMaps
status.discoveredTenants[]objectNoNot specifiedDiscoveredTenant represents a tenant discovered via a registration ConfigMap, stored in KedifyConfiguration status.
status.discoveredTenants[].addressstringYesNot specifiedAddress is the gRPC address of the keda-operator
status.discoveredTenants[].configSyncedbooleanYesNot specifiedConfigSynced indicates whether the tenant config has been synced to the multitenancy config secret
status.discoveredTenants[].isDefaultbooleanNoNot specifiedIsDefault indicates this is the default tenant
status.discoveredTenants[].kpaobjectYesNot specifiedKPA contains tenant-aware KPA enablement, controller readiness, and pairing status.
status.discoveredTenants[].kpa.controllerReadybooleanYesNot specifiedControllerReady indicates whether all desired KPA controller replicas are available.
status.discoveredTenants[].kpa.crdOwnerstringNoNot specifiedCRDOwner identifies the Helm release owning the cluster-scoped KPA CRD in namespace/release form.
status.discoveredTenants[].kpa.deploymentNamestringNoNot specifiedDeploymentName is the matching KPA controller deployment in namespace/name form.
status.discoveredTenants[].kpa.deploymentUIDstringNoNot specifiedDeploymentUID is the Kubernetes UID of the registered KPA controller Deployment. Log and metrics collectors compare this Agent-reported identity with the live Deployment before accessing tenant control-plane data.
status.discoveredTenants[].kpa.enabledbooleanYesNot specifiedEnabled reflects the tenant KEDA operator’s —enable-kpa flag.
status.discoveredTenants[].kpa.kedaMetricsAddressstringNoNot specifiedKEDAMetricsAddress is the KEDA MetricsService address observed on the matching controller.
status.discoveredTenants[].kpa.messagestringNoNot specifiedMessage provides a concise explanation when capability or pairing is incomplete.
status.discoveredTenants[].kpa.operatorObservedbooleanYesNot specifiedOperatorObserved indicates whether the tenant’s KEDA operator deployment was inspected.
status.discoveredTenants[].kpa.pairedbooleanYesNot specifiedPaired indicates that the controller watch namespace and KEDA MetricsService address both match this tenant’s registered KEDA operator.
status.discoveredTenants[].kpa.versionstringNoNot specifiedVersion is the matching KPA controller version.
status.discoveredTenants[].kpa.watchNamespacestringNoNot specifiedWatchNamespace is the namespace set observed on the matching KPA controller.
status.discoveredTenants[].messagestringNoNot specifiedMessage contains additional information about the tenant status
status.discoveredTenants[].namestringYesNot specifiedName is the globally unique tenant identifier in “namespace/release” format
status.discoveredTenants[].namespacestringYesNot specifiedNamespace where the KEDA operator runs
status.discoveredTenants[].operatorDeploymentNamestringNoNot specifiedOperatorDeploymentName is the registered KEDA operator Deployment name. Consumers must use this identity rather than deriving it from Address, because an explicitly configured metrics service may have a different name.
status.discoveredTenants[].operatorReadybooleanYesNot specifiedOperatorReady indicates whether the keda-operator deployment is ready
status.discoveredTenants[].tlsCertReadybooleanYesNot specifiedTLSCertReady indicates whether the TLS cert secret is found and populated
status.discoveredTenants[].watchNamespacestringNoNot specifiedWatchNamespace is the namespace KEDA watches for ScaledObjects/ScaledJobs
status.multiClusterStatusobjectNoNot specifiedMultiClusterStatus contains status information about multi-cluster deployments
status.multiClusterStatus.clustersobjectNoNot specified
status.multiClusterStatus.clusters.*objectNoNot specifiedClusterStatus defines the observed state of a cluster
status.multiClusterStatus.clusters.*.hardTaintScopesarrayNoNot specifiedHardTaintScopes lists hard-taint scopes for DSJs using priorityFailover. Multiple entries may exist for a single cluster (for different classes/priorities).
status.multiClusterStatus.clusters.*.hardTaintScopes[]objectNoNot specifiedClusterHardTaintScope identifies one priorityFailover hard-taint scope.
status.multiClusterStatus.clusters.*.hardTaintScopes[].classstringYesNot specifiedClass is the workload affinity class for which the cluster is tainted. This can be empty to represent the default affinity class.
status.multiClusterStatus.clusters.*.hardTaintScopes[].priorityintegerNoNot specifiedPriority is the member-cluster scheduling priority for which the cluster is tainted.
status.multiClusterStatus.clusters.*.hardTaintedbooleanNoNot specifiedHardTainted indicates the cluster is hard tainted for at least one DSJ scheduling path.
status.multiClusterStatus.clusters.*.idstringNoNot specifiedID is the unique identifier of the cluster
status.multiClusterStatus.clusters.*.infostringNoNot specifiedInfo contains additional information about the cluster status
status.multiClusterStatus.clusters.*.providerstringNoNot specifiedProvider is the cluster provider type (for example file, kubeconfig)
status.multiClusterStatus.clusters.*.statestringNoNot specifiedState is the current state of the cluster
Terminal window
kubectl get crd kedifyconfigurations.install.kedify.io -o yaml
kubectl explain kedifyconfiguration.spec --recursive

Compare served/storage versions and schema before applying configuration. Inspect the resource’s status and events after changing its owning source; schema acceptance alone does not prove successful reconciliation.