{"id":26084068,"url":"https://github.com/idvoretskyi/terraform-arc-cluster","last_synced_at":"2026-02-16T10:10:52.177Z","repository":{"id":280649407,"uuid":"935522801","full_name":"idvoretskyi/terraform-arc-cluster","owner":"idvoretskyi","description":"Terraform module for deploying GitHub Actions Runner Controller (ARC) on Kubernetes clusters","archived":false,"fork":false,"pushed_at":"2025-09-29T17:30:39.000Z","size":72,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T18:41:44.292Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/idvoretskyi/terraform-arc-cluster","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/idvoretskyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-19T15:28:18.000Z","updated_at":"2025-09-29T17:26:20.000Z","dependencies_parsed_at":"2025-03-04T15:35:30.453Z","dependency_job_id":"3c740515-c9bd-4472-b6c1-7621bfe8e711","html_url":"https://github.com/idvoretskyi/terraform-arc-cluster","commit_stats":null,"previous_names":["idvoretskyi/terraform-arc-cluster"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/idvoretskyi/terraform-arc-cluster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idvoretskyi%2Fterraform-arc-cluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idvoretskyi%2Fterraform-arc-cluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idvoretskyi%2Fterraform-arc-cluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idvoretskyi%2Fterraform-arc-cluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/idvoretskyi","download_url":"https://codeload.github.com/idvoretskyi/terraform-arc-cluster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idvoretskyi%2Fterraform-arc-cluster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278322184,"owners_count":25967872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-09T04:12:38.509Z","updated_at":"2025-10-04T13:41:12.689Z","avatar_url":"https://github.com/idvoretskyi.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Actions Runner Controller (ARC) Terraform Module\n\nDeploy self-hosted GitHub Actions runners on Kubernetes using the latest Actions Runner Controller (ARC).\n\n## Features\n\n- **Latest ARC** with autoscaling runner scale sets\n- **Multi-architecture support** (amd64/arm64) \n- **Simple configuration** with sensible defaults\n- **Production ready** with proper resource management\n\n## Quick Start\n\n```hcl\nprovider \"kubernetes\" {\n  config_path = \"~/.kube/config\"\n}\n\nprovider \"helm\" {\n  kubernetes = {\n    config_path = \"~/.kube/config\"\n  }\n}\n\nmodule \"arc\" {\n  source = \"github.com/idvoretskyi/terraform-arc-cluster//terraform\"\n\n  github_token = \"ghp_your_personal_access_token\"\n\n  runner_deployments = [\n    {\n      name       = \"my-runners\"\n      repository = \"your-org/your-repo\"\n    }\n  ]\n}\n```\n\n## Examples\n\n### Basic Configuration\n```hcl\nmodule \"arc\" {\n  source = \"github.com/idvoretskyi/terraform-arc-cluster//terraform\"\n\n  github_token = var.github_token\n\n  runner_deployments = [\n    {\n      name       = \"default-runners\"\n      repository = \"my-org/my-repo\"\n      replicas   = 2\n      labels     = [\"self-hosted\", \"linux\", \"x64\"]\n    }\n  ]\n}\n```\n\n### ARM64 Cluster Support\n```hcl\nmodule \"arc\" {\n  source = \"github.com/idvoretskyi/terraform-arc-cluster//terraform\"\n\n  github_token = var.github_token\n  \n  # ARM64 cluster configuration\n  add_arch_tolerations = true\n  node_architecture    = \"arm64\"\n\n  runner_deployments = [\n    {\n      name       = \"arm64-runners\"\n      repository = \"my-org/my-repo\"\n      labels     = [\"self-hosted\", \"linux\", \"arm64\"]\n    }\n  ]\n}\n```\n\n### Production Setup\n```hcl\nmodule \"arc\" {\n  source = \"github.com/idvoretskyi/terraform-arc-cluster//terraform\"\n\n  github_token = var.github_token\n  namespace    = \"github-runners\"\n\n  runner_deployments = [\n    {\n      name       = \"production-runners\"\n      repository = \"my-org/my-repo\"\n      replicas   = 10\n      labels     = [\"self-hosted\", \"linux\", \"x64\", \"production\"]\n\n      resources = {\n        limits = {\n          cpu    = \"2000m\"\n          memory = \"4Gi\"\n        }\n        requests = {\n          cpu    = \"1000m\"\n          memory = \"2Gi\"\n        }\n      }\n\n      env = [\n        {\n          name  = \"RUNNER_WORKDIR\"\n          value = \"/home/runner/work\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Repository Structure\n\n```\nterraform-arc-cluster/\n├── terraform/          # Main Terraform module\n│   ├── main.tf         # Core resources\n│   ├── variables.tf    # Input variables\n│   ├── outputs.tf      # Output values\n│   └── versions.tf     # Provider requirements\n├── docs/               # Documentation\n│   └── QUICKSTART.md\n└── README.md          # This file\n```\n\n## Requirements\n\n| Tool | Version |\n|------|---------|\n| Terraform | \u003e= 1.0.0 |\n| Kubernetes Provider | \u003e= 2.30.0 |\n| Helm Provider | \u003e= 3.0.0 |\n\n\u003e **Note:** This module defaults to the latest stable ARC version. Check [ARC Releases](https://github.com/actions/actions-runner-controller/releases) for newer versions.\n\n## Input Variables\n\n| Name | Description | Type | Default |\n|------|-------------|------|---------|\n| **github_token** | GitHub Personal Access Token | `string` | `\"\"` |\n| **runner_deployments** | Runner configurations | `list(object)` | `[]` |\n| namespace | Kubernetes namespace | `string` | `\"arc-system\"` |\n| create_namespace | Create namespace if it doesn't exist | `bool` | `true` |\n| helm_chart_version | ARC chart version (defaults to latest stable) | `string` | `\"0.12.1\"` |\n| add_arch_tolerations | Add architecture-specific tolerations | `bool` | `false` |\n| node_architecture | Node architecture (amd64/arm64) | `string` | `\"amd64\"` |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| namespace | Deployed namespace |\n| arc_release_name | ARC Helm release name |\n| runner_scale_sets | List of deployed runner scale sets |\n\n## Getting Started\n\n1. **Check the quickstart guide:**\n   ```bash\n   # View online: https://github.com/idvoretskyi/terraform-arc-cluster/blob/main/docs/QUICKSTART.md\n   ```\n\n2. **Use the module directly:**\n   ```hcl\n   module \"arc\" {\n     source = \"github.com/idvoretskyi/terraform-arc-cluster//terraform\"\n     \n     github_token = \"ghp_your_token_here\"\n     \n     runner_deployments = [\n       {\n         name       = \"my-runners\"\n         repository = \"your-org/your-repo\"\n       }\n     ]\n   }\n   ```\n\n## License\n\nApache License 2.0 - see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidvoretskyi%2Fterraform-arc-cluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fidvoretskyi%2Fterraform-arc-cluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidvoretskyi%2Fterraform-arc-cluster/lists"}