2

目前,我正在尝试确保默认管道帐户能够git-clone在 Tekton 管道中执行 ClusterTask。使用以下 yaml,可以成功执行任务(repo 被拉取):

apiVersion: v1
kind: ServiceAccount
metadata:
  name: pipeline
secrets
  - name: git-secret

但是,当我在 OpenShift 模板中使用相同的配置时,例如:

apiVersion: v1
kind: Template
metadata:
  name: test-template
objects:
  - apiVersion: v1
    kind: Secret
    type: kubernetes.io/ssh-auth
    metadata:
      name: git-secret
      annotations:
        tekton.dev/git-0: bitbucket.org
    data:
      ssh-privatekey: ${GIT_SSH_KEY}

  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: pipeline
    secrets
      - name: git-secret

该密钥未与 ServiceAccount 链接,因此拉取失败。我试图给秘密以下注释:

kubernetes.io/service-account.name: pipeline

但这也无济于事。在模板中创建新的 ServiceAccount(例如pipeline-with-secret)时,一切正常。此外,当手动链接秘密时,它也很有效。但是,我希望模板正确设置链接以避免手动进行链接。这让我想知道:是否可以将秘密链接到默认创建的 ServiceAccount?

OpenShift 版本:4.5.19

谢谢。

4

1 回答 1

0

你快到了,

问题是您错过了参数,请参阅下面的最后一部分:

apiVersion: v1
kind: Template
metadata:
  name: test-template
objects:
  - apiVersion: v1
    kind: Secret
    type: kubernetes.io/ssh-auth
    metadata:
      name: git-secret
      annotations:
        tekton.dev/git-0: bitbucket.org
    data:
      ssh-privatekey: ${GIT_SSH_KEY}

  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: pipeline
    secrets
      - name: git-secret
parameters:
- name:  GIT_SSH_KEY
  displayName: SSH Private Key
  description: SSH Private key to use for openshift pipelines
  required: true
  value: ssh-private-key...

请参阅此处的模板参数部分

老实说,我讨厌模板,更喜欢 helm 作为标准。

于 2021-01-18T20:24:19.870 回答