права на деплой только в определенные NS
Создал сервис аккаунт
kubectl create serviceaccount test-gitlab-runner -n test
Ну и создал такого плана бинды в нейспэйсах
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: test-gitlab-runner
namespace: test
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: edit
subjects:
- kind: ServiceAccount
name: "test-gitlab-runner"
Но работает только в том неймспэйсе где задеплоин ранер, вопрос можно ли сделать так как я хочу и если да то что делаю не так ??
Раннер авторизуется в СервисАккаунт. СервисАккаунт привязан к роли. Роль у тебя глобальная, на уровне кластера. А вот Binding - уровня Namespace.
Так я их несколько создаю
Тогда смотри саму роль, какие ресурсы ей можно трогать.
Я же бинжу сервисный аккаунт к кластер роли, в одном нэймспэйсе работает, в другом нет
СервисАккаунт - сущность из Неймспейса. И работает только там, где был задан.
Я создал одинаковые в разных неймспэсах
Тогда на стороне К8с проблем не должно быть. Проверь, с каким СервисАккаунтом авторизуется твой раннер. Есть подозрение, что один и тот же.
А переопределить variables: KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: ci-service-account
Не понял ?
Ну для чего ты сделаешь переопределение?
Что бы заюзать нужный из другого неймспэса
Вот такую таску запускаю
А конфиг какой для kubectl?
> This approach allows you to specify a service account that is attached to the namespace Так можно только переопределять сервис-аккаунты в рамках одного неймспейса. В твоём случае раннер будет всегда попадать в один и тот же неймспейс, а именно неймспейс раннера.
А если вот так ? KUBERNETES_NAMESPACE_OVERWRITE:
> The Pods spawned by the runner will take place on the overwritten namespace, for simple and straight forward access between containers during the CI stages. Уже теплее :)
Все равно не работает ((
Есть доступ в кластер? Первым делом проверить, в какой Namespace попадает Pod раннера.
Можно юзать ClusterRoleBinding вместо RoleBinding. Это позволит раннеру, не выходя из своего неймспейса, "химичить" на уровне всего кластера. Но тут уже вопрос Security
Обсуждают сегодня