diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index d9976e4..e76fa85 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -36,62 +36,50 @@ jobs: - name: Auto generate and apply Ingress run: | - # 收集所有项目目录名 PROJECTS="" for dir in */; do case "$dir" in .gitea/|.git/|k8s/) continue ;; esac - name="${dir%/}" - PROJECTS="$PROJECTS $name" + PROJECTS="$PROJECTS ${dir%/}" done - # 生成 Ingress YAML - cat > /tmp/ingress.yaml <<'HEADER' - apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - name: static-sites-ingress - annotations: - kubernetes.io/ingress.class: "traefik" - cert-manager.io/cluster-issuer: "letsencrypt-prod" - spec: - tls: - HEADER + # 头部 + printf 'apiVersion: networking.k8s.io/v1\n' > /tmp/ingress.yaml + printf 'kind: Ingress\n' >> /tmp/ingress.yaml + printf 'metadata:\n' >> /tmp/ingress.yaml + printf ' name: static-sites-ingress\n' >> /tmp/ingress.yaml + printf ' annotations:\n' >> /tmp/ingress.yaml + printf ' kubernetes.io/ingress.class: "traefik"\n' >> /tmp/ingress.yaml + printf ' cert-manager.io/cluster-issuer: "letsencrypt-prod"\n' >> /tmp/ingress.yaml + printf 'spec:\n' >> /tmp/ingress.yaml + printf ' tls:\n' >> /tmp/ingress.yaml - # 生成 TLS 段 for name in $PROJECTS; do - cat >> /tmp/ingress.yaml <> /tmp/ingress.yaml + printf ' - %s.airlabs.art\n' "$name" >> /tmp/ingress.yaml + printf ' secretName: %s-tls\n' "$name" >> /tmp/ingress.yaml done - # 生成 rules 段 - echo " rules:" >> /tmp/ingress.yaml + printf ' rules:\n' >> /tmp/ingress.yaml for name in $PROJECTS; do - cat >> /tmp/ingress.yaml <> /tmp/ingress.yaml + printf ' http:\n' >> /tmp/ingress.yaml + printf ' paths:\n' >> /tmp/ingress.yaml + printf ' - path: /\n' >> /tmp/ingress.yaml + printf ' pathType: Prefix\n' >> /tmp/ingress.yaml + printf ' backend:\n' >> /tmp/ingress.yaml + printf ' service:\n' >> /tmp/ingress.yaml + printf ' name: static-sites\n' >> /tmp/ingress.yaml + printf ' port:\n' >> /tmp/ingress.yaml + printf ' number: 80\n' >> /tmp/ingress.yaml done echo "--- 生成的 Ingress ---" cat /tmp/ingress.yaml - # 上传并 apply scp /tmp/ingress.yaml root@118.196.70.19:/tmp/ingress.yaml ssh root@118.196.70.19 "kubectl apply -f /tmp/ingress.yaml" - echo "✓ Ingress 已自动更新" - name: Verify