#import "../Helpers/code-snippets.typ": code

== GitLab Agent
Um unseren K3s Cluster an Gitlab anzubinden und somit `kubectl` Befehle in der Gitlab CI/CD Pipeline ausführen zu können, benötigen wir einen GitLab Agent. Der Gitlab Agent lässt sich als Helm Chart im Cluster installieren. Die Konfiguration des Agents kann im Gitlab Webinterface generiert werden.

Die Konfiguration aus dem Gitlab Webinterface haben wir in `gitlab-agent-values.yaml` abgelegt:
#figure(
  code(
    numbers: true,
    caption: "gitlab-agent-values.yaml"
  )[```yaml
  image:
    tag: 'v16.9.1'  # Version des GitLab Agents, entspricht der Gitlab Version

  config:
    token: 'glagent-supersecret' # In Gitlab generierter Token
    kasAddress: 'wss://gitlab.diller.gl/-/kubernetes-agent/' # Adresse des Gitlabs
  ```]
)
Dann haben wir den Gitlab Agent mit Helm installiert:
#code(numbers: true)[```bash
helm repo add gitlab https://charts.gitlab.io
helm repo update
helm install k3s-sitepulse gitlab/gitlab-agent -n gitlab-agent-k3s-sitepulse --create-namespace -f gitlab-agent-values.yaml
```]