This commit is contained in:
2025-10-04 15:50:33 +08:00
parent 2a2209020d
commit 761b784419
4 changed files with 25 additions and 2 deletions

View File

@@ -37,6 +37,9 @@ env:
CONTAINER_IMAGE_NAME: ${{ secrets.CONTAINER_IMAGE_NAME }} CONTAINER_IMAGE_NAME: ${{ secrets.CONTAINER_IMAGE_NAME }}
CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }} CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }}
# Application configuration
DATABASE_DSN: ${{ secrets.DATABASE_DSN }}
jobs: jobs:
deploy: deploy:
name: Deploy to Kubernetes name: Deploy to Kubernetes
@@ -60,6 +63,7 @@ jobs:
echo "**Application:** \`${CONTAINER_IMAGE_NAME}\`" >> $GITHUB_STEP_SUMMARY echo "**Application:** \`${CONTAINER_IMAGE_NAME}\`" >> $GITHUB_STEP_SUMMARY
echo "**Namespace:** \`${KUBERNETES_NAMESPACE}\`" >> $GITHUB_STEP_SUMMARY echo "**Namespace:** \`${KUBERNETES_NAMESPACE}\`" >> $GITHUB_STEP_SUMMARY
echo "**Image:** \`${CONTAINER_REGISTRY_URL}/${CONTAINER_REGISTRY_NAMESPACE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_TAG}\`" >> $GITHUB_STEP_SUMMARY echo "**Image:** \`${CONTAINER_REGISTRY_URL}/${CONTAINER_REGISTRY_NAMESPACE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_TAG}\`" >> $GITHUB_STEP_SUMMARY
echo "**Database:** Connected" >> $GITHUB_STEP_SUMMARY
echo "**URL:** http://${KUBERNETES_INGRESS_HOST}" >> $GITHUB_STEP_SUMMARY echo "**URL:** http://${KUBERNETES_INGRESS_HOST}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY
echo "---" >> $GITHUB_STEP_SUMMARY echo "---" >> $GITHUB_STEP_SUMMARY

View File

@@ -21,6 +21,9 @@ CONTAINER_REGISTRY_PASSWORD="${CONTAINER_REGISTRY_PASSWORD:-password}"
CONTAINER_IMAGE_NAME="${CONTAINER_IMAGE_NAME:-stats-api}" CONTAINER_IMAGE_NAME="${CONTAINER_IMAGE_NAME:-stats-api}"
CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}" CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}"
# Application Configuration
DATABASE_DSN="${DATABASE_DSN:-postgres://postgres:password@localhost:5432/steam_union?sslmode=disable}"
# ============================================================================= # =============================================================================
# Functions # Functions
# ============================================================================= # =============================================================================
@@ -29,7 +32,19 @@ CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}"
print_help() { print_help() {
echo "Usage: $0 [OPTIONS]" echo "Usage: $0 [OPTIONS]"
echo "" echo ""
echo "Options:" echo "Environment Variables:"
echo " KUBECONFIG_DATA Kubernetes config data (base64 encoded)"
echo " KUBERNETES_URL Kubernetes API URL (default: https://kubernetes.default.svc)"
echo " KUBERNETES_NAMESPACE Kubernetes namespace (default: default)"
echo " KUBERNETES_INGRESS_HOST Ingress host (default: stats-api.example.com)"
echo " CONTAINER_REGISTRY_URL Container registry URL (default: 127.0.0.1)"
echo " CONTAINER_REGISTRY_USERNAME Registry username"
echo " CONTAINER_REGISTRY_PASSWORD Registry password"
echo " CONTAINER_IMAGE_NAME Image name (default: stats-api)"
echo " CONTAINER_IMAGE_TAG Image tag (default: latest)"
echo " DATABASE_DSN Database connection string"
echo ""
echo "Commands:"
echo " deploy Deploy application to Kubernetes" echo " deploy Deploy application to Kubernetes"
echo " help Show this help message (default)" echo " help Show this help message (default)"
} }
@@ -89,6 +104,7 @@ deploy_to_kubernetes() {
echo "Namespace: ${KUBERNETES_NAMESPACE}" echo "Namespace: ${KUBERNETES_NAMESPACE}"
echo "Image: ${FULL_IMAGE_NAME}" echo "Image: ${FULL_IMAGE_NAME}"
echo "Host: ${KUBERNETES_INGRESS_HOST}" echo "Host: ${KUBERNETES_INGRESS_HOST}"
echo "Database DSN: ${DATABASE_DSN}"
echo "" echo ""
# Setup kubectl # Setup kubectl
@@ -107,6 +123,7 @@ deploy_to_kubernetes() {
export KUBERNETES_NAMESPACE export KUBERNETES_NAMESPACE
export KUBERNETES_INGRESS_HOST export KUBERNETES_INGRESS_HOST
export CONTAINER_IMAGE_NAME export CONTAINER_IMAGE_NAME
export DATABASE_DSN
for file in script/k8s/*.yaml; do for file in script/k8s/*.yaml; do
echo "Applying: $(basename $file)" echo "Applying: $(basename $file)"

View File

@@ -60,3 +60,5 @@ spec:
env: env:
- name: TZ - name: TZ
value: "UTC" value: "UTC"
- name: DATABASE_DSN
value: "${DATABASE_DSN}"

View File

@@ -3,4 +3,4 @@ Host: 0.0.0.0
Port: 8888 Port: 8888
Database: Database:
DSN: "host=localhost port=5432 user=postgres password=your_password dbname=steam_union sslmode=disable" DSN: "${DATABASE_DSN}" # postgres: host=localhost port=5432 user=postgres password=your_password dbname=steam_union sslmode=disable