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