diff --git a/README.md b/README.md index 72f1506..1914ead 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,93 @@ +## Introduction -# Contributing +This chart bootstraps a [Visual Studio Team Services agent pool](https://github.com/Microsoft/vsts-agent) on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. + +## Prerequisites + - Kubernetes 1.8+ or newer + +## Configuration + +The following tables lists the configurable parameters of the `vsts-agent` chart and their default values. + +| Parameter | Description | Default | +| --------------------------------- | ------------------------------------- | --------------------------------------------------------- | +| `image.repository` | vsts-agent image | `microsoft/vsts-agent` | +| `image.tag` | Specify image tag | `latest` | +| `image.pullSecrets` | Specify image pull secrets | `nil` (does not add image pull secrets to deployed pods) | +| `image.pullPolicy` | Image pull policy | `Always` | +| `replicas` | Number of vsts-agent instaces started | `3` | +| `resources.disk` | Size of the disk attached to the agent| `50Gi` | +| `vstsAccount` | VSTS account name | `nil` (must be provided during installation) | +| `vstsToken` | VSTS personal access token | `nil` (must be provided during installation) | +| `vstsPool` | VSTS agent pool name | `kubernetes-vsts-agents` | +| `vstsAgentName` | VSTS agent name | `$HOSTNAME` | +| `vstsWorkspace` | VSTS agent workspace | `/workspace` | + +## Configure your VSTS instance + +Before starting the chart installation, you have to configure your VSTS instance as follows: + +1. Create a personal access token with the authorized scope **Agent Pools(read, manage)** following these [instructions](https://docs.microsoft.com/en-us/vsts/git/_shared/personal-access-tokens). You will have to provide later the base64 encoded value of this token to the `vstsToken` value of the chart. + +2. Create a new queue and agent pool with the name `kubernetes-vsts-agents`. You can find more details [here](https://docs.microsoft.com/en-us/vsts/build-release/concepts/agents/pools-queues#creating-agent-pools-and-queues). + +## Installing the Chart + +The chart can be installed with the following command: + +```bash +export VSTS_TOKEN=$(echo -n '' | base64) + +helm install --namespace --set vstsToken=${VSTS_TOKEN} --set vstsAccount= --set vstsPool= -f values.yaml vsts-agent . +``` + +Your deployment should look like this if everything works fine: + +```bash +kubectl get pods --namespace +NAME READY STATUS RESTARTS AGE +vsts-agent-0 1/1 Running 0 1m +vsts-agent-1 1/1 Running 0 1m +vsts-agent-2 1/1 Running 0 1m +``` +## Upgrading a deployed Chart + +A deployed chart can be upgraded as follows: + +```bash +export VSTS_TOKEN=$(echo -n '' | base64) + +helm upgrade --timeout 900 --namespace --set vstsToken=${VSTS_TOKEN} --set vstsAccount= --set vstsPool= -f values.yaml vsts-agent . --wait +``` + +This command will upgrade the exiting chart and wait until the deployment is completed. + +## Uninstalling the Chart + +The chart can be uninstalled/deleted as follows: + +```console +helm delete --purge vsts-agent +``` + +This command removes all the Kubernetes resources associated with the chart and deletes the helm release. + +## Validate the Chart + +You can validate the chart during development by using the `helm template` command. + +```bash +helm template . +``` + +## Scale up the number of VSTS agents + +The number of VSTS agents can be easily increased to `10` by using the following command: + +```bash +kubectl scale --namespace statefulset/vsts-agent --replicas 10 +``` +## Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us