首页 > 解决方案 > 在 Jenkins 中隔离管道的秘密

问题描述

我们正在 Jenkins 中实施类似 CI/CD 的 GitOps。我们在哪里部署到 Openshift/Kubernetes。为简单起见,假设我们只有 2 个存储库:

  1. 首先是应用程序源代码,在定义构建的源代码中还有 Jenkinsfile。(这也将图像推送到存储库。)

  2. 我们有第二个存储库,其中定义了部署管道(jenkinsfile)。此管道将映像部署到生产环境(想想“kubectl apply”)。

问题是管道 (2) 需要访问用于对产品进行身份验证(针对 kubernetes api)的凭据。我们考虑将这些凭据存储在 Jenkins 中。我们不希望在同一个 Jenkins 中的第一个 (1) 管道能够访问这些生产凭证。

我们如何用 Jenkins 解决这个问题?(如何存储这些凭据)

谢谢你

标签: jenkinsjenkins-pipelinedevops

解决方案


只是为了从评论中捕捉到,@ RRT在另一个线程(https://stackoverflow.com/a/42721809/9705485)中有一个有效的答案:

使用文件夹和凭据绑定插件,您可以在文件夹级别定义仅可用于此文件夹内的作业的凭据。创建文件夹后,文件夹级存储将变为可用。

来源: https: //support.cloudbees.com/hc/en-us/articles/203802500-Injecting-Secrets-into-Jenkins-Build-Jobs

添加范围凭据的另一个示例(这个用于 dockerhub 凭据)是https://liatrio.com/building-docker-jenkins-pipelines/


推荐阅读