Repository navigation
Releases: SPHTech-Platform/terraform-helm-actions-runner-controller
Release list
v2.0.6
What's Changed
- dind template spec by Uchinda Padmaperuma (@uchinda-sph) in #43
Full Changelog: v2.0.5...v2.0.6
v2.0.4
What's Changed
- fix: duplicate values by Uchinda Padmaperuma (@uchinda-sph) in #42
Full Changelog: v2.0.3...v2.0.4
v2.0.3
What's Changed
- Render full template_spec when containerMode is dind by Uchinda Padmaperuma (@uchinda-sph) in #40
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
This release introduces support for custom pod annotations on the Actions Runner Controller (ARC) runner scale set pods and resolves a bug where custom resource limits/requests were ignored when running in Docker-in-Docker (DinD) mode.
🚀 Key Improvements & Fixes
1. Karpenter Disruption Prevention
- Added a new input variable
runner_template_spec_metadata_annotationsallowing custom annotations to be attached to the runner pod templates. - Defaulted the annotations to include:
This prevents Karpenter from disrupting and terminating active runner nodes while GitHub Actions jobs are in progress.
{ "karpenter.sh/do-not-disrupt": "true" }
2. Resolved DinD Resource Limit Bug
- Fixed a template validation bug in
modules/gha-runner-scale-set/templates/values.yamlwhere thetemplate.spec.containersblock was completely omitted whencontainerMode.type = "dind". - Custom resource constraints (defined via
runner_resources/action_runner_resource) are now correctly generated, rendered, and enforced by the operator. Manual intervention (kubectl edit) is no longer required to provision custom CPU/memory sizes.
📂 Changed Files
variables.tf— Added the new annotations variables.main.tf— Forwarded runner annotations to the scale set submodule.modules/gha-runner-scale-set/variables.tf— Declared annotations map.modules/gha-runner-scale-set/main.tf— Integrated annotation variables into local value computations.modules/gha-runner-scale-set/templates/values.yaml— Updated Helm payload formatting for DinD container configurations.
🛠️ Verification & Validation
- All static analysis checks via Checkov have succeeded.
- Terraform validations and lint rules passed successfully in CI/CD pipeline runs.
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
Feature: Configurable Runner Resource Requests and Limits
- Added
runner_resourcesvariable- Users can now configure resource requests and limits (CPU and Memory) for self-hosted GitHub Actions runners.
- The new variable supports setting both
requestsandlimitsforcpuandmemory. - Example default:
runner_resources = { requests = { cpu = "1" memory = "2Gi" } limits = { cpu = "1" memory = "2Gi" } }
- Propagated configuration
- The new variable is available at both the root and
gha-runner-scale-setmodule levels. - Module logic updated to pass the resource settings into the generated pod spec.
- The new variable is available at both the root and
Impact:
Existing deployments remain unaffected due to sensible defaults, but users wanting to fine-tune runner resource allocation can now do so easily.
Upgrade Guide:
No changes are needed unless you want to customize runner resources—just set the runner_resources variable in your configuration.
Full Changelog: v1.7.1...v2.0.1
v2.0.0
Breaking Change Release Note
Upgrade Minimum Helm Provider Version to v3.0+
This release introduces a breaking change:
The required version of the hashicorp/helm Terraform provider has been updated from >= 2.6, < 3.0 to >= 3.0 across all modules (gha-runner-scale-set-controller, gha-runner-scale-set, and root).
Impact:
- You must upgrade your Helm provider to version 3.0 or newer for all Terraform runs.
- Existing configurations using Helm provider v2.x will no longer be compatible and may fail during initialization or apply.
Example Required Update in Configuration
terraform {
required_providers {
helm = {
source = "hashicorp/helm"
version = ">= 3.0"
}
}
}Other Change
- Fixed the syntax for the
kubernetesprovider attribute inproviders.tfby explicitly assigning askubernetes = { ... }.
Migration Instructions
- Update your local and CI/CD Terraform Helm provider to
>= 3.0. - Review upstream dependency compatibility, ensuring you are not relying on deprecated provider features removed in Helm provider 3.x.
Action Required:
If you use this module, upgrade your Terraform Helm provider immediately to avoid deployment errors.
Refer to the Terraform Helm Provider v3.x documentation for guidance on migration and updated usage.
Full Changelog: v1.7.1...v2.0.0
v1.7.2
v1.7.1
Release Notes
Changed
-
DOCKER_GROUP_GID Environment Variable:
Updated the value ofDOCKER_GROUP_GIDfrom123to1001in the runner environment. This aligns the Docker group with standard GID practices and improves compatibility with Docker socket permissions. -
Liveness Probe Tuning:
AdjustedperiodSecondsfor the liveness probe from10to5seconds. This enables faster health checks and potentially quicker recovery from failures. -
Docker Socket Mount Path:
Changed the Docker socketmountPathfrom/run/dockerto/var/runto follow standard Docker conventions and ensure correct mounting of the Docker socket inside the runner container.
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Release Notes
Features & Enhancements
-
Chart Version Upgrades
- Upgraded
gha-runner-scale-set-controllerandgha-runner-scale-setHelm chart versions from0.9.3to0.12.1. - Updated Terraform Helm provider version constraint to
>= 2.6, < 3.0.
- Upgraded
-
Runner and Controller Pod Customization
- Introduced new variables for advanced scheduling and configuration:
controller_node_selector,controller_tolerations,controller_affinity,controller_topology_spread_constraintsrunner_node_selector,runner_tolerations,runner_affinity,runner_topology_spread_constraintsrunner_template_spec_metadata_labels,runner_template_spec_config_type,runner_container_mode_type
- These enable fine-grained control over pod placement, affinity, tolerations, and topology spread for both controller and runner pods.
- Introduced new variables for advanced scheduling and configuration:
-
PodSpec Refactor
- Refactored how runner PodSpecs are constructed for better flexibility and maintainability.
- Deprecated
listener_podspec_mapandcustom_podspec_mapin favor of new variable-driven configuration.
-
Controller Enhancements
- Added support for:
runner_max_concurrent_reconciles- Controls the maximum number of concurrent reconciles for the EphemeralRunner controller.namespace_override- Allows overriding the release namespace for all resources in the controller chart.
- Added support for:
Documentation
- README Updates
- Documentation updated to include:
- New variables and configuration options.
- Revised tables and descriptions reflecting the latest capabilities and version constraints.
- Documentation updated to include:
Migration Notes:
- If you rely on custom pod scheduling or topology, set
runner_container_mode_type == ""and update your configuration as needed. - The Helm provider version is now pinned and not compatible with Helm 3.x and above.
Full Changelog: v1.6.2...v1.7.0
v1.6.0
What's Changed
- Upgrade github actions runner helm code and chart to v2 by Poh Peng Wang (@thepoppingone) in #27
- Decouple arc-system and arc-runner Uchinda Padmaperuma (@uchinda-sph) in #30
Full Changelog: v1.4.2...v1.6.0