【问题标题】:Kustomize metadata.name for a specific kind:Kustomize metadata.name 为特定种类:
【发布时间】:2021-01-27 21:55:31
【问题描述】:

我是 Kustomize 的新手,我想知道:

  • 如何在特定的 yaml 中“修补”metadata.name,例如:RedisInstance。

我尝试将 nameSuffix 设置为特定的 yaml(种类:RedisInstance),但没有成功。

Kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: community-organization-uat-product

bases:
- ../../../../common/base/custom/gcp
- ../../../../common/base/custom/gcp/organization

commonAnnotations:
  cnrm.cloud.google.com/managed: "true"
  cnrm.cloud.google.com/project-id: community-organization-uat-product

patchesStrategicMerge:
- 1-cXXXXX-patch.yaml
- 3-mXXXXX-patch.yaml
- 4-mXXXXX-patch.yaml
- 5-cXXXXX-patch.yaml
- 6-mXXXXX-patch.yaml
- 7-memorystore-patch.yaml

这是我的补丁:

7-memorystore-patch.yaml

apiVersion: redis.cnrm.cloud.google.com/v1beta1
kind: RedisInstance
metadata:
  name: memorystore-redis
spec:
  displayName: memorystore-redis-organization-community-uat
  memorySizeGb: 2
  redisVersion: REDIS_5_0
  reservedIpRange: 10.1XXXXX/29

memorystore.yaml

apiVersion: redis.cnrm.cloud.google.com/v1beta1
kind: RedisInstance
metadata:
  name: memorystore-redis
spec:
  displayName: Value defined by Kustomize
  region: XXXX
  connectMode: PRIVATE_SERVICE_ACCESS
  locationId: usXXXX
  memorySizeGb: Value defined by Kustomize
  redisVersion: REDIS_5_0
  reservedIpRange: Value defined by Kustomize
  tier: BASIC

【问题讨论】:

    标签: kubernetes yaml kustomize


    【解决方案1】:

    我认为你不能用patchesStrategicMerge 做到这一点:name 字段用于匹配应应用补丁的资源,因此:

    • 您指定旧名称,资源匹配但名称未更改
    • 您指定了新名称,但资源不匹配

    好消息是可以使用patchesJson6902:

    Kustomization.yaml

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    # ...
    
    patchesJson6902:
      - target:
          group: redis.cnrm.cloud.google.com
          version: v1beta1
          kind: RedisInstance
          name: memorystore-redis
        path: redisInstanceNamePatch.yaml
    

    redisInstanceNamePatch.yaml

    - op: replace
      path: /metadata/name
      value: NewName
    

    目标的所有字段,即组、版本、种类和名称均为必填项

    你可以在同一个补丁文件中指定多个操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      相关资源
      最近更新 更多