Helm 新手。我必须“注入(inject)”一个特定的 hazelcast.xml
进入configMap
与 chart .我应该 --set
hazelcast.configurationFiles
我尝试了几种方法:
helm install stable/hazelcast --set cluster.memberCount=3 --set hazelcast.configurationFiles[0].val="$(cat k8s/hazelcast.xml)"
helm install --name=ciao stable/hazelcast --set cluster.memberCount=3 --set hazelcast.configurationFiles[0]="\{ key: hazelcast.xml, val:$(cat k8s/hazelcast.xml) \}"
helm install --name=ciao stable/hazelcast --set cluster.memberCount=3 --set hazelcast.configurationFiles[0]="$(cat k8s/hazelcast.xml)"
它们都不起作用,我无法找到或理解如何正确地做到这一点。
我希望我得到
configMap
正确配置应该是:apiVersion: v1
kind: ConfigMap
metadata:
name: hazelcast-configuration
data:
hazelcast.xml: |-
<?xml version="1.0" encoding="UTF-8"?>........
而不是这个(使用 try nr 3 获得的最接近的结果):
data:
"0": |-
<?xml version="1.0" encoding="UTF-8"?>
最佳答案
关注 README例子
您需要取消注释值上的 configurationFiles 并粘贴您自己的 xml 文件内容:
configurationFiles:
hazelcast.xml: |-
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.10.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property name="hazelcast.discovery.enabled">true</property>
</properties>
<network>
<join>
<multicast enabled="false"/>
<tcp-ip enabled="false" />
<discovery-strategies>
<discovery-strategy enabled="true" class="com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy">
</discovery-strategy>
</discovery-strategies>
</join>
</network>
<management-center enabled="${hazelcast.mancenter.enabled}">${hazelcast.mancenter.url}</management-center>
<!-- Custom Configuration Placeholder -->
</hazelcast>
但如果您不想在
values.yaml
中添加内容您可以使用。 File 获取同一路径下文件的内容configurationFiles:
hazelcast.xml: |-
{{ .Files.Get "hazelcast.xml" | indent 4}}
Template guide
记住可以复制原版
values.yaml
从图表中使用-f
指定您自己的值,而不是使用 --set
每次。
关于kubernetes - hazelcast helm 模板,我如何传递我的 hazelcast.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890980/