Git 如何使用Kubernetes和Helm为Jenkins Blue Ocean设置SSH密钥
我使用BlueOcean插件设置了一个CI系统 在我的SCM系统(BitBucket服务器)中,我创建了一个Jenkins build用户,并配置了SSH密钥 我想做的是使用SSH密钥引导Jenkins安装,以便在配置BlueOcean管道时,无缝地处理身份验证。实际上,我必须进入我想要构建的存储库,并为BlueOcean生成的SSH密钥添加访问权限。这显然不理想,因为它为要配置的每个构建管道添加了额外的手动步骤 Jenkins Helm图表文档在Git 如何使用Kubernetes和Helm为Jenkins Blue Ocean设置SSH密钥,git,jenkins,kubernetes,kubernetes-helm,jenkins-blueocean,Git,Jenkins,Kubernetes,Kubernetes Helm,Jenkins Blueocean,我使用BlueOcean插件设置了一个CI系统 在我的SCM系统(BitBucket服务器)中,我创建了一个Jenkins build用户,并配置了SSH密钥 我想做的是使用SSH密钥引导Jenkins安装,以便在配置BlueOcean管道时,无缝地处理身份验证。实际上,我必须进入我想要构建的存储库,并为BlueOcean生成的SSH密钥添加访问权限。这显然不理想,因为它为要配置的每个构建管道添加了额外的手动步骤 Jenkins Helm图表文档在values.yaml中指定了一个Agent.v
values.yaml
中指定了一个Agent.volumes
值,该值可用于装载(例如)包含SSH密钥的Kubernetes密钥。但是,这是代理配置,因此可能允许从构建代理(例如,从Jenkins文件)进行SCM身份验证。我要做的是把钥匙引导到詹金斯大师那里
我看到有一个Master.CredentialsXmlSecret
,它允许包含凭证XML文件的Kubernetes机密,但是关于这个的文档很少(或者根本不存在)
有人用这种SSH配置在Kubernetes/Helm上设置Jenkins吗
*编辑:因此,我通过登录Jenkins并手动设置SSH密钥,然后复制生成的
credentials.xml
文件,并通过base64
编码运行它,成功地生成了一个正确的credentials.xml
文件,将其添加为Kubernetes机密,然后将其绑定到Jenkins Helm图表的values.yaml
中的Master.CredentialsXmlSecret
。完成此操作后,我的Jenkins实例加载了credentials.xml
文件(/var/Jenkins\u home/credentials.xml
)。凭据似乎没有正确加载到Jenkins UI中,但我认为我的思路是正确的。您可能可以通过对bitbucket的API调用来设置SSH密钥。类似于API 1.0的内容
$ curl --user <USER>:<PASSWORD> -X POST \
https://bitbucket.org/api/1.0/users/<USER>/ssh-keys \
--data-urlencode "key=<PUBLIC_KEY>" \
--data-urlencode "label=<LABEL>"
curl$user:-X POST\
https://bitbucket.org/api/1.0/users//ssh-keys \
--数据urlencode“键=”\
--数据URL编码“标签=”
文件化或API 2.0:
$ curl -X POST -H "Content-Type: application/json" \
-d '{"key": "ssh-ed25519 ...."}' \
https://api.bitbucket.org/2.0/users/<USER</ssh-keys
$curl-xpost-H“内容类型:application/json”\
-d'{“密钥”:“ssh-ed25519…”\
https://api.bitbucket.org/2.0/users/The 我要走的路径(仍在进行中)是启动Jenkins实例,在UI中手动配置SSH凭据,然后复制/var/Jenkins_home/credentials.xml
文件,通过base64
编码运行它,将其存储为Kubernetes机密,然后将该秘密装载到values.yaml
中的Master.CredentialsXmlSecret
属性。