64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
apiVersion: tekton.dev/v1
|
|
kind: Task
|
|
metadata:
|
|
name: before-pipeline
|
|
spec:
|
|
params:
|
|
- name: persistence4create
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
storageClass:
|
|
type: string
|
|
accessModes:
|
|
type: array
|
|
size:
|
|
type: string
|
|
default:
|
|
enabled: "false"
|
|
namespace: "default"
|
|
storageClass: ""
|
|
accessModes:
|
|
- "ReadWriteOnce"
|
|
size: "1Gi"
|
|
results:
|
|
- name: pvcName
|
|
description: Name of the created PVC (if enabled)
|
|
steps:
|
|
- name: create-pvc-if-enabled
|
|
image: bitnami/kubectl:latest
|
|
script: |
|
|
#!/usr/bin/env bash
|
|
|
|
if [ "$(params.persistence4create.enabled)" == "true" ]; then
|
|
pvcName="before-pipeline-pvc-$(context.taskRun.uid)"
|
|
# 배열을 그대로 YAML에 반영
|
|
ACCESS_MODES=""
|
|
for mode in $(params.persistence4create.accessModes); do
|
|
ACCESS_MODES="$ACCESS_MODES - $mode\n"
|
|
done
|
|
cat <<EOF | kubectl apply -f -
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: $pvcName
|
|
namespace: $(params.persistence4create.namespace)
|
|
spec:
|
|
accessModes:
|
|
$ACCESS_MODES
|
|
resources:
|
|
requests:
|
|
storage: $(params.persistence4create.size)
|
|
storageClassName: $(params.persistence4create.storageClass)
|
|
EOF
|
|
echo "PVC $pvcName created."
|
|
echo -n "$pvcName" > /tekton/results/pvcName
|
|
else
|
|
echo "Persistence disabled, no PVC created."
|
|
echo -n "" > /tekton/results/pvcName
|
|
fi
|
|
|