使用 Kustomize 跨多个环境和应用程序进行通用配置

2023-12-01

是否可以有一个在多个环境和应用程序之间共享的通用配置文件(例如 ConfigMap)? 我知道通过多个环境叠加来实现这一点很简单,但是对于应用程序来说,高于它的级别怎么样? 如果我有以下结构:

Base
    App1
        Configmaps
        Kustomization.yaml
    Global
        Configmaps
Overlays
    Env1
        App1
            Configmaps
            Deployments
            Kustomization.yaml
        App2
            Configmaps
            Deployments
            Kustomization.yaml
    Env2.. (same as above)
        App1..
        App2..

是否有可能在所有应用程序中引用一组静态的通用配置值? 在上面的结构中,我只能引用同一文件夹或下面的资源,如果我尝试引用应用程序级别之外的父文件夹中的资源,那么您通常会收到错误,例如“ 错误:AccumulateTarget:rawResources 无法读取资源:从路径 ../../configmaps/base-config.yaml 加载失败:安全;文件“../../configmaps/base-config.yaml”不在“C:\Code\BUILD-ARTEFACTS\deployment-manifests\base\apps\app-ui”中或下方 ”

无论如何,是否可以在父文件夹级别而不是子文件夹中共享通用配置? 否则我最终会在多个应用程序中重复一些设置,这并不理想。


您看到此错误是因为它是为了保护用户免受网络钓鱼攻击。查看这个自定义问题.

来自 kustomize 常见问题解答:安全:文件“foo”不在“bar”中或下方:

v2.0 添加了安全检查,可防止 kustomizations 读取其自己的根目录之外的文件。

这是为了帮助保护那些倾向于从网络下载自定义目录并在不检查的情况下使用它们来控制其生产集群的人(请参阅#693, #700, #995 and #998).

资源(包括配置映射和秘密生成器)仍然可以 通过推荐的最佳实践将它们放置在 具有自己的 kustomization 文件的目录,并引用此 目录作为任何想要使用它的 kustomization 的基础。这 鼓励模块化和可重定位性。

要禁用此功能,请使用 v3 和 load_restrictor 标志:

kustomize build --load_restrictor none $target
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Kustomize 跨多个环境和应用程序进行通用配置 的相关文章

随机推荐