在Kubernetes的yaml文件上使用JSON Patch



我正在尝试在我的Kubernetes yaml文件之一上使用JSON Patch。

apiVersion: accesscontextmanager.cnrm.cloud.google.com/v1beta1
kind: AccessContextManagerServicePerimeter
metadata:
name: serviceperimetersample
spec:
status:
resources:
- projectRef:
external: "projects/12345"
- projectRef:
external: "projects/123456"
restrictedServices:
- "storage.googleapis.com"
vpcAccessibleServices:
allowedServices:
- "storage.googleapis.com"
- "pubsub.googleapis.com"
enableRestriction: true
title: Service Perimeter created by Config Connector
accessPolicyRef:
external: accessPolicies/0123
description: A Service Perimeter Created by Config Connector
perimeterType: PERIMETER_TYPE_REGULAR

我需要添加另一个项目到周界(规格/状态/资源)。

我尝试使用以下命令:

kubectl patch AccessContextManagerServicePerimeter serviceperimetersample --type='json' -p='[{"op": "add", "path": "/spec/status/resources/-/projectRef", "value": {"external": {"projects/01234567"}}}]'

但是它导致错误:

The request is invalid: the server rejected our request due to an error in our request

我很确定我的路径是不正确的,因为它的嵌套结构。我很感激任何帮助。谢谢你。

我没有你正在使用的CustomResource,所以我不能测试这个,但我认为这应该可以工作:

kubectl patch AccessContextManagerServicePerimeter serviceperimetersample --type='json' -p='[{"op":"add","path":"/spec/status/resources/2","value":{"projectRef":{"external":"projects/12345"}}}]'

最新更新