#!/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:-"20"} 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="log-import-ctllog-job.yaml" if [ ! -f "$TEMPLATE_FILE" ]; then echo "Template file not found: $TEMPLATE_FILE" exit 1 fi # 直接替换模板变量(不使用envsubst) OUTPUT_FILE="log-import-ctllog-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: log-import-ctllog-job-${JOB_ID}" echo "To view logs: kubectl logs job/log-import-ctllog-job-${JOB_ID} -n $NAMESPACE"