Проблема аутентификации: сбой задания GitLab CI / CD при запуске «kubectl apply -f deploy.yaml» - PullRequest
0 голосов
/ 02 марта 2020

Я получаю эту ошибку: forbidden: User "system:anonymous" cannot get path "/openapi/v2": No policy matched.

Кажется, что это происходит здесь:

I0302 15:57:33.593662      44 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf" -H "User-Agent: kubectl/v1.17.3 (linux/amd64) kubernetes/06ad960" -H "Authorization: Basic YWRxxxxxxxxxxxxxxxxxxxxxx2lm" 'https://<IP>/openapi/v2?timeout=32s'
I0302 15:57:33.767657      44 round_trippers.go:443] GET https://<IP>/openapi/v2?timeout=32s 403 Forbidden in 173 milliseconds

Пользователь, которого следует использовать, насколько я понимаю, был создан путем применения этот yaml через kubectl:

apiVersion: v1
kind: Namespace
metadata:  
  name: gitlab-managed-apps
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gitlab-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: gitlab-admin
  namespace: gitlab-managed-apps

В проекте GCP также есть служебная учетная запись с разрешениями Kubernetes Engine Developer.

Поэтому я понятия не имею, почему до сих пор не определен пользователь / связано. Я надеюсь, что вы можете мне помочь!

1 Ответ

1 голос
/ 03 марта 2020

После нескольких попыток я обнаружил, что что-то перепутал с контекстами. Я посмотрел на файл KUBECONFIG, когда понял неправильную конфигурацию.

Неправильный контекст, который использовался для связи с Kubernetes, приводит к проблеме, описанной выше.

Вы можете следовать описание из этого ответа , чтобы проверить, используете ли вы правильный контекст.

Вот что я сделал для решения проблемы:

  1. Я проверил файл конфигурации:
    • kubectl config view

Я заметил, что установка текущего контекста указывает на неправильный контекст!

Затем я установил контекст, который должен был использоваться:
  • kubectl config get-contexts
  • kubectl config set-context NAME
  • kubectl config use-context CONTEXT_NAME

Здесь вы можете найти шпаргалку , которая мне очень полезна.

...