github.com/oam-dev/kubevela@v1.9.11/docs/examples/custom-trait/volume-trait.cue (about) 1 storageclass: { 2 type: "trait" 3 annotations: {} 4 labels: {} 5 description: "Add storageclass on K8s pod for your workload which follows the pod spec in path 'spec.template'." 6 attributes: { 7 appliesToWorkloads: ["*"] 8 } 9 } 10 template: { 11 12 volumeClaimTemplatesList: *[ 13 for v in parameter.volumeClaimTemplates { 14 { 15 metadata: name: v.name 16 spec: { 17 accessModes: ["ReadWriteOnce"] 18 resources: requests: storage: v.requests 19 storageClassName: v.storageClassName 20 } 21 } 22 }, 23 ] | [] 24 25 volumeClaimTemplateVolumeMountsList: *[ 26 for v in parameter.volumeClaimTemplates { 27 { 28 name: v.name 29 mountPath: v.mountPath 30 } 31 }, 32 ] | [] 33 34 patch: { 35 // +patchKey=name 36 spec: { 37 template: spec: { 38 containers: [...{ 39 // +patchKey=name 40 volumeMounts: volumeClaimTemplateVolumeMountsList 41 }] 42 } 43 // +patchKey=name 44 volumeClaimTemplates: volumeClaimTemplatesList 45 } 46 } 47 48 parameter: { 49 volumeClaimTemplates?: [...{ 50 name: string 51 requests: string 52 storageClassName: string 53 mountPath: string 54 }] 55 } 56 }