update
This commit is contained in:
4
.github/workflows/cd.yml
vendored
4
.github/workflows/cd.yml
vendored
@@ -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
|
||||||
|
|||||||
19
script/cd.sh
19
script/cd.sh
@@ -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)"
|
||||||
|
|||||||
@@ -60,3 +60,5 @@ spec:
|
|||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "UTC"
|
value: "UTC"
|
||||||
|
- name: DATABASE_DSN
|
||||||
|
value: "${DATABASE_DSN}"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user