github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/templates/defwithtemplate/pvc.yaml (about) 1 # Code generated by KubeVela templates. DO NOT EDIT. Please edit the original cue file. 2 # Definition source cue file: vela-templates/definitions/deprecated/pvc.cue 3 apiVersion: core.oam.dev/v1beta1 4 kind: TraitDefinition 5 metadata: 6 annotations: 7 definition.oam.dev/description: Create a Persistent Volume Claim and mount the PVC as volume to the first container in the pod. This definition is DEPRECATED, please specify pvc in 'storage' instead. 8 labels: 9 custom.definition.oam.dev/deprecated: "true" 10 name: pvc 11 namespace: {{ include "systemDefinitionNamespace" . }} 12 spec: 13 appliesToWorkloads: 14 - deployments.apps 15 podDisruptive: true 16 schematic: 17 cue: 18 template: | 19 patch: spec: template: spec: { 20 containers: [{ 21 if parameter.volumeMode == "Block" { 22 // +patchKey=name 23 volumeDevices: [ 24 for v in parameter.volumesToMount { 25 { 26 name: v.name 27 devicePath: v.devicePath 28 } 29 }, 30 ] 31 } 32 if parameter.volumeMode == "Filesystem" { 33 // +patchKey=name 34 volumeMounts: [ 35 for v in parameter.volumesToMount { 36 { 37 name: v.name 38 mountPath: v.mountPath 39 } 40 }, 41 ] 42 } 43 }] 44 45 // +patchKey=name 46 volumes: [ 47 for v in parameter.volumesToMount { 48 { 49 name: v.name 50 persistentVolumeClaim: claimName: parameter.claimName 51 } 52 }, 53 ] 54 } 55 outputs: claim: { 56 apiVersion: "v1" 57 kind: "PersistentVolumeClaim" 58 metadata: name: parameter.claimName 59 spec: { 60 accessModes: parameter.accessModes 61 volumeMode: parameter.volumeMode 62 if parameter.volumeName != _|_ { 63 volumeName: parameter.volumeName 64 } 65 66 if parameter.storageClassName != _|_ { 67 storageClassName: parameter.storageClassName 68 } 69 resources: requests: storage: parameter.resources.requests.storage 70 if parameter.resources.limits != _|_ { 71 resources: limits: storage: parameter.resources.limits.storage 72 } 73 if parameter.dataSourceRef != _|_ { 74 dataSourceRef: parameter.dataSourceRef 75 } 76 if parameter.dataSource != _|_ { 77 dataSource: parameter.dataSource 78 } 79 if parameter.selector != _|_ { 80 dataSource: parameter.selector 81 } 82 } 83 } 84 parameter: { 85 claimName: string 86 volumeMode: *"Filesystem" | string 87 volumeName?: string 88 accessModes: [...string] 89 storageClassName?: string 90 resources: { 91 requests: storage: =~"^([1-9][0-9]{0,63})(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)$" 92 limits?: storage: =~"^([1-9][0-9]{0,63})(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)$" 93 } 94 dataSourceRef?: { 95 name: string 96 kind: string 97 apiGroup: string 98 } 99 dataSource?: { 100 name: string 101 kind: string 102 apiGroup: string 103 } 104 selector?: { 105 matchLabels?: [string]: string 106 matchExpressions?: { 107 key: string 108 values: [...string] 109 operator: string 110 } 111 } 112 volumesToMount: [...{ 113 name: string 114 if volumeMode == "Block" { 115 devicePath: string 116 } 117 if volumeMode == "Filesystem" { 118 mountPath: string 119 } 120 }] 121 } 122