What would you like to be added:
We observed that the application-generated Kubernetes resources do not preserve valid Kubernetes object specifications supported by the target Kubernetes version.
Specifically, the application does not correctly handle the schedulingGates field when users configure Pods through the Karmada CR.
The schedulingGates field was introduced in Kubernetes v1.26 as an alpha feature, enabled by default in Kubernetes v1.27, and reached general availability in Kubernetes v1.30 without requiring a feature gate. In Kubernetes v1.34.0, users can configure schedulingGates to delay Pod scheduling until required cluster-level conditions are satisfied. For example, after deploying multiple workloads or performing cluster changes, users may want to prevent newly created Pods from being scheduled until the cluster reaches a desired ready state, such as the completion of infrastructure initialization, resource preparation, or other operational prerequisites.
However, the Karmada field like karmadaAPIServer does not accept or propagate the valid schedulingGates configuration to the generated Pod specification.
Locations:
https://github.com/karmada-io/karmada/blob/bac149336e62f3dac740945da59510da5d937ce9/charts/karmada-operator/templates/crd-operator.karmada.io_karmadas.yaml#L1441
spec.components.karmadaAPIServer (there are 10 such components)
Why is this needed:
In resource-constrained environments, users may create Pods ahead of time while delaying scheduling until sufficient resources become available. This prevents unnecessary scheduler retries and allows external resource managers to coordinate workload admission.
What would you like to be added:
We observed that the application-generated Kubernetes resources do not preserve valid Kubernetes object specifications supported by the target Kubernetes version.
Specifically, the application does not correctly handle the schedulingGates field when users configure Pods through the Karmada CR.
The schedulingGates field was introduced in Kubernetes v1.26 as an alpha feature, enabled by default in Kubernetes v1.27, and reached general availability in Kubernetes v1.30 without requiring a feature gate. In Kubernetes v1.34.0, users can configure schedulingGates to delay Pod scheduling until required cluster-level conditions are satisfied. For example, after deploying multiple workloads or performing cluster changes, users may want to prevent newly created Pods from being scheduled until the cluster reaches a desired ready state, such as the completion of infrastructure initialization, resource preparation, or other operational prerequisites.
However, the Karmada field like karmadaAPIServer does not accept or propagate the valid schedulingGates configuration to the generated Pod specification.
Locations:
https://github.com/karmada-io/karmada/blob/bac149336e62f3dac740945da59510da5d937ce9/charts/karmada-operator/templates/crd-operator.karmada.io_karmadas.yaml#L1441
spec.components.karmadaAPIServer (there are 10 such components)
Why is this needed:
In resource-constrained environments, users may create Pods ahead of time while delaying scheduling until sufficient resources become available. This prevents unnecessary scheduler retries and allows external resource managers to coordinate workload admission.