Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes Helm定义多行初始化容器命令_Kubernetes_Kubernetes Helm_Go Templates - Fatal编程技术网

Kubernetes Helm定义多行初始化容器命令

Kubernetes Helm定义多行初始化容器命令,kubernetes,kubernetes-helm,go-templates,Kubernetes,Kubernetes Helm,Go Templates,我正在尝试组织我的图表,并将所有initContainers迁移到名为chart\u scripts.tlp的助手中 我在代理部署中有一个initContainers步骤。yaml正在等待我的代理服务进行如下初始化: #此init容器将等待至少一个代理就绪后再继续 #通过部署代理服务的其余部分 -名称:等待代理就绪 图像:“{.Values.image.repository}}:{{.Values.image.tag}” imagePullPolicy:{{.Values.image.pullP

我正在尝试组织我的图表,并将所有
initContainers
迁移到名为chart\u scripts.tlp的助手中

我在代理部署中有一个
initContainers
步骤。yaml正在等待我的代理服务进行如下初始化:

#此init容器将等待至少一个代理就绪后再继续
#通过部署代理服务的其余部分
-名称:等待代理就绪
图像:“{.Values.image.repository}}:{{.Values.image.tag}”
imagePullPolicy:{{.Values.image.pullPolicy}}
命令:[“bash”,“-c”]
args:
- >-
对于{0..10}中的i;做
broker_pods=“$(nslookup-timeout=10{{{template”service.fullname.}}}-{{.Values.broker.component}}}}| grep Name | wc-l)”
如果[${broker_pods}-ge 1]];然后
打破
fi
睡眠30分钟;
完成;
我正试图这样重写它:

#此init容器将等待至少一个代理就绪后再继续
#通过部署代理服务的其余部分
-名称:等待代理就绪
图像:“{.Values.image.repository}}:{{.Values.image.tag}”
imagePullPolicy:{{.Values.image.pullPolicy}}
命令:[“bash”,“-c”]
args:
- >-
{{template“service.waitBrokerReady”}
我有以下名称模板\u scripts.tlp

{{/*
等待至少一个代理实例初始化
*/}}
{{define“service.waitBrokerReady”}
对于{0..10}中的i;做
broker_pods=“$(nslookup-timeout=10{{{template”service.fullname.}}}-{{.Values.broker.component}}}}| grep Name | wc-l)”
如果[${broker_pods}-ge 1]];然后
打破
fi
睡眠30分钟;
完成;
{{-end}
不幸的是,事实上这是一个多行命令,并且存在空间划分,我看到将YAML转换为JSON:YAML时出现
错误


我尝试了使用
printf
的几种变体,但不确定如何传递嵌套模板,并且经常在(service/templates/_functions.tpl:6)处看到
错误:parse Error:“-p”在命令中

以下解决方案似乎对我有效:

\u scripts.tlp

{{/*
等待至少一个代理实例初始化
*/}}
{{-define“service.waitBrokerReady”}
- >-
对于{0..10}中的i;做
broker_pods=“$(nslookup-timeout=10{{{template”service.fullname.}}}-{{.Values.broker.component}}}}| grep Name | wc-l)”
如果[${broker_pods}-ge 1]];然后
打破
fi
睡眠30分钟;
完成;
{{-end-}
代理部署。yaml

#此init容器将等待至少一个代理就绪后再继续
#通过部署代理服务的其余部分
-名称:等待代理就绪
图像:“{.Values.image.repository}}:{{.Values.image.tag}”
imagePullPolicy:{{.Values.image.pullPolicy}}
命令:[“bash”,“-c”]
args:
{-包括“pulsar.waitBrokerReady”{缩进10}
起初,我无法找出include不起作用的原因,因此我使用了
squote
命令的组合来确定对齐方式,然后您可以添加
replace
来检查模板是否实际起作用:

`{-包括“pulsar.waitbrokerrady”{squote}缩进10}替换“''''''''''}

一旦完成模板,您就可以删除
squote
replace