All checks were successful
continuous-integration/drone/push Build is passing
55 lines
1.8 KiB
Bash
55 lines
1.8 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
# 默认配置
|
||
JOB_ID=$(date +%Y%m%d-%H%M%S)
|
||
IMAGE_REPO=${IMAGE_REPO:-"harbor.dc.teramesh.cn/library/tools"}
|
||
IMAGE_TAG=${IMAGE_TAG:-"dev"}
|
||
BATCH_SIZE=${BATCH_SIZE:-"50"}
|
||
LOG_LEVEL=${LOG_LEVEL:-"INFO"}
|
||
DATA_PVC_NAME=${DATA_PVC_NAME:-"data-import-export-pvc"}
|
||
JOB_HOST_KEY=${JOB_HOST_KEY:-"kubernetes.io/hostname"}
|
||
JOB_HOST_NAME=${JOB_HOST_NAME:-"idrc-disney-1"}
|
||
# 数据库配置(使用时需要修改)
|
||
DB_HOST=${DB_HOST:-"db"}
|
||
DB_PORT=${DB_PORT:-"6432"}
|
||
DB_NAME=${DB_NAME:-"idrc"}
|
||
DB_USER=${DB_USER:-"teramesh"}
|
||
DB_PASSWORD=${DB_PASSWORD:-"2iqTCHwnf75stGBzM8le"}
|
||
|
||
NAMESPACE=${NAMESPACE:-"default"}
|
||
|
||
# 检查模板文件
|
||
TEMPLATE_FILE="dbf-import-ctllog-pwc-job.yaml"
|
||
if [ ! -f "$TEMPLATE_FILE" ]; then
|
||
echo "Template file not found: $TEMPLATE_FILE"
|
||
exit 1
|
||
fi
|
||
|
||
# 直接替换模板变量(不使用envsubst)
|
||
OUTPUT_FILE="dbf-import-ctllog-pwc-job-${JOB_ID}.yaml"
|
||
sed -e "s|{{JOB_ID}}|$JOB_ID|g" \
|
||
-e "s|{{NAMESPACE}}|$NAMESPACE|g" \
|
||
-e "s|{{IMAGE_REPO}}|$IMAGE_REPO|g" \
|
||
-e "s|{{IMAGE_TAG}}|$IMAGE_TAG|g" \
|
||
-e "s|{{DATA_PVC_NAME}}|$DATA_PVC_NAME|g" \
|
||
-e "s|{{JOB_HOST_KEY}}|$JOB_HOST_KEY|g" \
|
||
-e "s|{{JOB_HOST_NAME}}|$JOB_HOST_NAME|g" \
|
||
-e "s|{{DB_HOST}}|$DB_HOST|g" \
|
||
-e "s|{{DB_PORT}}|$DB_PORT|g" \
|
||
-e "s|{{DB_NAME}}|$DB_NAME|g" \
|
||
-e "s|{{DB_USER}}|$DB_USER|g" \
|
||
-e "s|{{DB_PASSWORD}}|$DB_PASSWORD|g" \
|
||
-e "s|{{BATCH_SIZE}}|$BATCH_SIZE|g" \
|
||
-e "s|{{LOG_LEVEL}}|$LOG_LEVEL|g" \
|
||
"$TEMPLATE_FILE" > "$OUTPUT_FILE"
|
||
|
||
# 部署前验证
|
||
echo "Validating generated YAML..."
|
||
kubectl apply -f "$OUTPUT_FILE" -n "$NAMESPACE" --dry-run=client
|
||
|
||
# 部署Job
|
||
kubectl apply -f "$OUTPUT_FILE" -n "$NAMESPACE"
|
||
|
||
echo "Job deployed in namespace $NAMESPACE: dbf-import-ctllog-pwc-job-${JOB_ID}"
|
||
echo "To view logs: kubectl logs job/dbf-import-ctllog-pwc-job-${JOB_ID} -n $NAMESPACE" |