The easiest and most effective method for creating and managing Azure DevOps agents on Kubernetes, without the need to spend time and effort wrestling with settings! Scale-out as much as is necessary and demolish them gracefully.
- ✅ ubuntu 20.04 based image
- ✅ yq upgrade to 4.40.7
- ✅ docker command could be executed without sudo
- ✅ Support for VSTS agent 3.232.3
- Pod Annotations have been implemented
- Service Account support has been implemented
✅ Thanks for contribitions to Alexandre Saison
✅ PR: btungut#8
Since the 1.0.8 release , the Dockerfile and Helm chart have been configured to utilize a non-root user.
✅ Issue : Non-root user should be implemented
✅ Issue : docker could be called without sudo
- Helm
- Personal Access Token with Agent Pool manage scope
You don't need to follow any more instructions beyond the standard self-hosted agent installation in order to utilize this helm chart.
It is pretty straight-forward process with sufficient scope. Please choose one of the links below to generate a PAT.
⚠️ Only the PAT creation procedures are required
- First you need to add repository (if you haven't done yet before)
helm repo add btungut https://btungut.github.io
- Install the helm chart with required parameters
- With bash:
helm install {RELEASE-NAME} btungut/azure-devops-agent \
--set agent.pat={PAT} \
--set agent.organizationUrl=https://dev.azure.com/{YOUR-ORG} \
--namespace {YOUR-NS}
- With powershell:
helm install {RELEASE-NAME} btungut/azure-devops-agent `
--set agent.pat={PAT} `
--set agent.organizationUrl=https://dev.azure.com/{YOUR-ORG} `
--namespace {YOUR-NS}
Run the following snippet to uninstall the release:
helm delete {RELEASE-NAME}
⚠️ Helm chart provides two option for authentication. Please use only one of them.
Name | Description | Value |
---|---|---|
agent.pat |
(1st Option) Personal access token for authentication | "" |
agent.patSecret |
(2nd Option) Already existing secret name that stores PAT | "" |
agent.patSecretKey |
(2nd Option) Key (field) name of the PAT that is stored in secret | "pat" |
Name | Description | Value |
---|---|---|
agent.organizationUrl |
Server / organization url, e.g.: https://dev.azure.com/your-organization-name | "" |
agent.pool |
Agent pool name which the build agent is placed into | "Default" |
agent.workingDirectory |
Working directory of the agent | "_work" |
agent.extraEnv |
Additional environment variables as dictionary | {} |
Name | Description | Value |
---|---|---|
image.repository |
Azure DevOps agent image repository | btungut/azure-devops-agent |
image.tag |
Azure DevOps agent image tag (immutable tags are recommended) | 3.232.3 |
image.pullPolicy |
Azure DevOps agent image pull policy | IfNotPresent |
image.pullSecrets |
Azure DevOps agent image pull secrets | [] |
replicaCount |
Replica count for deployment | 1 |
resources.requests.cpu |
CPU request value for scheduling | "100m" |
resources.requests.memory |
Memory request value for scheduling | "128Mi" |
resources.limits.cpu |
CPU limit value for scheduling | "500m" |
resources.limits.memory |
Memory limit value for scheduling | "512Mi" |
volumes |
Volumes for the container | [] |
volumeMounts |
Volume mountings | [] |
Please refer the values.yaml for other parameters.
The binaries and packages listed below are included in the docker image used by the helm chart:
- Ubuntu 20.04
- unzip
- jq
- yq
- git
- helm
- kubectl
- Powershell Core
- Docker CLI
- Azure CLI
- with Azure DevOps extension