2

我一直在尝试修补由 kops 插件(Ebs 驱动程序)声明和应用的部署。

不幸的是,在尝试了各种修补策略之后,我似乎无法修补在我的文件夹结构中没有声明基础的资源。

请注意,我在顶部使用 FluxCD 进行协调,在推送补丁时看不到此资源的任何更改。

这是我想要更改的 Kops 自动生成和应用的部署的摘录:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    addon.kops.k8s.io/name: aws-ebs-csi-driver.addons.k8s.io
    addon.kops.k8s.io/version: 1.0.0-kops.1
    app.kubernetes.io/instance: aws-ebs-csi-driver
    app.kubernetes.io/managed-by: kops
    app.kubernetes.io/name: aws-ebs-csi-driver
    app.kubernetes.io/version: v1.0.0
    k8s-addon: aws-ebs-csi-driver.addons.k8s.io
    **super: unpatched**
  name: ebs-csi-controller
  namespace: kube-system

我的自定义文件:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: flux-system
patches:
- target:
    kind: Deployment
    name: ebs-csi-controller
    namespace: kube-system
  path: patch-ebs.yaml

和实际的补丁-ebs.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ebs-csi-controller
  namespace: kube-system
  labels:
    super: patched

还尝试使用 Json 补丁 patch-ebs.json :

[
  {"op": "replace", "path": "/metadata/labels/super", "value": "Patched"}
]
  • 运行 kustomize 构建不会产生任何输出;
  • 创建一个称为资源/基础的部署文件会生成一个可以应用的适当补丁。

这是 Kustomize 的限制,还是我错过了一些东西?

谢谢你的帮助 !

4

1 回答 1

1

Kustomize 依赖于要包含的引用资源resources,或者使用内置生成器生成它们以进行修补或以任何方式变异。

需要注意的是,您可以在您的 kustomization 中包含一个与您现有的ebs-csi-controllerDeployment 匹配的资源,并且 Kustomize 将构建一个可以在您现有的部署之上应用的资源。

于 2021-10-27T16:15:08.837 回答