我正在使用argo来编排我的工作流程。我有许多python任务之一接受nargs作为参数,我试图弄清楚如何从配置Map传递+nargs。
对于每一个工作流作业,我计划有一个不同的NARG Map,其中的narg参数可能会有所不同。
例如,其中一个作业可能具有market_app.py --buy_fruits apple pear
,另一个作业可能具有market_app.py --buy_fruits blueberry raspberry strawberry
当我的argo yaml试图从配置Map中读取它时,它被读取为一个字符串,而不是传递到配置键值中的许多字符串,并且它不会将其加载为一个列表,这通常是默认情况下从命令行传递时处理的。
这就是我的WPMap键/值对的样子:buy_fruits: apple pear
个
我的部署yaml会有
- name: go-to-market
container:
args:
- '--buy_fruits'
- '{{inputs.parameter.fruits}}'
command:
["python",'-m',"market_app"]
inputs:
parameters:
- name: fruits
valueFrom:
configMapKeyRef:
name: market-config
key: buy_fruits
字符串
当我的应用程序启动时,它应该将配置加载为[“apple”,“pear”],而在上面的示例中,它的加载为[“apple pear”]
我当然可以改变我的应用程序读取它的方式,但我不会仅仅为了让它从MapMap中读取而改变我的代码。
2条答案
按热度按时间5us2dqdw1#
你确定这不是Python脚本吗?
我想如果你有Python中的
["apple pear"]
,你可以做:字符串
iyfjxgzm2#
如果你在
args
中传递值。arg列表中的每个元素都将被视为single string
。我们可以通过避免args
来克服这种行为。我使用下面的python脚本进行验证。test.py
个字符串
deployment.yaml
个型
ConfigMap
个型
Pod logs
个型