90 lines
2.0 KiB
Bash
90 lines
2.0 KiB
Bash
![]() |
#!/bin/bash
|
||
|
# Custom Application Installation Script (Production Profile)
|
||
|
# Example taskserv extension
|
||
|
|
||
|
set -euo pipefail
|
||
|
|
||
|
SETTINGS_FILE=${1:-""}
|
||
|
SERVER_POS=${2:-0}
|
||
|
TASKSERV_POS=${3:-0}
|
||
|
CURRENT_DIR=${4:-$(pwd)}
|
||
|
|
||
|
echo "Installing Custom Application (Production Profile)"
|
||
|
echo "Settings: $SETTINGS_FILE"
|
||
|
echo "Server Position: $SERVER_POS"
|
||
|
echo "TaskServ Position: $TASKSERV_POS"
|
||
|
|
||
|
# Source environment if available
|
||
|
if [ -f "$PROVISIONING_WK_ENV_PATH/cmd_env" ]; then
|
||
|
source "$PROVISIONING_WK_ENV_PATH/cmd_env"
|
||
|
fi
|
||
|
|
||
|
# Example: Deploy production configuration
|
||
|
echo "Deploying production application..."
|
||
|
|
||
|
# Check if kubectl is available
|
||
|
if ! command -v kubectl &> /dev/null; then
|
||
|
echo "Error: kubectl is required but not installed"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Check if docker is available
|
||
|
if ! command -v docker &> /dev/null; then
|
||
|
echo "Error: docker is required but not installed"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Example deployment commands
|
||
|
cat << 'EOF' | kubectl apply -f -
|
||
|
apiVersion: apps/v1
|
||
|
kind: Deployment
|
||
|
metadata:
|
||
|
name: custom-app-production
|
||
|
namespace: production
|
||
|
spec:
|
||
|
replicas: 3
|
||
|
selector:
|
||
|
matchLabels:
|
||
|
app: custom-app
|
||
|
env: production
|
||
|
template:
|
||
|
metadata:
|
||
|
labels:
|
||
|
app: custom-app
|
||
|
env: production
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: custom-app
|
||
|
image: registry.internal.com/custom-app:production
|
||
|
ports:
|
||
|
- containerPort: 8080
|
||
|
env:
|
||
|
- name: ENVIRONMENT
|
||
|
value: "production"
|
||
|
- name: DATABASE_URL
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: custom-app-secrets
|
||
|
key: database-url
|
||
|
---
|
||
|
apiVersion: v1
|
||
|
kind: Service
|
||
|
metadata:
|
||
|
name: custom-app-service
|
||
|
namespace: production
|
||
|
spec:
|
||
|
selector:
|
||
|
app: custom-app
|
||
|
env: production
|
||
|
ports:
|
||
|
- port: 80
|
||
|
targetPort: 8080
|
||
|
type: LoadBalancer
|
||
|
EOF
|
||
|
|
||
|
echo "Custom Application deployed successfully in production"
|
||
|
|
||
|
# Wait for deployment to be ready
|
||
|
kubectl rollout status deployment/custom-app-production -n production --timeout=300s
|
||
|
|
||
|
echo "Custom Application is ready and running"
|