Getting started

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 or Agent.OSArchitecture. However, user-defined demands from the pipelinesCapabilities parameter are usable.

Deploy to Azure

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.

RefOSSizeArchSupport
ghcr.io/clemlesne/blue-agent:bookworm-mainDebian Bookworm (12) slimDocker Image Size (tag)amd64, arm64/v8See Debian LTS wiki.
ghcr.io/clemlesne/blue-agent:bullseye-mainDebian Bullseye (11) slimDocker Image Size (tag)amd64, arm64/v8See Debian LTS wiki.
ghcr.io/clemlesne/blue-agent:noble-mainUbuntu Noble (24.04) minimalDocker Image Size (tag)amd64See Ubuntu LTS wiki.
ghcr.io/clemlesne/blue-agent:jammy-mainUbuntu Jammy (22.04) minimalDocker Image Size (tag)amd64, arm64/v8See Ubuntu LTS wiki.
ghcr.io/clemlesne/blue-agent:focal-mainUbuntu Focal (20.04) minimalDocker Image Size (tag)amd64, arm64/v8See Ubuntu LTS wiki.
ghcr.io/clemlesne/blue-agent:ubi9-mainRed Hat UBI 9 minimalDocker Image Size (tag)amd64, arm64/v8See Red Hat product life cycles.
ghcr.io/clemlesne/blue-agent:ubi8-mainRed Hat UBI 8 minimalDocker Image Size (tag)amd64, arm64/v8See Red Hat product life cycles.
ghcr.io/clemlesne/blue-agent:win-ltsc2022-mainWindows Server 2022 CoreDocker Image Size (tag)amd64See base image servicing lifecycles.
ghcr.io/clemlesne/blue-agent:win-ltsc2019-mainWindows Server 2019 CoreDocker Image Size (tag)amd64See 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.

Last updated on