Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG ARG_UBUNTU_BASE_IMAGE_TAG="20.04"
FROM ${ARG_UBUNTU_BASE_IMAGE}:${ARG_UBUNTU_BASE_IMAGE_TAG}
WORKDIR /azp
ARG ARG_TARGETARCH=linux-x64
ARG ARG_VSTS_AGENT_VERSION=4.251.0
ARG ARG_VSTS_AGENT_VERSION=4.255.0


# To make it easier for build and release pipelines to run apt-get,
Expand All @@ -20,6 +20,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
git \
git-lfs \
iputils-ping \
jq \
lsb-release \
Expand Down
82 changes: 44 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ You can watch the tutorial video below to learn how to deploy Azure DevOps agent

[![Azure DevOps Agent on Kubernetes - How to deploy build agents on Kubernetes - Tutorial](https://img.youtube.com/vi/qep2l1oxknk/0.jpg)](https://www.youtube.com/watch?v=qep2l1oxknk)


## Compatibility Matrix

The table presented below outlines the correspondence between Helm chart versions, Docker tags, and the Azure DevOps agent versions included within those Docker images.

| Helm Version | Docker Tag | Agent Version |
| ------------ | --------------------- | ------------- |
| 2.3.0 | v2.3.0-vsts-v2.255.0 | 4.255.0 |
| 2.2.0 | 4.251.0-stable-v2.2.0 | 4.251.0 |
| 2.1.1 | 3.248.0-stable-v2.1.0 | 3.248.0 |
| 2.1.0 | 3.248.0-stable-v2.1.0 | 3.248.0 |
Expand All @@ -30,6 +30,23 @@ The table presented below outlines the correspondence between Helm chart version

## Important Release Notes

### 2.3.0

With the **2.3.0 release**, the helm chart has been updated to use the latest Azure DevOps agent version **4.255.0** and `git-lfs` support has been added.

- :white_check_mark: [Upgrade VSTS agent to 4.255.0](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/38)
- :white_check_mark: [Add git-lfs support](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/37)
- :white_check_mark: [BREAKING CHANGE: Change container resources requests and limits to NULL / empty / `{}`](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/39)


#### IMPORTANT & BREAKING CHANGE

- The values of **requests and limits for the container resources** have been changed from specific values to NULL / empty / `{}`.

> This means that the container will use the default values of the Kubernetes cluster for CPU and memory resources. Please make sure to adjust the values according to your needs if you want to set specific values for CPU and memory resources.

**To see the changes**, please visit the [values.yaml changes for PR 39](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/39/files)

### 2.2.0

This helm release uses the latest stable Azure Devops Agent version which is **4.251.0**.
Expand All @@ -44,13 +61,11 @@ This helm release deploys the same agent version but contains `sideContainers` s
- :white_check_mark: [Feature add sideContainers support](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/33)
- :white_check_mark: [Add sidecar containers](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/31)


### 2.1.0

This release includes the same agent version but different Docker image tag and **different bash invocations**!
- :white_check_mark: [Add sudo and docker support](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/27)


- :white_check_mark: [Add sudo and docker support](https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/27)

### 2.0.1

Expand All @@ -59,16 +74,13 @@ This release includes the same agent version but different Docker image tag and
- :white_check_mark: [Upgrade VSTS agent to 3.248.0](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/23)
- :white_check_mark: Optimize the Dockerfile steps and add comment lines.



### 2.0.0

- :white_check_mark: [ubuntu 20.04 based image](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/13)
- :white_check_mark: [yq upgrade to 4.40.7](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/12)
- :white_check_mark: [docker command could be executed without sudo](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/11)
- :white_check_mark: [Support for VSTS agent 3.232.3](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/10)


### 1.0.9

- Pod Annotations have been implemented
Expand All @@ -78,19 +90,19 @@ This release includes the same agent version but different Docker image tag and

:white_check_mark: PR: https://github.com/btungut/azure-devops-agent-on-kubernetes/pull/8


### 1.0.8
Since the **1.0.8 release** , the Dockerfile and Helm chart have been configured to utilize a non-root user.

Since the **1.0.8 release** , the Dockerfile and Helm chart have been configured to utilize a non-root user.

:white_check_mark: [Issue : Non-root user should be implemented](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/3)

:white_check_mark: [Issue : docker could be called without sudo](https://github.com/btungut/azure-devops-agent-on-kubernetes/issues/5)

## Prerequisites

- Helm
- Personal Access Token (**PAT**) 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.

## Generate PAT on Azure DevOps
Expand All @@ -104,8 +116,8 @@ It is pretty straight-forward process with sufficient scope. Please choose **one

## Installing the Chart


1. First you need to add repository _(if you haven't done yet before)_

```bash
helm repo add btungut https://btungut.github.io
```
Expand All @@ -120,7 +132,7 @@ helm install {RELEASE-NAME} btungut/azure-devops-agent \
--namespace {YOUR-NS}
```

2. Install the helm chart with existing secret that stores PAT
1. Install the helm chart with existing secret that stores PAT

```bash
helm install {RELEASE-NAME} btungut/azure-devops-agent \
Expand Down Expand Up @@ -153,7 +165,6 @@ volumeMounts: []
mountPath: "/var/run/docker.sock"
```


## Example overriden values.yaml for running instance

This the example values.yaml that you can use to run an instance with provided PAT secret and Docker CLI support.
Expand Down Expand Up @@ -206,7 +217,6 @@ volumeMounts:
mountPath: "/var/run/docker.sock"
```


## Parameters

### Agent authentication parameters
Expand All @@ -219,48 +229,44 @@ volumeMounts:
| `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"` |


### Agent configuration parameters

| 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 |
| ------------------------ | ------------------------------------------------------------------------------- | ----------- |
| `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 | `{}` |

### Other parameters

| Name | Description | Value |
| --------------------------- | ------------------------------------- | ---------------------------- |
| `image.registry` | Azure DevOps agent image registry | `docker.io` |
| `image.repository` | Azure DevOps agent image repository | `btungut/azure-devops-agent` |
| `image.tag` | Azure DevOps agent image tag | refer to values.yaml |
| `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 | `[]` |
| Name | Description | Value |
| --------------------------- | ---------------------------------------------- | ---------------------------- |
| `image.registry` | Azure DevOps agent image registry | `docker.io` |
| `image.repository` | Azure DevOps agent image repository | `btungut/azure-devops-agent` |
| `image.tag` | Azure DevOps agent image tag | refer to values.yaml |
| `image.pullPolicy` | Azure DevOps agent image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Azure DevOps agent image pull secrets | `[]` |
| `replicaCount` | Replica count for deployment | `1` |
| `resources` | Resource requests and limits for the container | `{}` |
| `volumes` | Volumes for the container | `[]` |
| `volumeMounts` | Volume mountings | `[]` |

Please refer the values.yaml for other parameters.



## Built-in binaries & packages

The binaries and packages listed below are included in the docker image used by the helm chart:

- Ubuntu 20.04
- unzip
- jq
- yq
- git
- git-lfs
- helm
- kubectl
- Powershell Core
- Docker CLI
- Azure CLI
- with Azure DevOps extension

4 changes: 2 additions & 2 deletions chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: azure-devops-agent
description: Dockerized Azure DevOps build agent on Kubernetes
type: application
version: 2.2.0
appVersion: "4.251.0-stable-v2.2.0"
version: 2.3.0
appVersion: "v2.3.0-vsts-v2.255.0"
keywords:
- azure devops
- build agent
Expand Down
Loading