Skip to content

We have noticed instances of Violation of Object Constraints in your repository. #7768

Description

@zyue110026

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.

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions