Deploy on Kubernetes with Helm

Deploy on Kubernetes with Helm

Helm is a package manager for Kubernetes, allowing to easily deploy applications on a cluster.

Helm values

ParameterDescriptionDefault
affinityNode affinity for pod assignment{}
annotationsAdd custom annotations to the Pod{}
autoscaling.cooldownTime in seconds the automation will wait until there is no more pipeline asking for an agent; same delay is then applied for system termination60
autoscaling.enabledEnable the auto-scaling; requires KEDA, but can be started without; Be warning, disabling auto-scaling implies a shutdown of the existing agents during a Helm instance upgrade, according to pipelines.timeouttrue
autoscaling.maxReplicasMaximum number of pods, remaining jobs will be kept in queue; the default value is arbitrary, to avoid misconfiguration100
extraEnvAdditional environment variables for the agent container[]
extraManifestsExtra manifests to deploy as an array[]
extraNodeSelectorsAdditional node labels for pod assignment{}
extraVolumeMountsAdditional volume mounts for the agent container[]
extraVolumesAdditional volumes for the agent pod[]
fullnameOverrideOverrides release fullname""
image.flavorContainer image tag, can be bookworm, bullseye, focal, jammy, ubi8, ubi9, win-ltsc2019, or win-ltsc2022bookworm
image.isWindowsTurn on is the agent is a Windows-based systemfalse
image.pullPolicyContainer image pull policyIfNotPresent
image.repositoryContainer image repositoryghcr.io/clemlesne/blue-agent:bullseye
image.versionContainer image tagVersion
imagePullSecretsUse secrets to pull the container image[]
initContainersInit containers for the agent pod[]
nameOverrideOverrides release name""
pipelines.cache.sizeTotal cache to attach to the Azure Pipelines standard directory; by default, same amount as the Microsoft Hosted agents10Gi
pipelines.cache.typeDisk type to attach to the Azure Pipelines standard directory; see your cloud provider for types (Azure, AWS)managed-csi (Azure compatible)
pipelines.cache.volumeEnabledEnabled by default, can be disabled if your CSI driver doesn’t support ephemeral storage (exhaustive list); if disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see resources)true
pipelines.capabilitiesAdd demands/capabilities to the agent[]
pipelines.cleanup.failedMaximum of failed Jobs to keep from Kubernetes API server (see doc); only applied to autoscaled deployments (see autoscaling.enabled)100
pipelines.cleanup.successfulMaximum of successful Jobs to keep from Kubernetes API server (see doc); only applied to autoscaled deployments (see autoscaling.enabled)100
pipelines.cleanup.ttlDelay until Job history will be cleaned from Kubernetes API server (see doc); only applied to autoscaled deployments (see autoscaling.enabled)3600 (1 hour)
pipelines.organizationURLThe Azure base URL for your organizationNone
pipelines.personalAccessTokenPersonal Access Token (PAT) used by the agent to connect to the Azure DevOps server (both SaaS and self-hosted)None
pipelines.poolNameAgent pool name to which the agent should registerNone
pipelines.timeoutTime in seconds after a agent will be stopped, the same amount of time is applied as a timeout for the system to shut down3600 (1 hour)
pipelines.tmpdir.sizeTotal size of the standard TMPDIR directory1Gi
pipelines.tmpdir.typeDisk type to attach to the standard TMPDIR directory; see your cloud provider for types (Azure, AWS)managed-csi (Azure compatible)
pipelines.tmpdir.volumeEnabledEnabled by default, can be disabled if your CSI driver doesn’t support ephemeral storage (exhaustive list); if disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see resources)true
podSecurityContextSecurity rules applied to the Pod (more details){}
replicaCountDefault fixed amount of agents deployed; those are not auto-scaled3
resourcesResource limits{ "resources": { "limits": { "cpu": 2, "memory": "4Gi", "ephemeral-storage": "8Gi" }, "requests": { "cpu": 1, "memory": "2Gi", "ephemeral-storage": "2Gi" }}}
revisionHistoryLimitNumber of revisions to keep in the history of the Deployment10
secret.createCreate Secret, must contains personalAccessToken and organizationURL variablestrue
secret.nameSecret nameRelease name
securityContextSecurity rules applied to the container (more details){}
serviceAccount.annotationsCustom annotations to give to the ServiceAccount{}
serviceAccount.createCreate ServiceAccounttrue
serviceAccount.nameServiceAccount nameRelease name
sidecarContainersContainers to run alongside the agent container[]
tolerationsToleration labels for pod assignment[]
Last updated on