#17611·kyverno

[错误] MutatingPolicy 中的 JSONPatch 导致 Kyverno 发生崩溃

作者: SSvilen创建于 2026年9月17日更新于 2026年9月18日
标签bugtriage
  • 我们有以下的变更策略:```yaml mutation: - patchType: JSONPatch jsonPatch: expression: | has(object.spec.tolerations) ? [ JSONPatch { op: "add", path: "/spec/tolerations/-", value: Object.spec.tolerations { key: "Kubernetes.Azure.com/scalesetpriority", operator: "Equal", value: "spot", effect: "NoSchedule" } } ] : [ JSONPatch { op: "add", path: "/spec/tolerations", value: Object.spec.tolerations { key: "Kubernetes.Azure.com/scalesetpriority", operator: "Equal", value: "spot", effect: "NoSchedule" } } ] - patchType: JSONPatch jsonPatch: expression: | has(object.spec.affinity) && has(object.spec.affinity.nodeAffinity) && has(object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution) ? [ JSONPatch { op: "add", path: "/spec/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution/-", value: Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution { weight: 100, preference: Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference { matchExpressions: [ Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions { key: "Kubernetes.Azure.com/scalesetpriority", operator: "In", values: ["spot"] } ] } } } ] : has(object.spec.affinity) && has(object.spec.affinity.nodeAffinity) ? [ JSONPatch { op: "add", path: "/spec/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution", value: [ Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution { weight: 100, preference: Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference { matchExpressions: [ Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions { key: "Kubernetes.Azure.com/scalesetpriority", operator: "In", values: ["spot"] } ] } } } ] ] : has(object.spec.affinity) ? [ JSONPatch { op: "add", path: "/spec/affinity/nodeAffinity", value: [ Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution { weight: 100, preference: Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference { matchExpressions: [ Object.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions { key: "Azure.ZZTERM8ZZ.com/scalesetpriority", operator: "In", values: ["spot"] } ] } } ] } ]

内容来源: kyverno/kyverno