jenkins - 具有多个命名空间的 Kubernetes 集群上下文

标签 jenkins kubernetes pipeline devops

我有一个庞大的管道,包含具有多个权限级别的不同开发人员组。(用于使用 Jenkins Kubernetes 插件。)

例如,QA团队和开发人员团队在 kubernetes 集群中拥有不同的服务帐户。

因此,我需要与 kubernetes 集群创建一些连接,但每个连接我都会使用命名空间 name 更改集群的上下文。

我想在 kubernetes context 中使用多个命名空间。 这是我自己的 kubernetes 上下文文件。

- context:
cluster: minikube
namespace: user3
user: minikube

如何通过 kubernetes api 调用或在 yaml 文件中处理此问题? 这是我的示例服务帐户 yaml 文件。

 apiVersion: v1
 kind: ServiceAccount
 metadata:
  name: dev

 kind: Role
 apiVersion: rbac.authorization.k8s.io/v1beta1
 metadata:
   name: dev

 rules:
  - apiGroups: [""]
  resources: ["pods"]
 verbs: ["create","delete","get","list","patch","update","watch"]
 - apiGroups: [""]
 resources: ["pods/exec"]
   verbs: ["create","delete","get","list","patch","update","watch"]
 - apiGroups: [""]
  resources: ["pods/log"]
 verbs: ["get","list","watch"]
 - apiGroups: [""]
 resources: ["secrets"]
 verbs: ["get"]

 apiVersion: rbac.authorization.k8s.io/v1beta1
 kind: RoleBinding
 metadata:
 name: dev

  roleRef:
  apiGroup: rbac.authorization.k8s.io
   kind: Role
  name: dev
subjects:
  - kind: ServiceAccount
    name: dev

最佳答案

如果您希望一个 jenkins 使用不同的服务帐户与 kubernetes API 进行通信,您需要在配置中创建多个 Jenkins“云”,每个云都有不同的凭据。然后在您的管道中设置“云”选项以选择正确的

关于jenkins - 具有多个命名空间的 Kubernetes 集群上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52030831/

相关文章:

git - 如何仅在 pull 请求时在 Jenkins 中运行阶段?

tomcat - Jenkins 网络应用程序部署

docker - Kubernetes Pod上没有出站网络

kubernetes - 无法从外部访问入口 Controller NodePort

python - 如何在 python 中使用 GridSearchCV 以及管道和超参数

d3.js - 什么是 d3.geo.pipeline?

svn - 我如何在 jenkins 中列出带有登录用户凭据的 svn 文件夹以获取构建参数?

kubernetes - 无法在 openshift 3.11 中更新节点导出器的 tls-cipher-suites

jenkins - 如何将 Jenkins 构建步骤限制为仅给定的变更集?

jenkins - 从Jenkins将多个Gradle Artifactory 上传到Artifactory