连接到Gitlab中Kubernetes Executor的kubernetes API

时间:2017-12-05 15:14:03

标签: kubernetes gitlab gitlab-ci gitlab-ci-runner executor

根据https://docs.gitlab.com/runner/executors/kubernetes.html#connecting-to-the-kubernetes-api,我可以从我当前的Gitlab运行程序连接到另一个K8s群集,但问题是他们没有提供有关您做什么或在何处需要指定这些选项的任何信息。

编辑:最后设法在config.toml中指定了这些选项,但是现在我的Gitlab-runner获得一个作业时它会失败,因为它如下:

ERROR: Job failed (system failure): User "system:serviceaccount:test-djg:default" cannot create secrets in project "gitlab" job=17304 project=3128 runner=c36ccf98

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您收到此错误,因为在群集中启用RBAC时,执行程序窗格没有必要的权限才能运行。您应根据自己的设置创建RoleRoleBinding以及ServiceAccount

gitlab-runner项目中有一个pending merge request,其中包含必要的权限以及有关RBAC的其他信息。

但是现在如果你想快速设置,可以通过以下代码段完全访问命名空间。请注意,您需要进行修改以匹配您的设置。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  namespace: gitlab
  name: gitlab-admin
rules:
  - apiGroups: [""] # The API group "" indicates the core API Group.
    resources: ["*"]
    verbs: ["*"]

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: gitlab-admin
  namespace: gitlab
subjects:
  - kind: ServiceAccount # May be "User", "Group" or "ServiceAccount"
    name: default
    namespace: gitlab
roleRef:
  kind: Role
  name: gitlab-admin
  apiGroup: rbac.authorization.k8s.io