Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何使用Kubernetes和Helm为Jenkins Blue Ocean设置SSH密钥_Git_Jenkins_Kubernetes_Kubernetes Helm_Jenkins Blueocean - Fatal编程技术网

Git 如何使用Kubernetes和Helm为Jenkins Blue Ocean设置SSH密钥

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

我使用BlueOcean插件设置了一个CI系统

在我的SCM系统(BitBucket服务器)中,我创建了一个Jenkins build用户,并配置了SSH密钥

我想做的是使用SSH密钥引导Jenkins安装,以便在配置BlueOcean管道时,无缝地处理身份验证。实际上,我必须进入我想要构建的存储库,并为BlueOcean生成的SSH密钥添加访问权限。这显然不理想,因为它为要配置的每个构建管道添加了额外的手动步骤

Jenkins Helm图表文档在
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
属性。