github.com/oam-dev/kubevela@v1.9.11/vela-templates/definitions/deprecated/pvc.cue (about) 1 pvc: { 2 type: "trait" 3 annotations: {} 4 labels: { 5 "deprecated": "true" 6 } 7 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 attributes: { 9 appliesToWorkloads: ["deployments.apps"] 10 podDisruptive: true 11 } 12 } 13 template: { 14 patch: spec: template: spec: { 15 containers: [{ 16 if parameter.volumeMode == "Block" { 17 // +patchKey=name 18 volumeDevices: [ 19 for v in parameter.volumesToMount { 20 { 21 name: v.name 22 devicePath: v.devicePath 23 } 24 }, 25 ] 26 } 27 if parameter.volumeMode == "Filesystem" { 28 // +patchKey=name 29 volumeMounts: [ 30 for v in parameter.volumesToMount { 31 { 32 name: v.name 33 mountPath: v.mountPath 34 } 35 }, 36 ] 37 } 38 }] 39 40 // +patchKey=name 41 volumes: [ 42 for v in parameter.volumesToMount { 43 { 44 name: v.name 45 persistentVolumeClaim: claimName: parameter.claimName 46 } 47 }, 48 ] 49 } 50 outputs: "claim": { 51 apiVersion: "v1" 52 kind: "PersistentVolumeClaim" 53 metadata: { 54 name: parameter.claimName 55 } 56 spec: { 57 accessModes: parameter.accessModes 58 volumeMode: parameter.volumeMode 59 if parameter.volumeName != _|_ { 60 volumeName: parameter.volumeName 61 } 62 63 if parameter.storageClassName != _|_ { 64 storageClassName: parameter.storageClassName 65 } 66 resources: requests: storage: parameter.resources.requests.storage 67 if parameter.resources.limits != _|_ { 68 resources: limits: storage: parameter.resources.limits.storage 69 } 70 if parameter.dataSourceRef != _|_ { 71 dataSourceRef: parameter.dataSourceRef 72 } 73 if parameter.dataSource != _|_ { 74 dataSource: parameter.dataSource 75 } 76 if parameter.selector != _|_ { 77 dataSource: parameter.selector 78 } 79 } 80 } 81 parameter: { 82 claimName: string 83 volumeMode: *"Filesystem" | string 84 volumeName?: string 85 accessModes: [...string] 86 storageClassName?: string 87 resources: { 88 requests: storage: =~"^([1-9][0-9]{0,63})(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)$" 89 limits?: storage: =~"^([1-9][0-9]{0,63})(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)$" 90 } 91 dataSourceRef?: { 92 name: string 93 kind: string 94 apiGroup: string 95 } 96 dataSource?: { 97 name: string 98 kind: string 99 apiGroup: string 100 } 101 selector?: { 102 matchLabels?: [string]: string 103 matchExpressions?: { 104 key: string 105 values: [...string] 106 operator: string 107 } 108 } 109 volumesToMount: [...{ 110 name: string 111 if volumeMode == "Block" { 112 devicePath: string 113 } 114 if volumeMode == "Filesystem" { 115 mountPath: string 116 } 117 }] 118 } 119 }