| name | build-farm |
| description | Set up the Central Build Farm with connectors for source code managers (GitHub, GitLab, Bitbucket), container registries (Docker Hub, AWS ECR, GCP Artifact Registry, Azure ACR), and artifact managers (Nexus, Artifactory, Helm). Use when someone wants to configure build infrastructure, set up connectors, or prepare CI build runners. |
| allowed-tools | ["Bash","Read","Write","Glob","Grep"] |
Build Farm Setup
Configure the Central Build Farm using the central-build-farm-setup module.
Module directory: central-build-farm-setup/
$ARGUMENTS
What This Creates
- Kubernetes connector for build infrastructure (if self-hosted)
- Source Code Manager connector (GitHub, GitLab, or Bitbucket)
- Container Registry connector (Docker Hub, AWS ECR, GCP GAR, or Azure ACR)
- Artifact Manager connector (Nexus, Artifactory, OCI Helm, or HTTP Helm)
- Both self-hosted and Harness Cloud variants of connectors based on infrastructure type
Conversation Flow
This module has many configuration options. Guide the user through these decisions one at a time:
1. Build Infrastructure
"Will your builds run on your own Kubernetes cluster, Harness Cloud, or both?"
ā Maps to build_infrastructure_type: internal / cloud / both
2. Source Code Manager
"Where is your source code hosted?"
- GitHub ā
source_code_manager_type = "github"
- GitLab ā
source_code_manager_type = "gitlab"
- Bitbucket ā
source_code_manager_type = "bitbucket"
Then ask:
- "What's the URL?" (default: https://github.com for GitHub)
- "Give me a repo to validate the connection" (e.g.,
org/repo)
3. Container Registry
"What container registry do you use?"
- Docker Hub ā
container_registry_type = "docker", then ask provider (DockerHub/Harbor/Quay/Other)
- AWS ECR ā
container_registry_type = "aws", ask for region and role ARN
- GCP Artifact Registry ā
container_registry_type = "gcp", ask for workload identity
- Azure ACR ā
container_registry_type = "azure", ask for subscription/app ID
4. Artifact Manager (optional)
"Do you use an artifact manager like Nexus or Artifactory?"
- If yes: gather type, URL, auth type
- If no: skip (set to "skipped")
5. Delegate Selectors
"What delegate selectors should be used?" (default: ["build-farm"])
After Gathering
- Generate
terraform.tfvars with all collected values
- Run init ā plan ā show summary ā confirm ā apply
- Show created connector IDs in the output ā these are needed by CI modules:
build_farm_connector
build_farm_container_registry
build_farm_source_code_manager
build_farm_artifact_manager
Prerequisites
- None (account-level module)
- Connector credential secrets should exist in Harness before running