只是目前正在与kustomize的问题斗争,没有太多的期待。
我有我的配置设置,并使用kustomize(v4.5.7)有单独的基础,变体和环境配置。我试图使用设置部署我的开发环境的副本到同一个集群使用不同的命名空间和后缀。
其思想是,所有内容都将使用名称的后缀进行部署(并使此工作正常进行,但它只处理名称,而不处理名称空间),并将它们放入带有后缀的单独名称空间中。
我目前正在使用以下配置定义所有命名空间:
apiVersion: v1
kind: Namespace
metadata:
name: mynamespace
现在,我希望能够部署名为mynamespace-mysuffix
的NS拷贝
我已经设法为对象名称实现了一个后缀,并使用了一个PrefixSuffixTransformer
,以便将创建的对象中的名称空间更新为mynamespace-mysuffix
不幸的是,这并没有更新名称空间的配置,而是保持不变。简而言之,它试图将对象部署到不存在的名称空间中。
这是修改在各种对象中设置的命名空间的工作PrefixSuffixTransformer
:
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: customSuffixer
suffix: "-mysuffix"
fieldSpecs:
- path: metadata/name
- path: metadata/namespace
尝试使用以下附加PrefixSuffixTransformer定位命名空间对象失败
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: nsSuffixer
suffix: "-mysuffix"
fieldSpecs:
- kind: Namespace
path: metadata/name
我希望最后这部分能起作用,但没有成功。有人对我如何用后缀创建额外的命名空间有什么建议吗?
1条答案
按热度按时间hl0ma9xz1#
如果我没有理解错您的问题,那么解决方案就是在变量中的
kustomization.yaml
文件中添加一个namespace:
声明。例如,如果我有一个
base
目录,其中包含:namespace.yaml
service.yaml
kustomization.yaml
我在
overlays/example
中创建了一个变量,它是kustomization.yaml
:则运行
kustomize build overlays/example
会得到:正如您在问题中所描述的,Namespace资源没有被
nameSuffix
配置重命名。然后,我得到了所需的输出: