我有一个简单的图表结构:
chart1
-templates
-deployment.yaml
-configmap.yaml
-service.yaml
chart2
-templates
-deployment.yaml
-configmap.yaml
-service.yaml
redis
-templates
-deployment.yaml
-service.yaml现在,chart2依赖于redis,需要运行它。chart1同时依赖于redis和chart2。(基本上,它们都是使用redis存储信息的服务,chart1向chart2发送请求)。
当我安装chart2时,这一切都很好,但是如果我安装chart1,它将尝试同时安装它的redis和redis,这是chart2的子图(这是相同的redis)。
因此,为了防止这种冲突,我使用一个标记来阻止第二个redis的安装,所以通过安装chart1,我还安装了chart2和一个redis实例。
问题是,chart2需要知道redis服务的名称(假设它可以通过安装动态创建),而且我无法从chart2访问它。
我使用模板"redis.fullname“来命名redis的所有资源。chart1可以访问此模板,因为redis是它安装时的子图(使用.Subcharts.redis),但在本例中它不是chart2的子图,因此chart2无法访问"redis.fullname“,因此不能在其configmap中使用正确的服务名称。
我希望我在描述这个问题时讲得通。有什么解决办法吗?
发布于 2022-04-13 19:54:45
如果您控制了图表中的代码,则可以使用全局值:https://helm.sh/docs/chart_template_guide/subcharts_and_globals/
https://stackoverflow.com/questions/71860445
复制相似问题