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