# #docker #kubernetes #gitlab #gitlab-ci #gitlab-ci-runner
Вопрос:
В настоящее время я сталкиваюсь с проблемой:
ERROR: Job failed (system failure):
prepare environment:
setting up credentials:
secrets is forbidden:
User "system:serviceaccount:default:gitlab-runner" cannot create
resource "secrets" in API group "" in the namespace "gitlab"`
after following the official documentation on how to integrate the GitLab Runner.
Я использую следующее runner-chart-values.yaml
:
# The GitLab Server URL (with protocol) that want to register the runner against
# ref: https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-register
#
gitlabUrl: http://example.domain/
# The Registration Token for adding new runners to the GitLab Server. This must
# be retrieved from your GitLab instance.
# ref: https://docs.gitlab.com/ce/ci/runners/README.html
#
runnerRegistrationToken: "<token>"
# For RBAC support:
rbac:
create: true
rules:
- apiGroups: ["*"]
# Run all containers with the privileged flag enabled
# This will allow the docker:dind image to run if you need to run Docker
# commands. Please read the docs before turning this on:
# ref: https://docs.gitlab.com/runner/executors/kubernetes.html#using-dockerdind
runners:
privileged: true
Есть какие-нибудь зацепки, что происходит?
Большое спасибо!
Ответ №1:
Похоже, что существует несоответствие пространства имен, однако вы можете попробовать этот вариант ниже
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: gitlab-runner
namespace: gitlab-runner
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["list", "get", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
убедитесь, что вы создаете учетную запись службы Роли в соответствующем пространстве имен.
Команда для создания привязки ролей
kubectl create rolebinding --namespace=gitlab-runner gitlab-runner-binding --role=gitlab-runner --serviceaccount=gitlab-runner:default
вот хорошая документация : https://medium.com/@ruben.лагуна/установка-a-gitlab-runner-на-кубернетесе-ac386c924bc8
Комментарии:
1. Большое спасибо за вашу информацию. Сделал все в соответствии со статьей medium, но возникла проблема с тем, что бегун создается в
default
пространстве имен, даже было указано другое пространство именgitlab-runner
Ответ №2:
Расширение ответа Харша: Пожалуйста, убедитесь, что вы работаете в активном пространстве имен «gitlab-runner» или используете ключ --namespace=gitlab-runner
. Чтобы переключаться между активными пространствами имен, пожалуйста, используйте следующую команду:
kubens gitlab-runner
Так что вам не нужно использовать --namespace=gitlab-runner
каждый раз.
К вашему сведению, я сделал это в нескольких шагах от статьи о моем кластере k8s, и для меня это отлично работает.
Комментарии:
1. Привет @andreas.teich. Вам удалось заставить его работать?
Ответ №3:
Для меня добавление всех необходимых ролей было единственным решением, которое действительно помогло.
Здесь соответствующие значения диаграммы бегуна.файл yaml:
## GitLab Runner Image
gitlabUrl: http://example.domain/
runnerRegistrationToken: "<token>"
rbac:
create: true
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["list", "get", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: [""]
resources: ["pods/attach"]
verbs: ["list", "get", "create", "delete", "update"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["list", "get", "create", "delete", "update"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["list", "get", "create", "delete", "update"]
runners:
privileged: true