Getting started
Usage
Prepare the Azure DevOps organization
Create a new agent pool in Azure DevOps. Then, create the personal access token, with the scope agent pools (read & manage)
, allowing access from the agent to Azure DevOps.
Deploy
Software can either be deployed using Helm on a Kubernetes cluster or Bicep on Azure Container Apps.
Deploy on Azure
Azure deployment has a limitation regarding the demands and the OS:
- OS are limited to Linux, such as Debian, as Azure Containers Apps does not support Windows.
- The agent will not be able to run jobs requiring a system demand, such as
Agent.OS
orAgent.OSArchitecture
. However, user-defined demands from thepipelinesCapabilities
parameter are usable.
Deployment is using Bicep as a template language. Minimal configuration is required:
az deployment sub create \
--location westeurope \
--name blue-agent \
--parameters \
pipelinesOrganizationURL=https://dev.azure.com/your-organization \
pipelinesPersonalAccessToken=your-pat \
pipelinesPoolName=your-pool \
--template-file src/bicep/main.bicep
The deployment will manage the resource provisioning, in a dedicated resource group. This includes (but is not limited to) Container Apps and Log Analytics.
Details about the Helm configuration can be found in a dedicated section.
Deploy on Kubernetes
Prepare the Helm values
Minimal configuration is required:
# values.yaml
pipelines:
organizationURL: https://dev.azure.com/your-organization
personalAccessToken: your-pat
poolName: your-pool
Details about the Helm configuration can be found in a dedicated section.
Install the chart
Use Helm to install the latest released chart:
helm repo add clemlesne-blue-agent https://clemlesne.github.io/blue-agent
helm repo update
helm upgrade --install agent clemlesne-blue-agent/blue-agent
OS support matrix
OS support is generally called “flavor” in this documentation. The following table shows the supported flavors and their characteristics.
Ref | OS | Size | Arch | Support |
---|---|---|---|---|
ghcr.io/clemlesne/blue-agent:bookworm-main | Debian Bookworm (12) slim | amd64 , arm64/v8 | See Debian LTS wiki. | |
ghcr.io/clemlesne/blue-agent:bullseye-main | Debian Bullseye (11) slim | amd64 , arm64/v8 | See Debian LTS wiki. | |
ghcr.io/clemlesne/blue-agent:noble-main | Ubuntu Noble (24.04) minimal | amd64 | See Ubuntu LTS wiki. | |
ghcr.io/clemlesne/blue-agent:jammy-main | Ubuntu Jammy (22.04) minimal | amd64 , arm64/v8 | See Ubuntu LTS wiki. | |
ghcr.io/clemlesne/blue-agent:focal-main | Ubuntu Focal (20.04) minimal | amd64 , arm64/v8 | See Ubuntu LTS wiki. | |
ghcr.io/clemlesne/blue-agent:ubi9-main | Red Hat UBI 9 minimal | amd64 , arm64/v8 | See Red Hat product life cycles. | |
ghcr.io/clemlesne/blue-agent:ubi8-main | Red Hat UBI 8 minimal | amd64 , arm64/v8 | See Red Hat product life cycles. | |
ghcr.io/clemlesne/blue-agent:win-ltsc2022-main | Windows Server 2022 Core | amd64 | See base image servicing lifecycles. | |
ghcr.io/clemlesne/blue-agent:win-ltsc2019-main | Windows Server 2019 Core | amd64 | See base image servicing lifecycles. |
Docker Hub images
Container images are both published to GitHub Container Registry and Docker Hub. URLs showed in the doc are GitHub Container Registry URLs, for simplicity. To use Docker Hub, replace ghcr.io/clemlesne/blue-agent
by docker.io/clemlesne/blue-agent
. Docker Hub images are signed and secured the same way. See the images at hub.docker.com.