1

我想配置我的 tekton 管道以使用 S3 工作区 tekton 官方文档https://tekton.dev/docs/getting-started/有一个部分说要删除 config-artifact-pvc configMap 并将其替换为 config-artifact-bucket带有 Aws 密钥和密钥的 configMap。我遵循了这个过程但是每次我创建一个管道它仍然使用 PVC

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-artifact-bucket
  namespace: tekton-pipelines
data:
  location: s3://mybucket
  bucket.service.account.secret.name: tekton-storage
  bucket.service.account.secret.key: boto-config
  bucket.service.account.field.name: BOTO_CONFIG
apiVersion: v1
kind: Secret
metadata:
  name: tekton-storage
  namespace: tekton-pipelines
type: kubernetes.io/opaque
stringData:
  boto-config: |
    [Credentials]
    aws_access_key_id = xxxx
    aws_secret_access_key = xxxx
    [s3]
    host = xxxx
    [Boto]
    https_validate_certificates = False

在我将 tekton 配置为将 s3 存储桶用于我的工作区之前,是否需要设置自定义 s3 存储类

我的管道运行仍然使用声明模板来备份我的工作区。如何将其更改为使用 s3 存储桶?

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: hello-
spec:
  pipelineRef:
    name: hello
  workspaces:
    - name: output
      volumeClaimTemplate:
        spec: 
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Gi

是否有由 s3 支持的任务运行或管道运行的示例?

4

1 回答 1

0

问题在于volumeClaimTemplate定义的方式。如果您运行kubectl get storageclass并查看名称列,您会注意到其中包含文本(default)。在没有声明存储类的情况下,将选择默认值。要解决此问题,请设置spec.workspaces.volumeClaimTeamplte.spec.storageClassName字段。

我正在使用 IBM Cloud(例如),所以我会(使用 的输出kubectl get storageclass)设置storageClassName"ibmc-s3fs-standard-regional"

workspaces:
  - name: output
    volumeClaimTemplate:
      spec: 
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: "ibmc-s3fs-standard-regional"
于 2021-06-11T17:35:09.350 回答