Allow users to configure Cluster Agent Priority Classes And Pod Disruption Budgets on rke2 and k3s clusters #13068
Labels
area/clusterprovisioningv2
kind/enhancement
QA/dev-automation
Issues that engineers have written automation around so QA doesn't have look at this
Milestone
JIRA: SURE-9007, SURE-8174
This feature will only be supported for node-driver provisioned and custom rke2/k3s clusters.
Feature flag
This feature will be disabled by default and users can opt-in by enabling cluster-agent-scheduling-customization feature flag.
Global settings
Default configuration can be obtained and configured from the following global settings:
ClusterAgentDefaultPriorityClass for Priority Class:
ClusterAgentDefaultPodDisruptionBudget for Pod Disruption Budget, so the format of the global setting would look like
These fields should behave similarly to the rke-metadata-config field, and expose the partial JSON representation for both settings.
Priority Class value
Priority Class preemptive behavior:
Pod Disruption Budget values will have minAvailable and maxAvailable properties:
This default configuration will be used during the initial provisioning of downstream clusters.
New fields during provisioning
We will need to add new elements to the cluster configuration page when this feature is enabled. They should expose properties configurable by global settings and will have the same constraints.
These properties would be found in spec.ClusterAgentDeploymentCustomization.SchedulingCustomization. Its value will be a new struct, titled AgentSchedulingCustomization. Example:
These values should be pre-populated using the global default settings when creating new v1.Clusters objects. When editing existing clusters without scheduling customization fields present, these options should be disabled or their values should be empty.
If a cluster has previously been configured to use a Priority Class or Pod Disruption Budget, then the new UI fields should be rendered even if the feature has been disabled, however they should only allow for the deletion of the configuration. Ideally, a tool tip or short explanation will be added to inform users that they may must enable the feature in order to modify the configuration further.
Please refer to the RFC linked in JIRA for more detail if needed.
Acceptance criteria:
UI fields:
The text was updated successfully, but these errors were encountered: