tit*_*nic 1 kubernetes kustomize
我有一个巨大的补丁文件,我想将其应用于特定的叠加层。我通常会按照预期的方式在覆盖层下修补文件。但文件是相同的,我不想将其复制到每个覆盖层。如果我可以将我的补丁文件保存app-new-manifest.yaml在基础下,并在覆盖下用一行 in 修补它kustomization.yaml,那就太棒了。
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app-new-manifest.yaml # I am trying to patch this\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.yaml\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 overlay\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 environment1\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml # I want to patch app-new-manifest.yaml in base\n \xe2\x94\x82\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 environment2\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml # No patch. app.yaml will be as is\n \xe2\x94\x82\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 environment3\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml # I want to patch app-new-manifest.yaml in base\nRun Code Online (Sandbox Code Playgroud)\n当我尝试这样做时,我收到此错误:
\n'/base/app/app-new-manifest.yaml' is not in or below '/overlays/environment1'\nRun Code Online (Sandbox Code Playgroud)\n这意味着,当您修补时,修补程序文件必须位于覆盖层而不是基础层下。有什么解决方法可以做到这一点吗?因为将相同的文件复制到每个环境对我来说没有意义。
\n任何有关此的想法都将受到高度赞赏,谢谢!
\n编辑:
\n添加 /base/app/kustomization.yaml
\nresources:\n - app.yaml\nRun Code Online (Sandbox Code Playgroud)\n添加 /overlays/environment1/kustomization.yaml
\napiVersion: kustomize.config.k8s.io/v1beta1\nkind: Kustomization\n\nresources:\n - ../../base/app\n\npatchesStrategicMerge:\n - ../../base/app/app-new-manifest.yaml # Patch new manifest\nRun Code Online (Sandbox Code Playgroud)\n定制版本:
\n{Version:kustomize/v4.2.0 GitCommit:d53a2ad45d04b0264bcee9e19879437d851cb778 BuildDate:2021-07-01T00:44:28+01:00 GoOs:darwin GoArch:amd64}\nRun Code Online (Sandbox Code Playgroud)\n
您不能包含当前目录之外的文件,但可以包含具有kustomize.yaml文件的另一个目录。因此,像这样组织你的布局:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 overlay\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 patched_based\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 environment1\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 environment2\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 environment3\nRun Code Online (Sandbox Code Playgroud)\n在 中overlay/patched_base,放置补丁文件和 kustomization 文件,例如:
resources:\n - ../base\n\npatchesStrategicMerge:\n - app-new-manifest.yaml\nRun Code Online (Sandbox Code Playgroud)\n在overlay/environment1和 中overlay/environment3,您有:
resources:\n - ../patched_base\nRun Code Online (Sandbox Code Playgroud)\n而在 中overlay/environment2,您有:
resources:\n - ../../base\nRun Code Online (Sandbox Code Playgroud)\n我认为这可以解决您的所有要求:
\n| 归档时间: |
|
| 查看次数: |
5324 次 |
| 最近记录: |