4.3. 为 Git 配置 SSH 身份验证
若要让管道从配置了 SSH 密钥的存储库检索资源,您必须为该管道配置基于 SSH 的身份验证。
要为管道配置基于 SSH 的身份验证,请使用指定存储库的 SSH 私钥中的凭证更新 secret.yaml、serviceaccount.yaml 和 run.yaml 文件。完成此过程后,OpenShift Pipelines 可使用该信息来检索指定的管道资源。
注意
考虑使用基于 SSH 的身份验证而不是基本身份验证。
流程
-
生成 SSH 私钥,或复制通常在
~/.ssh/id_rsa文件中提供的现有私钥。 在
secret.yaml文件中,将ssh-privatekey的值设置为 SSH 私钥文件的内容,并将known_hosts的值设置为已知主机文件的内容。apiVersion: v1 kind: Secret metadata: name: ssh-key1 annotations: tekton.dev/git-0: github.com type: kubernetes.io/ssh-auth stringData: ssh-privatekey:2 known_hosts:3 Important如果省略私钥,OpenShift Pipelines 会接受任何服务器的公钥。
-
可选: 要指定一个自定义 SSH 端口,请在
annotation值的末尾添加:<port number>.例如:tekton.dev/git-0: github.com:2222。 在
serviceaccount.yaml文件中,将ssh-keysecret 与build-bot服务帐户关联。apiVersion: v1 kind: ServiceAccount metadata: name: build-bot1 secrets: - name: ssh-key2 在
run.yaml文件中,将服务帐户与任务运行或管道运行关联。将服务帐户与任务运行关联:
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: build-push-task-run-21 spec: serviceAccountName: build-bot2 taskRef: name: build-push3 将服务帐户与管道运行关联:
apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: demo-pipeline1 namespace: default spec: serviceAccountName: build-bot2 pipelineRef: name: demo-pipeline3
应用更改。
$ oc apply --filename secret.yaml,serviceaccount.yaml,run.yaml