创建自定义Argo工件类型



每当使用S3工件时,都需要以下声明:

s3:
endpoint: s3.amazonaws.com
bucket: "{{workflow.parameters.input-s3-bucket}}"
key: "{{workflow.parameters.input-s3-path}}/scripts/{{inputs.parameters.type}}.xml"
accessKeySecret:
name: s3-access-user-creds
key: accessKeySecret
secretKeySecret:
name: s3-access-user-creds
key: secretKeySecret

如果这可以抽象为,那将是有帮助的

custom-s3:
bucket: "{{workflow.parameters.input-s3-bucket}}"
key: "{{workflow.parameters.input-s3-path}}/scripts/{{inputs.parameters.type}}.xml"

有没有办法在Argo中进行这种自定义定义,以减少样板?

对于给定的Argo安装,您可以在工作流控制器的configmap中设置默认工件存储库。这将允许您仅指定key(假设您在默认配置中设置了其他所有内容——如果不是所有内容都为默认配置定义,则需要指定更多内容(。

不幸的是,只有当您只使用一个S3配置时,这才会起作用。如果您需要多种配置,减少样板将更加困难。

在回答你的具体问题时:不完全是。不能将自定义some-keyname(如custom-s3(创建为artifacts数组的成员。YAML的确切格式在Argo的工作流自定义资源定义中定义。如果您的工作流YAML与该规范不匹配,它将被拒绝。

但是,在集群中安装YAML之前,您可以使用外部模板工具来填充样板。我以前使用过Helm,通过一组S3配置来做到这一点。最简单地说,您可以使用类似sed的东西。

tl;dr-对于一个S3配置,使用默认的工件配置;对于多个S3配置,请使用模板工具。

相关内容

  • 没有找到相关文章

最新更新