Kubernetes-将Release.Namespace设置为values.yaml上的依赖项值

Kubernetes-将Release.Namespace设置为values.yaml上的依赖项值,kubernetes,keycloak,kubernetes-helm,kong,Kubernetes,Keycloak,Kubernetes Helm,Kong,我知道这方面有很多问题,但我没有找到真正的答案 我的掌舵图与另一个掌舵图有依赖关系,我需要用我的.Release.Name和.Release.Namespace覆盖它们的值 我的要求。yaml dependencies: - name: keycloak alias: keycloak-config repository: https://my-repository.com/ version: 1.0.0 - name: kong alias: kong-config rep

我知道这方面有很多问题,但我没有找到真正的答案

我的掌舵图与另一个掌舵图有依赖关系,我需要用我的
.Release.Name
.Release.Namespace
覆盖它们的值

我的要求。yaml

dependencies:
- name: keycloak
  alias: keycloak-config
  repository: https://my-repository.com/
  version: 1.0.0
- name: kong
  alias: kong-config
  repository: https://my-repository.com/
  version: 1.0.0
kong-config:
  websso:
    service:
      fullnameOverride: "my-helm._RELEASE_NAMESPACE_.svc.cluster.local"
      ckngOauth2Opts: "--data config.post_logout_redirect_uri=/_RELEASE_NAME_
                       --data config.logout_path=/_RELEASE_NAME_/logout"
关于我的价值观。yaml

dependencies:
- name: keycloak
  alias: keycloak-config
  repository: https://my-repository.com/
  version: 1.0.0
- name: kong
  alias: kong-config
  repository: https://my-repository.com/
  version: 1.0.0
kong-config:
  websso:
    service:
      fullnameOverride: "my-helm._RELEASE_NAMESPACE_.svc.cluster.local"
      ckngOauth2Opts: "--data config.post_logout_redirect_uri=/_RELEASE_NAME_
                       --data config.logout_path=/_RELEASE_NAME_/logout"
我基本上需要使用
{.Release.Name}
在我有
\u Release\u Name}
的地方和
{.Release.Namespace}
在我有
\u Release\u Namespace}的地方

我已经试过了:

  • {{.Release.Name}
    {{.Release.Namespace}
  • $RELEASE\u名称
    $RELEASE\u名称空间
  • ${RELEASE\u NAME}
    ${RELEASE\u NAMESPACE}
但什么都不管用

注意,我确实需要在
values.yaml
中访问这些值。我没有访问依赖项代码的权限来更改和设置该代码的值


我该如何解决这个问题呢?

虽然头盔本身似乎不能做到这一点,但它可以通过自身或使用自身来实现。我将展示
prepare
hook,因为它要短得多

发布:
-姓名:kong config
图表:无论如何/香港
版本:1.0.0
价值观:
-./generated-values.yaml
挂钩:
-事件:[“准备”]
命令:bash
args:
--c
- |
printf'webso:\n服务:\n fullnameOverride:my helm.{{{{.Release.Namespace}}}}}}.svc.cluster.local\n'>generated-values.yaml

虽然头盔本身似乎不能做到这一点,但它可以通过自身或使用自身的。我将展示
prepare
hook,因为它要短得多

发布:
-姓名:kong config
图表:无论如何/香港
版本:1.0.0
价值观:
-./generated-values.yaml
挂钩:
-事件:[“准备”]
命令:bash
args:
--c
- |
printf'webso:\n服务:\n fullnameOverride:my helm.{{{{.Release.Namespace}}}}}}.svc.cluster.local\n'>generated-values.yaml

我解决了这个问题,在掌舵图之外执行了一个额外的命令。因为我有一个
Makefile
文件用于我的项目构建过程,在这里我可以为构建的多个阶段运行一些脚本。因此,我将此命令添加到部署阶段:

sed -i "s/_RELEASE_NAMESPACE_/$(NAMESPACE)/g" $(MODULE_PATH)/chart/values.yaml

这适用于某些工具中的生成工作流。但是,当我想在某个地方手动安装头盔图表时,这是无法完成的,我需要用服务器值手动更改该值。

我解决了这个问题,在头盔图表之外执行了一个附加命令。因为我有一个
Makefile
文件用于我的项目构建过程,在这里我可以为构建的多个阶段运行一些脚本。因此,我将此命令添加到部署阶段:

sed -i "s/_RELEASE_NAMESPACE_/$(NAMESPACE)/g" $(MODULE_PATH)/chart/values.yaml

这适用于某些工具中的生成工作流。但是当我想在某个地方手动安装我的头盔图表时,这是无法完成的,我需要用服务器值手动更改该值。

如果图表作者特别允许,您只能在
values.yaml
文件中使用变量引用(或其他模板语法)。如果你无法控制所包含的图表,那么这是不可能的。概念上非常相似。如果图表作者特别允许,您只能在
values.yaml
文件中使用变量引用(或其他模板语法)。如果你无法控制所包含的图表,那么这是不可能的。在概念上非常相似。