Testing/CI/KubernetesRunners: Difference between revisions

From QEMU
(Add deployment header)
No edit summary
Line 33: Line 33:
  az account set --subscription ...
  az account set --subscription ...
  az aks get-credentials ...
  az aks get-credentials ...
=== Gitlab ===
Register the new runner [https://docs.gitlab.com/runner/register/index.html].


=== Gitlab Runner ===
=== Gitlab Runner ===
Line 49: Line 52:


  helm install --namespace gitlab-runner gitlab-runner -f values.yaml gitlab/gitlab-runner
  helm install --namespace gitlab-runner gitlab-runner -f values.yaml gitlab/gitlab-runner
=== Gitlab ===
Follow the docs to [https://docs.gitlab.com/ee/user/clusters/agent/install/index.html#register-the-agent-with-gitlab Register the agent with GitLab].
Make sure you keep the command under "Recommended installation method" (last step).
=== Gitlab Agent ===
Now it's time to install the Gitlab agent with Helm [https://docs.gitlab.com/ee/user/clusters/agent/install/index.html#install-the-agent-with-helm].
Paste and run the command you got earlier from Gitlab. The "Recommended installation method".
The command you run should look like this:
helm repo add gitlab https://charts.gitlab.io
helm repo update
helm upgrade --install ...
Take note of the output of the <code>helm upgrade --install</code> command. It contains the namespace where Helm installed the Gitlab agent.
=== Verify ===
You can check that the agent is running:
kubectl get pods -n <namespace>
The output of <code>kubectl get pods</code> should list the gitlab-agent pod as running:
NAME                            READY  STATUS    RESTARTS  AGE
gitlab-agent-566c8b6898-hzk87  1/1    Running  0          0m30s
Now go back to your project on Gitlab. From the left sidebar, select '''Infrastructure > Kubernetes clusters'''. The agent should show up as '''connected'''.

Revision as of 09:47, 16 March 2023

To be able to run Gitlab CI jobs on a Kubernetes cluster, a Gitlab Runner must be installed [1].

Deployment

This sections documents the steps taken to deploy a GitLab Runner instance on a Azure Kubernetes cluster by using Helm [2].

Kubernetes Cluster

Create a Kubernetes cluster on Azure (AKS). Single node pool "agentpool" for the Kubernetes system pods. Enable virtual nodes [3] to have on-demand capacity for the CI workloads.

CLI

Follow the docs to Install the Azure CLI.

Alternatively, run the Azure CLI in a container [4]:

podman run -it mcr.microsoft.com/azure-cli

Install the Kubernetes CLI (kubectl) [5]:

az aks install-cli

Install the Helm CLI [6]:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Sign in to Azure [7]:

az login

Connect to your Kubernetes Cluster. Open the Azure web dashboard for your cluster and push the "Connect" button. A list of commands will be displayed to connect to your cluster. Something like the following:

az account set --subscription ...
az aks get-credentials ...

Gitlab

Register the new runner [8].

Gitlab Runner

Now it's time to install the Gitlab runner with Helm [9].

Create a namespace:

kubectl create namespace "gitlab-runner"

Create a values.yaml file for your runner configuration [10]:

gitlabUrl: "https://gitlab.com/"
runnerRegistrationToken: ""

Deploy the runner:

helm install --namespace gitlab-runner gitlab-runner -f values.yaml gitlab/gitlab-runner