web-dev-qa-db-fra.com

Comment personnaliser config.toml sur Kubernetes?

J'ai un cloud Gitlab connecté à un cluster k8s fonctionnant sur Google (GKE). Le cluster a été créé via le cloud Gitlab.

Je souhaite personnaliser le config.toml parce que je veux corriger le cache sur les k8 comme suggéré dans ce problème .

J'ai trouvé le config.toml configuration dans le runner-gitlab-runner ConfigMap. J'ai mis à jour le ConfigMap pour contenir ce config.toml installer:

  config.toml: |
    concurrent = 4
    check_interval = 3
    log_level = "info"
    listen_address = '[::]:9252'
    [[runners]]
      executor = "kubernetes"
      cache_dir = "/tmp/gitlab/cache"
      [runners.kubernetes]
        memory_limit = "1Gi"
        [runners.kubernetes.node_selector]
          gitlab = "true"
        [[runners.kubernetes.volumes.Host_path]]
          name = "gitlab-cache"
          mount_path = "/tmp/gitlab/cache"
          Host_path = "/home/core/data/gitlab-runner/data"

Pour appliquer les modifications, j'ai supprimé le runner-gitlab-runner-xxxx-xxx pod pour en créer un nouveau avec la mise à jour config.toml.

Cependant, quand je regarde le nouveau pod, le /home/gitlab-runner/.gitlab-runner/config.toml contient maintenant 2 [[runners]] sections:

listen_address = "[::]:9252"
concurrent = 4
check_interval = 3
log_level = "info"

[session_server]
  session_timeout = 1800

[[runners]]
  name = ""
  url = ""
  token = ""
  executor = "kubernetes"
  cache_dir = "/tmp/gitlab/cache"
  [runners.kubernetes]
    Host = ""
    bearer_token_overwrite_allowed = false
    image = ""
    namespace = ""
    namespace_overwrite_allowed = ""
    privileged = false
    memory_limit = "1Gi"
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.node_selector]
      gitlab = "true"
    [runners.kubernetes.volumes]

      [[runners.kubernetes.volumes.Host_path]]
        name = "gitlab-cache"
        mount_path = "/tmp/gitlab/cache"
        Host_path = "/home/core/data/gitlab-runner/data"

[[runners]]
  name = "runner-gitlab-runner-xxx-xxx"
  url = "https://gitlab.com/"
  token = "<my-token>"
  executor = "kubernetes"
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.kubernetes]
    Host = ""
    bearer_token_overwrite_allowed = false
    image = "ubuntu:16.04"
    namespace = "gitlab-managed-apps"
    namespace_overwrite_allowed = ""
    privileged = true
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.volumes]

Le fichier /scripts/config.toml est la configuration telle que je l'ai créée dans ConfigMap. Je soupçonne donc le /home/gitlab-runner/.gitlab-runner/config.toml est en quelque sorte mis à jour lors de l'enregistrement du Gitlab-Runner avec le cloud Gitlab.

Si en changeant le config.toml via ConfigMap ne fonctionne pas, comment changer la configuration? Je ne trouve rien à ce sujet dans la documentation de Gitlab ou Gitlab.

10
Joost den Boer

À l'intérieur du mappage, vous pouvez essayer d'ajouter le volume et les paramètres de configuration supplémentaires:

# Add docker volumes
cat >> /home/gitlab-runner/.gitlab-runner/config.toml << EOF

      [[runners.kubernetes.volumes.Host_path]]
        name = "var-run-docker-sock"
        mount_path = "/var/run/docker.sock"
EOF

J'ai fait le déploiement de coureur en utilisant un graphique de barre; Je suppose que vous avez fait de même, dans le lien suivant, vous trouverez plus d'informations sur l'approche que je mentionne: https://gitlab.com/gitlab-org/gitlab-runner/issues/2578

Si après avoir ajouté la configuration, votre pod n'est pas en mesure de démarrer, vérifiez les journaux, j'ai testé l'approche de l'ajout et j'ai eu des erreurs comme "Répertoire introuvable", et j'étais parce que j'ajoutais dans le mauvais chemin, mais après avoir corrigé ces problèmes, le coureur fonctionne bien.

3
Ariskay