Kubernetes 使用Kustomize跨多个环境和应用程序进行通用配置
是否可以有一个跨多个环境和应用程序共享的公共配置文件(如ConfigMap)? 我知道跨多个环境覆盖层进行操作很简单,但对于应用程序来说,在其上设置一个级别如何? 如果我有以下结构:Kubernetes 使用Kustomize跨多个环境和应用程序进行通用配置,kubernetes,kustomize,Kubernetes,Kustomize,是否可以有一个跨多个环境和应用程序共享的公共配置文件(如ConfigMap)? 我知道跨多个环境覆盖层进行操作很简单,但对于应用程序来说,在其上设置一个级别如何? 如果我有以下结构: Base App1 Configmaps Kustomization.yaml Global Configmaps Overlays Env1 App1 Configmaps De
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..
是否有可能创建一组通用配置值的静态集合,这些值是跨所有应用程序引用的?
在上述结构中,我只能引用同一文件夹或以下文件夹中的资源,如果我尝试引用应用程序级别之外的父文件夹中的资源,则通常会出现如下错误“
错误:AccumerateTarget:rawResources无法读取资源:从路径加载.././configmaps/base-config.yaml失败:安全;文件“../../configmaps/base-config.yaml”不在“C:\Code\BUILD-artifacts\deployment manifests\base\apps\app ui”中或以下
"
是否在父文件夹级别而不是子文件夹中共享公共配置?
否则,我会在多个应用程序中重复某些设置,这并不理想。您会看到此错误,因为它是用来保护用户免受网络钓鱼攻击的。退房 来自kustomize常见问题解答: v2.0添加了一个安全检查,防止Kustomization读取其自身目录根以外的文件 这有助于保护倾向于从web下载kustomization目录的人,并在未经检查的情况下使用这些目录来控制其生产集群(请参阅和) 资源(包括configmap和机密生成器)仍然可以 通过推荐的最佳实践将其放置在 目录中有自己的kustomization文件,并引用此 目录作为任何想要使用它的kustomization的基础。这 鼓励模块化和可重新定位 要禁用此功能,请使用v3和load_restrictor标志:
kustomize build --load_restrictor none $target
是的,这正是我想要的,因为我可以在应用程序之间共享通用的全局配置。Thanks@Rubans我有类似的要求,只是好奇你是如何从特定应用的覆盖层访问基础的,例如在app1的覆盖层中,你如何知道基础层必须上升到某个级别,以及要转到哪个文件夹,app1是硬编码的?@cheddarDev app1引用基础层,当我运行命令进行构建时,我的目标是App1 kustomization.yaml的覆盖层。每个应用程序的Kustomization将引用基本Kustomization。yaml@Rubans明白了,我能让它运转起来。谢谢!