2025-04-10 08:14:15 +00:00

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