kubernetes - hazelcast helm 模板,我如何传递我的 hazelcast.xml?

标签 kubernetes hazelcast kubernetes-helm

Helm 新手。我必须“注入(inject)”一个特定的 hazelcast.xml进入configMapchart .我应该 --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/

    相关文章:

    spring boot @Cachable 返回填充了空值的父类(super class)的所有字段

    kubernetes - 在K8s中查找pod存在于哪些节点

    kubernetes - 在 kubernetes 中,什么时候在同一节点中复制 pod 才有意义?

    java - hazelcast 从 3.6.5 升级到 3.7.4 的问题

    java - Hazelcast 集群映射配置

    kubernetes-helm - Helm ls : Error: configmaps is forbidden: User "system:serviceaccount:kube-system:tiller"

    amazon-web-services - 存储类的自定义配置程序

    kubernetes - 无法在docker或本地上构建或测试kubernetes

    docker - Kubernetes - 如何制作简单的 Linux 容器镜像而无需永久运行应用程序

    禁止 kubernetes pod/节点