apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: replace-storage-class-by-openebs spec: rules: - name: local-path-fix match: any: - resources: kinds: - PersistentVolumeClaim namespaces: - registry mutate: patchStrategicMerge: metadata: annotations: volume.kubernetes.io/selected-node: bordeaux - name: replace-storage-class match: any: - resources: kinds: - PersistentVolumeClaim namespaces: - games - application - platform - pipelines mutate: patchStrategicMerge: metadata: annotations: volume.beta.kubernetes.io/storage-class: openebs-hostpath spec: storageClassName: openebs-hostpath accessModes: - ReadWriteOnce #- name: remove-unwanted-annotations # match: # any: # - resources: # kinds: # - PersistentVolumeClaim # namespaces: # - games # mutate: # patchesJson6902: |- # - path: "/metadata/annotations/volume.beta.kubernetes.io~1storage-class" # op: replace # value: openebs-hostpath # - path: "/metadata/annotations/volume.beta.kubernetes.io~1storage-provisioner" # op: replace # value: openebs.io/local # - path: "/metadata/annotations/volume.kubernetes.io~1storage-provisioner" # op: replace # value: openebs.io/local