Kubernetes 为Gitlab runner指定K8s namesapce
我有一个使用K8s执行器的Gitlab runner。但是,当运行管道时,我得到了以下错误Kubernetes 为Gitlab runner指定K8s namesapce,kubernetes,continuous-integration,gitlab,Kubernetes,Continuous Integration,Gitlab,我有一个使用K8s执行器的Gitlab runner。但是,当运行管道时,我得到了以下错误 Checking for jobs... received job=552009999 repo_url=https://gitlab.com/deadbug/rns.git runner=ZuT1t3BJ WARNING: Namespace is empty, therefore assuming 'default'. job=552009999 pro
Checking for jobs... received job=552009999
repo_url=https://gitlab.com/deadbug/rns.git runner=ZuT1t3BJ
WARNING: Namespace is empty, therefore assuming 'default'. job=552009999 project=18763260
runner=ThT1t3BJ
ERROR: Job failed (system failure): secrets is forbidden: User "deadbug" cannot create resource
"secrets" in API group "" in the namespace "default" duration=548.0062ms job=552009999
从错误消息中,我发现名称空间需要更新。我在Gitlab变量中指定了名称空间
但在此之后,管道也会失败,并显示上述错误消息。如何更改运行程序的命名空间?这似乎与服务帐户的权限有关,而不是直接与命名空间有关。如果使用GitLab的Kubernetes集成,则不应重写名称空间,因为GitLab将为您创建一个名称空间 确保添加到GitLab的服务帐户具有正确的角色。发件人: 当GitLab创建集群时,会在默认命名空间中创建一个具有集群管理员权限的GitLab服务帐户来管理新创建的集群
你可能和我有同样的问题。我没有使用
helm install
将Gitlab Runner安装到现有的Kubernetes集群中,而是使用helm template
和另一个管理器来安装它()。这破坏了Helm模板中的逻辑,该模板将名称空间指定为Helm安装中使用的名称空间。这导致运行程序尝试在default
名称空间中创建pod,而不是我创建的名称空间。我可以在我的values.yml
文件中手动指定它,不过:
runners:
namespace: my-namespace
是的,我完全同意。这是RBAC问题,而不是名称空间问题