Sal*_*elo 7 kubernetes kustomize
我正在使用 Kustomize 来管理同一集群的多个变体。我正在使用nameSuffix选项为我的所有资源添加后缀:
nameSuffix: -mysfx
Run Code Online (Sandbox Code Playgroud)
我的问题是一切正常,但仅将此后缀添加到一个服务资源会给我带来问题。我的问题是应用程序(Patroni)与必须调用的服务交互:
CLUSTER-NAME-config
Run Code Online (Sandbox Code Playgroud)
所以我想从nameSuffix. 我知道由于此功能的设计方式,这是不可能的。我在 StackOverflow 和网络上阅读了几篇文章。nameSuffix我知道我可以跳过对一类资源的使用。所以我尝试输入我的kustomization.yaml行:
configurations:
- kustomize-config/kustomize-config.yaml
Run Code Online (Sandbox Code Playgroud)
跳过所有服务资源。然后在文件中kustomize-config/kustomize-config.yaml
nameSuffix:
- path: metadata/name
apiVersion: v1
kind: Service
skip: true
Run Code Online (Sandbox Code Playgroud)
但这行不通。
有谁知道这个配置有什么问题吗?
然后假设我现在可以跳过nameSuffix仅使用服务资源,我还有其他两个服务要添加此后缀。我需要做什么才能添加nameSuffix到这两项服务而不是上面提到的服务?
如果对此有更好的解决方案,请告诉我。
跳过选定的kinds 不起作用,因为此功能尚未实现 - 来自GitHub 问题 519 上的评论。
这也是一个例子它应该是这样的(你尝试过的)
\n基于此评论,它适用于kind明确提到的 s:
\n\n该插件的配置当前面向指定要修改的类型,而忽略其他类型。
\n
另外,根据我执行的一些测试,它只查找kinds,不查找名称或任何内容,因此只能kind包含整个内容。因此,你的问题的第二部分恐怕是不可能的(好吧,使用 kustomize,你可以使用sed例如并修改你需要的一切)。
我创建了一个简单的结构并对其进行了测试:
\n$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cm1.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cm2.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomizeconfig\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 skip-prefix.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pod.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 secret.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 storageclass.yaml\n\n1 directory, 7 files\nRun Code Online (Sandbox Code Playgroud)\n有两个configmap,pod,secret和storageclass,总共5个对象。
\n$ cat kustomization.yaml \n\nnamePrefix: prefix-\nnameSuffix: -suffix\nresources:\n- cm1.yaml\n- cm2.yaml\n- secret.yaml\n- pod.yaml\n- storageclass.yaml\nconfigurations:\n- ./kustomizeconfig/skip-prefix.yaml\nRun Code Online (Sandbox Code Playgroud)\n和配置(明确指定除配置映射之外的所有类型)。它也被称为namePrefix,但它适用于:prefix和suffix:
$ cat kustomizeconfig/skip-prefix.yaml \n\nnamePrefix:\n- path: metadata/name\n apiVersion: v1\n kind: Secret\n- path: metadata/name\n apiVersion: v1\n kind: Pod\n- path: metadata/name\n apiVersion: v1\n kind: StorageClass\nRun Code Online (Sandbox Code Playgroud)\n最终kustomize build .看起来像:
$ kustomize build .\n\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: prefix-local-storage-suffix # modified\nprovisioner: kubernetes.io/no-provisioner\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: cm1 # skipped\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: cm2 # skipped\n---\napiVersion: v1\nkind: Secret\nmetadata:\n name: prefix-secret-suffix # modified\n---\napiVersion: v1\nkind: Pod\nmetadata:\n name: prefix-pod-suffix # modified\nspec:\n containers:\n - image: image\n name: pod\nRun Code Online (Sandbox Code Playgroud)\n另一个潜在的选择是使用PrefixSuffixTransformer插件- 它在指定什么prefix和/或suffix应该添加和fieldSpec在哪里方面的工作方式不同。
请找个例子请在问题 0519_b 的功能测试中
\n另外, StackOverflow 上已经有一个关于使用的很好的答案PrefixSuffixTransformer.
| 归档时间: |
|
| 查看次数: |
7961 次 |
| 最近记录: |