Вариант 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: передать файл как артефакт
Ar go поддерживает несколько типов артефактов . Возможно, самым простым для вашего случая использования является тип raw * * * * * *.
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
, Ar go поддерживает "S3, Artifactory, HTTP, [and] Git "Артефакты (среди прочего, я думаю).
Если, например, вы решили использовать S3, вы можете загрузить файл из приложения golang, а затем передать ведро и ключ S3 в качестве параметров.
Golang client
Я не знаком с golang клиентом, но передача параметров, безусловно, поддерживается, и я думаю, передача в необработанном параметре должна поддерживаться также.