Add TerminatedPodGcThreshold to control plane component config - #8853
Add TerminatedPodGcThreshold to control plane component config#8853chithreshazad wants to merge 1 commit into
Conversation
|
Hello chithreshazad 👋 Thank you for opening a Pull Request in |
| // before the pod garbage collector starts deleting terminated pods. | ||
| // +optional | ||
| TerminatedPodGcThreshold *int `json:"terminatedPodGcThreshold,omitempty"` | ||
| } |
There was a problem hiding this comment.
We should follow the Go initialism pattern for these (podGCControllerConfig / terminatedPodGCThreshold / etc)
There was a problem hiding this comment.
Good call. Will fix this.
| horizontalPodAutoscalerControllerConfig: | ||
| horizontalPodAutoscalerSyncPeriod: 15s | ||
| podGcControllerConfig: | ||
| terminatedPodGcThreshold: 12000 |
There was a problem hiding this comment.
Is 12000 a valid value? Checking with DescribeClusterVersions, it looks like 12500 is the min and max today.
There was a problem hiding this comment.
Its a valid value though this configuration is only supported on PCP tiers. You can see the controlPlaneScalingTiers in the DescribeClusterVersions API
...
"controlPlaneScalingTiers": [
{
"tierName": "tier-xl",
"apiRequestConcurrency": 1700,
"podSchedulingRatePerSecond": 167,
"clusterDatabaseSizeGb": 16,
"controlPlaneComponentConfigOverrides": {
"kubeControllerManagerConfig": {
"podGcControllerConfig": {
"terminatedPodGcThreshold": {
"defaultValue": 12500,
"constraints": {
"min": 10000,
"max": 12500
}
}
},
"horizontalPodAutoscalerControllerConfig": {
"horizontalPodAutoscalerSyncPeriod": {
"defaultValue": "15s",
"constraints": {
"min": "10s",
"max": "15s"
}
}
}
}
}
},
...
There was a problem hiding this comment.
Let me reword some paragraphs to clarify that config is PCP only in the docs.
| return out | ||
| } | ||
|
|
||
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. |
There was a problem hiding this comment.
Looks like this wasn't autogenerated, so will get overwritten. Can regenerate with make generate-all
There was a problem hiding this comment.
Interesting. Seems like AI manually did it. Will fix this.
Adds support for kubeControllerManagerConfig.podGcControllerConfig. terminatedPodGcThreshold, wiring it through the create path (CloudFormation via the vendored goformation structs) and the update path (eksctl utils update-control-plane-component-config, via the EKS SDK). The kube-controller-manager converters are restructured so the pod GC and horizontal pod autoscaler sub-configs are independent: either or both may be set, and setting one no longer drops the other. Signed-off-by: Chithresh Azad <chithres@amazon.com>
b6ea490 to
596b1f9
Compare
Description
Adds support for
kubeControllerManagerConfig.podGcControllerConfig.terminatedPodGcThreshold, wiring it through the create path (CloudFormation via the vendored goformation structs) and the update path (eksctl utils update-control-plane-component-config, via the EKS SDK).The
kube-controller-managerconverters are restructured so the pod GC and horizontal pod autoscaler sub-configs are independent: either or both may be set, and setting one no longer drops the other.Tested
Wrote unit tests and also did e2e testing for this new config, testing both the create and update paths.
Checklist
README.md, or theuserdocsdirectory)area/nodegroup) and kind (e.g.kind/improvement)BONUS POINTS checklist: complete for good vibes and maybe prizes?! 🤯