-
Notifications
You must be signed in to change notification settings - Fork 26
feat: add setting to limit the number of concurrent runner pods #545
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new setting to limit the number of concurrent runner pods by adding a configuration parameter that can be overridden both globally and per TerraformRepository. Key changes include:
- Adding a new configuration field for max concurrent runner pods in various config files and CRDs.
- Implementing logic in the controller to enforce the pod limit.
- Updating documentation and Helm charts to reflect the new setting.
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| mkdocs.yml | Adds navigation link to the new runner scheduling documentation. |
| manifests/install.yaml | Introduces a new CRD schema property "maxConcurrentRuns" for TerraformRepositorySpec. |
| manifests/crds/config.terraform.padok.cloud_terraformrepositories.yaml | Mirrors the new CRD property for consistency. |
| internal/controllers/terraformrun/states.go | Adds logic for checking the number of running pods against the configured limit. |
| internal/controllers/terraformrun/pod.go | Updates default labels to include a new "burrito/component" value. |
| internal/burrito/config/testdata/test-config-1.yaml | Adds the new configuration parameter for testing. |
| internal/burrito/config/config_test.go | Extends configuration tests to include the new parameter override behavior. |
| internal/burrito/config/config.go | Introduces the new configuration field mapped via "maxConcurrentRunnerPods". |
| docs/operator-manual/runner-scheduling.md | Provides documentation on the new runner scheduling feature. |
| docs/operator-manual/advanced-configuration.md | Updates configuration options table with the new parameter details. |
| deploy/charts/burrito/values.yaml | Adds the new parameter in the Helm chart values. |
| cmd/controllers/start.go | Introduces a new CLI flag for setting the maximum number of runner pods. |
| api/v1alpha1/terraformrepository_types.go | Adds the "maxConcurrentRuns" field to the TerraformRepositorySpec. |
Comments suppressed due to low confidence (1)
deploy/charts/burrito/values.yaml:32
- The key 'MaxConcurrentRunnerPods' does not match the expected lower-case key 'maxConcurrentRunnerPods' as defined in the configuration mapping. Update the key to ensure proper configuration binding.
MaxConcurrentRunnerPods: 0
d759a30 to
8f890a1
Compare
8f890a1 to
75bd611
Compare
75bd611 to
5c2f16f
Compare
9aadd40 to
daf7339
Compare
This PR adds a
MaxConcurrentRunnerPodssetting that can be set in the controller config and overriden in the TerraformRepository spec.The setting defines the maximum number of concurrently running pods for burrito runners. No limit is defined if the setting is set to 0 (default).
The purpose of this is to limit the sudden burst in the amount workloads in the k8s cluster when a high amount of layers need to be planned or applied.