diff --git a/docs/content/docs/advanced-topics/helm-deployment.md b/docs/content/docs/advanced-topics/helm-deployment.md index 9d074806..da2afa37 100644 --- a/docs/content/docs/advanced-topics/helm-deployment.md +++ b/docs/content/docs/advanced-topics/helm-deployment.md @@ -8,49 +8,50 @@ Helm is a package manager for Kubernetes, allowing to easily deploy applications #### Helm values -| Parameter | Description | Default | -| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `affinity` | Node affinity for pod assignment | `{}` | -| `annotations` | Add custom annotations to the Pod. | `{}` | -| `autoscaling.cooldown` | Time in seconds the automation will wait until there is no more pipeline asking for an agent. Same time is then applied for system termination. | `60` | -| `autoscaling.enabled` | Enable the auto-scaling. Requires [KEDA](https://keda.sh), 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.timeout`. | `true` | -| `autoscaling.maxReplicas` | Maximum number of pods, remaining jobs will be kept in queue. The default value is arbitrary, to avoid misconfiguration. | `100` | -| `extraEnv` | Additional environment variables for the agent container. | `[]` | -| `extraManifests` | Extra manifests to deploy as an array. pod. | `[]` | -| `extraNodeSelectors` | Additional node labels for pod assignment. | `{}` | -| `extraVolumeMounts` | Additional volume mounts for the agent container. | `[]` | -| `extraVolumes` | Additional volumes for the agent pod. | `[]` | -| `fullnameOverride` | Overrides release fullname | `""` | -| `image.flavor` | Container image tag, can be `bookworm`, `bullseye`, `focal`, `jammy`, `ubi8`, `ubi9`, `win-ltsc2019`, or `win-ltsc2022`. | `bookworm` | -| `image.isWindows` | Turn on is the agent is a Windows-based system. | `false` | -| `image.pullPolicy` | Container image pull policy | `IfNotPresent` | -| `image.repository` | Container image repository | `ghcr.io/clemlesne/blue-agent:bullseye` | -| `image.version` | Container image tag | _Version_ | -| `imagePullSecrets` | Use secrets to pull the container image. | `[]` | -| `initContainers` | Init containers for the agent pod. pod. | `[]` | -| `nameOverride` | Overrides release name | `""` | -| `pipelines.cache.size` | Total cache to attach to the Azure Pipelines standard directory. By default, [same amount as the Microsoft Hosted agents](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#hardware). | `10Gi` | -| `pipelines.cache.type` | Disk type to attach to the Azure Pipelines standard directory. See your cloud provider for types ([Azure](https://learn.microsoft.com/en-us/azure/aks/concepts-storage#storage-classes), [AWS](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)). | `managed-csi` (Azure compatible) | -| `pipelines.cache.volumeEnabled` | Enabled by default, can be disabled if your CSI driver doesn't support ephemeral storage ([exhaustive list](https://kubernetes-csi.github.io/docs/drivers.html)). If disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see `resources`). | `true` | -| `pipelines.capabilities` | Add [demands/capabilities](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/demands?view=azure-devops&tabs=yaml) to the agent | `[]` | -| `pipelines.cleanup.failed` | Maximum of failed Jobs to keep from Kubernetes API server ([see doc](https://keda.sh/docs/2.11/concepts/scaling-jobs/#scaledjob-spec)). Only applied to autoscaled deployments (see `autoscaling.enabled`). | `100` | -| `pipelines.cleanup.successful` | Maximum of successful Jobs to keep from Kubernetes API server ([see doc](https://keda.sh/docs/2.11/concepts/scaling-jobs/#scaledjob-spec)). Only applied to autoscaled deployments (see `autoscaling.enabled`). | `100` | -| `pipelines.cleanup.ttl` | Delay until Job history will be cleaned from Kubernetes API server ([see doc](https://kubernetes.io/docs/concepts/workloads/controllers/job/#ttl-mechanism-for-finished-jobs)). Only applied to autoscaled deployments (see `autoscaling.enabled`). | `3600` (1 hour) | -| `pipelines.organizationURL` | The Azure base URL for your organization | _None_ | -| `pipelines.personalAccessToken` | Personal Access Token (PAT) used by the agent to connect to the Azure DevOps server (both SaaS and self-hosted). | _None_ | -| `pipelines.poolName` | Agent pool name to which the agent should register. | _None_ | -| `pipelines.timeout` | Time in seconds after a agent will be stopped, the same amount of time is applied as a timeout for the system to shut down. | `3600` (1 hour) | -| `pipelines.tmpdir.size` | Total size of the [standard `TMPDIR` directory](https://en.wikipedia.org/wiki/TMPDIR). | `1Gi` | -| `pipelines.tmpdir.type` | Disk type to attach to the [standard `TMPDIR` directory](https://en.wikipedia.org/wiki/TMPDIR). See your cloud provider for types ([Azure](https://learn.microsoft.com/en-us/azure/aks/concepts-storage#storage-classes), [AWS](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)). | `managed-csi` (Azure compatible) | -| `pipelines.tmpdir.volumeEnabled` | Enabled by default, can be disabled if your CSI driver doesn't support ephemeral storage ([exhaustive list](https://kubernetes-csi.github.io/docs/drivers.html)). If disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see `resources`). | `true` | -| `podSecurityContext` | Security rules applied to the Pod ([more details](https://kubernetes.io/docs/concepts/security/pod-security-standards)). | `{}` | -| `replicaCount` | Default fixed amount of agents deployed. Those are not auto-scaled. | `3` | -| `resources` | Resource limits | `{ "resources": { "limits": { "cpu": 2, "memory": "4Gi", "ephemeral-storage": "8Gi" }, "requests": { "cpu": 1, "memory": "2Gi", "ephemeral-storage": "2Gi" }}}` | -| `secret.create` | Create Secret, must contains `personalAccessToken` and `organizationURL` variables. | `true` | -| `secret.name` | Secret name | _Release name_ | -| `securityContext` | Security rules applied to the container ([more details](https://kubernetes.io/docs/concepts/security/pod-security-standards)). | `{}` | -| `serviceAccount.annotations` | Custom annotations to give to the ServiceAccount. | `{}` | -| `serviceAccount.create` | Create ServiceAccount | `true` | -| `serviceAccount.name` | ServiceAccount name | _Release name_ | -| `sidecarContainers` | Containers to run alongside the agent container. | `[]` | -| `tolerations` | Toleration labels for pod assignment. | `[]` | +| Parameter | Description | Default | +| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `affinity` | Node affinity for pod assignment | `{}` | +| `annotations` | Add custom annotations to the Pod | `{}` | +| `autoscaling.cooldown` | Time in seconds the automation will wait until there is no more pipeline asking for an agent; same delay is then applied for system termination | `60` | +| `autoscaling.enabled` | Enable the auto-scaling; requires [KEDA](https://keda.sh), 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.timeout` | `true` | +| `autoscaling.maxReplicas` | Maximum number of pods, remaining jobs will be kept in queue; the default value is arbitrary, to avoid misconfiguration | `100` | +| `extraEnv` | Additional environment variables for the agent container | `[]` | +| `extraManifests` | Extra manifests to deploy as an array | `[]` | +| `extraNodeSelectors` | Additional node labels for pod assignment | `{}` | +| `extraVolumeMounts` | Additional volume mounts for the agent container | `[]` | +| `extraVolumes` | Additional volumes for the agent pod | `[]` | +| `fullnameOverride` | Overrides release fullname | `""` | +| `image.flavor` | Container image tag, can be `bookworm`, `bullseye`, `focal`, `jammy`, `ubi8`, `ubi9`, `win-ltsc2019`, or `win-ltsc2022` | `bookworm` | +| `image.isWindows` | Turn on is the agent is a Windows-based system | `false` | +| `image.pullPolicy` | Container image pull policy | `IfNotPresent` | +| `image.repository` | Container image repository | `ghcr.io/clemlesne/blue-agent:bullseye` | +| `image.version` | Container image tag | _Version_ | +| `imagePullSecrets` | Use secrets to pull the container image | `[]` | +| `initContainers` | Init containers for the agent pod | `[]` | +| `nameOverride` | Overrides release name | `""` | +| `pipelines.cache.size` | Total cache to attach to the Azure Pipelines standard directory; by default, [same amount as the Microsoft Hosted agents](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#hardware) | `10Gi` | +| `pipelines.cache.type` | Disk type to attach to the Azure Pipelines standard directory; see your cloud provider for types ([Azure](https://learn.microsoft.com/en-us/azure/aks/concepts-storage#storage-classes), [AWS](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)) | `managed-csi` (Azure compatible) | +| `pipelines.cache.volumeEnabled` | Enabled by default, can be disabled if your CSI driver doesn't support ephemeral storage ([exhaustive list](https://kubernetes-csi.github.io/docs/drivers.html)); if disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see `resources`) | `true` | +| `pipelines.capabilities` | Add [demands/capabilities](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/demands?view=azure-devops&tabs=yaml) to the agent | `[]` | +| `pipelines.cleanup.failed` | Maximum of failed Jobs to keep from Kubernetes API server ([see doc](https://keda.sh/docs/2.11/concepts/scaling-jobs/#scaledjob-spec)); only applied to autoscaled deployments (see `autoscaling.enabled`) | `100` | +| `pipelines.cleanup.successful` | Maximum of successful Jobs to keep from Kubernetes API server ([see doc](https://keda.sh/docs/2.11/concepts/scaling-jobs/#scaledjob-spec)); only applied to autoscaled deployments (see `autoscaling.enabled`) | `100` | +| `pipelines.cleanup.ttl` | Delay until Job history will be cleaned from Kubernetes API server ([see doc](https://kubernetes.io/docs/concepts/workloads/controllers/job/#ttl-mechanism-for-finished-jobs)); only applied to autoscaled deployments (see `autoscaling.enabled`) | `3600` (1 hour) | +| `pipelines.organizationURL` | The Azure base URL for your organization | _None_ | +| `pipelines.personalAccessToken` | Personal Access Token (PAT) used by the agent to connect to the Azure DevOps server (both SaaS and self-hosted) | _None_ | +| `pipelines.poolName` | Agent pool name to which the agent should register | _None_ | +| `pipelines.timeout` | Time in seconds after a agent will be stopped, the same amount of time is applied as a timeout for the system to shut down | `3600` (1 hour) | +| `pipelines.tmpdir.size` | Total size of the [standard `TMPDIR` directory](https://en.wikipedia.org/wiki/TMPDIR) | `1Gi` | +| `pipelines.tmpdir.type` | Disk type to attach to the [standard `TMPDIR` directory](https://en.wikipedia.org/wiki/TMPDIR); see your cloud provider for types ([Azure](https://learn.microsoft.com/en-us/azure/aks/concepts-storage#storage-classes), [AWS](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)) | `managed-csi` (Azure compatible) | +| `pipelines.tmpdir.volumeEnabled` | Enabled by default, can be disabled if your CSI driver doesn't support ephemeral storage ([exhaustive list](https://kubernetes-csi.github.io/docs/drivers.html)); if disabled, it is advised to allow >= 10Gi of ephemeral storage usage (see `resources`) | `true` | +| `podSecurityContext` | Security rules applied to the Pod ([more details](https://kubernetes.io/docs/concepts/security/pod-security-standards)) | `{}` | +| `replicaCount` | Default fixed amount of agents deployed; those are not auto-scaled | `3` | +| `resources` | Resource limits | `{ "resources": { "limits": { "cpu": 2, "memory": "4Gi", "ephemeral-storage": "8Gi" }, "requests": { "cpu": 1, "memory": "2Gi", "ephemeral-storage": "2Gi" }}}` | +| `revisionHistoryLimit` | Number of revisions to keep in the history of the Deployment | `10` | +| `secret.create` | Create Secret, must contains `personalAccessToken` and `organizationURL` variables | `true` | +| `secret.name` | Secret name | _Release name_ | +| `securityContext` | Security rules applied to the container ([more details](https://kubernetes.io/docs/concepts/security/pod-security-standards)) | `{}` | +| `serviceAccount.annotations` | Custom annotations to give to the ServiceAccount | `{}` | +| `serviceAccount.create` | Create ServiceAccount | `true` | +| `serviceAccount.name` | ServiceAccount name | _Release name_ | +| `sidecarContainers` | Containers to run alongside the agent container | `[]` | +| `tolerations` | Toleration labels for pod assignment | `[]` | diff --git a/src/helm/blue-agent/values.yaml b/src/helm/blue-agent/values.yaml index ef2647c7..86939f8e 100644 --- a/src/helm/blue-agent/values.yaml +++ b/src/helm/blue-agent/values.yaml @@ -1,10 +1,10 @@ # Container image configuration image: - # Container image flavor, default is 'bookworm' + # Container image flavor, default is "bookworm" flavor: bookworm # Indicates if the image is for Windows, default is false isWindows: false - # Image pull policy, default is 'Always' + # Image pull policy, default is "Always" pullPolicy: Always # Container image repository repository: ghcr.io/clemlesne/blue-agent