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.
API details
Section titled “API details”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.
v1alpha1 fields
Section titled “v1alpha1 fields”Served: true; storage: true.
| Field | Type | Required | Schema default | Meaning and validation |
|---|---|---|---|---|
spec | object | No | Not specified | KedifyConfigurationSpec defines the desired state of KedifyConfiguration |
spec.cloudAccountID | string | No | Not specified | CloudAccountID 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.clusterName | string | No | Not specified | ClusterName is the name of this k8s cluster in the Kedify Dashboard |
spec.kedaInstallations | array | No | Not specified | KEDAInstallations defines the KEDA installations options. Names must be unique across installations. |
spec.kedaInstallations[] | object | No | Not specified | KEDAInstallation defines the desired state of a KEDA installation |
spec.kedaInstallations[].agentAutoUpdate | boolean | Yes | Not specified | AutoUpdate controls whether the agent should be auto updated to latest released version |
spec.kedaInstallations[].httpAddonHelm | object | No | Not specified | HTTPAddonHelm defines the http-addon Helm values and chart version for HTTP Addon installation |
spec.kedaInstallations[].httpAddonHelm.appVersion | string | No | Not specified | AppVersion 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.autoUpdate | string | No | Not specified | AutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”] |
spec.kedaInstallations[].httpAddonHelm.chartVersion | string | No | Not specified | ChartVersion defines the Helm chart version |
spec.kedaInstallations[].httpAddonHelm.enabled | boolean | No | Not specified | Enabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this) |
spec.kedaInstallations[].httpAddonHelm.values | string | No | Not specified | Values defines the Helm values |
spec.kedaInstallations[].kedaHelm | object | No | Not specified | KedaHelm defines the Helm values and chart version for KEDA installation |
spec.kedaInstallations[].kedaHelm.appVersion | string | No | Not specified | AppVersion 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.autoUpdate | string | No | Not specified | AutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”] |
spec.kedaInstallations[].kedaHelm.chartVersion | string | No | Not specified | ChartVersion defines the Helm chart version |
spec.kedaInstallations[].kedaHelm.enabled | boolean | No | Not specified | Enabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this) |
spec.kedaInstallations[].kedaHelm.values | string | No | Not specified | Values defines the Helm values |
spec.kedaInstallations[].mode | string | Yes | Not specified | Mode 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[].multitenancy | object | No | Not specified | Multitenancy 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.multitenancyConfigRef | string | No | Not specified | ConfigRef 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[].name | string | No | Not specified | Name of the KEDA installation. Optional and informational only (used in logs and the config change hash); the installation is keyed by Namespace. |
spec.kedaInstallations[].namespace | string | No | Not specified | Namespace where KEDA should be installed |
spec.kedaInstallations[].otelAddonHelm | object | No | Not specified | OTELAddonHelm defines the otel-addon Helm values and chart version for OTEL Addon installation |
spec.kedaInstallations[].otelAddonHelm.appVersion | string | No | Not specified | AppVersion 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.autoUpdate | string | No | Not specified | AutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”] |
spec.kedaInstallations[].otelAddonHelm.chartVersion | string | No | Not specified | ChartVersion defines the Helm chart version |
spec.kedaInstallations[].otelAddonHelm.enabled | boolean | No | Not specified | Enabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this) |
spec.kedaInstallations[].otelAddonHelm.values | string | No | Not specified | Values defines the Helm values |
spec.kedaInstallations[].predictorAddonHelm | object | No | Not specified | PredictorAddonHelm defines the predictor-addon Helm values and chart version for Predictor Addon installation |
spec.kedaInstallations[].predictorAddonHelm.appVersion | string | No | Not specified | AppVersion 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.autoUpdate | string | No | Not specified | AutoUpdate controls what strategy should be used for updating the AppVersion when new releases are available enum: [“LatestReleased”,“BuildsOnly”,“PatchesOnly”,“Disabled”] |
spec.kedaInstallations[].predictorAddonHelm.chartVersion | string | No | Not specified | ChartVersion defines the Helm chart version |
spec.kedaInstallations[].predictorAddonHelm.enabled | boolean | No | Not specified | Enabled determines whether the helm chart should be installed or not (for KEDA helm chart ManagementMode needs to also allow this) |
spec.kedaInstallations[].predictorAddonHelm.values | string | No | Not specified | Values defines the Helm values |
spec.kedaInstallations[].telemetry | object | No | Not specified | Telemetry defines the telemetry configuration |
spec.kedaInstallations[].telemetry.controlPlane | object | No | Not specified | ControlPlane defines the telemetry configuration for the control plane |
spec.kedaInstallations[].telemetry.controlPlane.disabled | boolean | No | Not specified | Disabled defines if telemetry should be disabled, enabled by default |
spec.kedaInstallations[].telemetry.controlPlane.interval | integer | No | Not specified | Interval defines the interval for telemetry in seconds, 30 by default |
spec.kedaInstallations[].telemetry.kedaResources | object | No | Not specified | KedaResources defines the telemetry configuration for the KEDA resources |
spec.kedaInstallations[].telemetry.kedaResources.disabled | boolean | No | Not specified | Disabled defines if telemetry should be disabled, enabled by default |
spec.kedaInstallations[].telemetry.kedaResources.interval | integer | No | Not specified | Interval defines the interval for telemetry in seconds, 30 by default |
spec.kedaInstallations[].telemetry.kubernetesResources | object | No | Not specified | KubernetesResources defines the telemetry configuration for the Kubernetes resources |
spec.kedaInstallations[].telemetry.kubernetesResources.disabled | boolean | No | Not specified | Disabled defines if telemetry should be disabled, enabled by default |
spec.kedaInstallations[].telemetry.kubernetesResources.interval | integer | No | Not specified | Interval defines the interval for telemetry in seconds, 30 by default |
status
Section titled “status”| Field | Type | Required | Schema default | Meaning and validation |
|---|---|---|---|---|
status | object | No | Not specified | KedifyConfigurationStatus defines the observed state of KedifyConfiguration |
status.agent | object | No | Not specified | Agent contains agent related status information |
status.agent.controlPlaneMetrics | string | No | Not specified | |
status.agent.k8sResourcesMetrics | string | No | Not specified | |
status.agent.kedaResourcesMetrics | string | No | Not specified | |
status.agent.observedHelmValues | string | No | Not specified | |
status.agent.phase | string | No | Not specified | |
status.agent.reason | string | No | Not specified | |
status.agent.uninstallationStartedAt | string | No | Not specified | |
status.agent.version | string | No | Not specified | |
status.apiService | object | No | Not specified | APIService captures the observed status of API Service registration called v1beta1.external.metrics.k8s.io |
status.apiService.phase | string | No | Not specified | |
status.apiService.reason | string | No | Not specified | |
status.components | object | No | Not specified | Components captures the observed status of Kedify components (Keda, Http Addon and Otel Addon) |
status.components.* | object | No | Not specified | KedifyComponentInstallationStatus defines the observed state of a KedifyInstallation |
status.components.*.adoptedAt | string | No | Not specified | |
status.components.*.deployments | object | No | Not specified | |
status.components.*.deployments.* | object | No | Not specified | KedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources |
status.components.*.deployments.*.phase | string | No | Not specified | |
status.components.*.deployments.*.reason | string | No | Not specified | |
status.components.*.firstHealthyAt | string | No | Not specified | |
status.components.*.helmReleaseName | string | No | Not specified | |
status.components.*.observedHelmValues | string | No | Not specified | |
status.components.*.tenants | object | No | Not specified | Tenants contains per-tenant status for non-default multitenant KEDA installations |
status.components.*.tenants.* | object | No | Not specified | TenantStatus defines the observed state of a non-default multitenant KEDA installation |
status.components.*.tenants.*.configSynced | object | Yes | Not specified | KedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources |
status.components.*.tenants.*.configSynced.phase | string | No | Not specified | |
status.components.*.tenants.*.configSynced.reason | string | No | Not specified | |
status.components.*.tenants.*.operator | object | Yes | Not specified | KedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources |
status.components.*.tenants.*.operator.phase | string | No | Not specified | |
status.components.*.tenants.*.operator.reason | string | No | Not specified | |
status.components.*.tenants.*.tlsCertSecret | object | Yes | Not specified | KedifyConfigurationResourceStatus defines the observed state of a KedifyConfiguration owned resources |
status.components.*.tenants.*.tlsCertSecret.phase | string | No | Not specified | |
status.components.*.tenants.*.tlsCertSecret.reason | string | No | Not specified | |
status.components.*.version | string | No | Not specified | |
status.configSHA256 | string | No | Not specified | ConfigSHA256 calculated sha over all relevant field used for internal purposes |
status.discoveredTenants | array | No | Not specified | DiscoveredTenants contains the list of tenants discovered via registration ConfigMaps |
status.discoveredTenants[] | object | No | Not specified | DiscoveredTenant represents a tenant discovered via a registration ConfigMap, stored in KedifyConfiguration status. |
status.discoveredTenants[].address | string | Yes | Not specified | Address is the gRPC address of the keda-operator |
status.discoveredTenants[].configSynced | boolean | Yes | Not specified | ConfigSynced indicates whether the tenant config has been synced to the multitenancy config secret |
status.discoveredTenants[].isDefault | boolean | No | Not specified | IsDefault indicates this is the default tenant |
status.discoveredTenants[].kpa | object | Yes | Not specified | KPA contains tenant-aware KPA enablement, controller readiness, and pairing status. |
status.discoveredTenants[].kpa.controllerReady | boolean | Yes | Not specified | ControllerReady indicates whether all desired KPA controller replicas are available. |
status.discoveredTenants[].kpa.crdOwner | string | No | Not specified | CRDOwner identifies the Helm release owning the cluster-scoped KPA CRD in namespace/release form. |
status.discoveredTenants[].kpa.deploymentName | string | No | Not specified | DeploymentName is the matching KPA controller deployment in namespace/name form. |
status.discoveredTenants[].kpa.deploymentUID | string | No | Not specified | DeploymentUID 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.enabled | boolean | Yes | Not specified | Enabled reflects the tenant KEDA operator’s —enable-kpa flag. |
status.discoveredTenants[].kpa.kedaMetricsAddress | string | No | Not specified | KEDAMetricsAddress is the KEDA MetricsService address observed on the matching controller. |
status.discoveredTenants[].kpa.message | string | No | Not specified | Message provides a concise explanation when capability or pairing is incomplete. |
status.discoveredTenants[].kpa.operatorObserved | boolean | Yes | Not specified | OperatorObserved indicates whether the tenant’s KEDA operator deployment was inspected. |
status.discoveredTenants[].kpa.paired | boolean | Yes | Not specified | Paired indicates that the controller watch namespace and KEDA MetricsService address both match this tenant’s registered KEDA operator. |
status.discoveredTenants[].kpa.version | string | No | Not specified | Version is the matching KPA controller version. |
status.discoveredTenants[].kpa.watchNamespace | string | No | Not specified | WatchNamespace is the namespace set observed on the matching KPA controller. |
status.discoveredTenants[].message | string | No | Not specified | Message contains additional information about the tenant status |
status.discoveredTenants[].name | string | Yes | Not specified | Name is the globally unique tenant identifier in “namespace/release” format |
status.discoveredTenants[].namespace | string | Yes | Not specified | Namespace where the KEDA operator runs |
status.discoveredTenants[].operatorDeploymentName | string | No | Not specified | OperatorDeploymentName 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[].operatorReady | boolean | Yes | Not specified | OperatorReady indicates whether the keda-operator deployment is ready |
status.discoveredTenants[].tlsCertReady | boolean | Yes | Not specified | TLSCertReady indicates whether the TLS cert secret is found and populated |
status.discoveredTenants[].watchNamespace | string | No | Not specified | WatchNamespace is the namespace KEDA watches for ScaledObjects/ScaledJobs |
status.multiClusterStatus | object | No | Not specified | MultiClusterStatus contains status information about multi-cluster deployments |
status.multiClusterStatus.clusters | object | No | Not specified | |
status.multiClusterStatus.clusters.* | object | No | Not specified | ClusterStatus defines the observed state of a cluster |
status.multiClusterStatus.clusters.*.hardTaintScopes | array | No | Not specified | HardTaintScopes lists hard-taint scopes for DSJs using priorityFailover. Multiple entries may exist for a single cluster (for different classes/priorities). |
status.multiClusterStatus.clusters.*.hardTaintScopes[] | object | No | Not specified | ClusterHardTaintScope identifies one priorityFailover hard-taint scope. |
status.multiClusterStatus.clusters.*.hardTaintScopes[].class | string | Yes | Not specified | Class 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[].priority | integer | No | Not specified | Priority is the member-cluster scheduling priority for which the cluster is tainted. |
status.multiClusterStatus.clusters.*.hardTainted | boolean | No | Not specified | HardTainted indicates the cluster is hard tainted for at least one DSJ scheduling path. |
status.multiClusterStatus.clusters.*.id | string | No | Not specified | ID is the unique identifier of the cluster |
status.multiClusterStatus.clusters.*.info | string | No | Not specified | Info contains additional information about the cluster status |
status.multiClusterStatus.clusters.*.provider | string | No | Not specified | Provider is the cluster provider type (for example file, kubeconfig) |
status.multiClusterStatus.clusters.*.state | string | No | Not specified | State is the current state of the cluster |
Inspect the installed contract
Section titled “Inspect the installed contract”kubectl get crd kedifyconfigurations.install.kedify.io -o yamlkubectl explain kedifyconfiguration.spec --recursiveCompare 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.