1 回答
TA贡献1851条经验 获得超3个赞
选项1:将文件作为参数传递
工作流程参数通常是一小段文本或数字。但是,如果您的 yaml 文件相当小,您可以对其进行字符串编码并将其作为参数传递。
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-
spec:
entrypoint: test
arguments:
parameters:
- name: yaml
value: "string-encoded yaml"
templates:
- name: test
container:
image: gcr.io/testproj/test:latest
command: [bash]
source: |
# In this case, the string-encoding should be BASH-compatible.
python test.py --config_file_as_string="{{inputs.parameters.message}}"
选项 2:将文件作为工件传递
Argo 支持多种类型的工件。对于您的用例来说,最简单的可能是原始参数类型。
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-
spec:
entrypoint: test
templates:
- name: test
inputs:
artifacts:
- name: yaml
path: /path/to/config.yaml
raw:
data: |
this is
the raw file
contents
container:
image: gcr.io/testproj/test:latest
command: [bash]
source: |
python test.py --config_file_path=/path/to/config.yaml
此外raw,Argo 支持“S3、Artifactory、HTTP 和 [和] Git”工件(我认为还有其他)。
例如,如果您选择使用 S3,您可以从您的 golang 应用程序上传文件,然后将 S3 存储桶和密钥作为参数传递。
Golang 客户端
我对 golang 客户端不熟悉,但是传递参数肯定是支持的,我认为传入原始参数也应该支持。
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报