feat: enhance deploy-complete.sh for cluster-admin privileges with monitoring verification
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# Complete deployment script for OpenShift Resource Governance Tool
|
# Complete deployment script for OpenShift Resource Governance Tool
|
||||||
# Includes namespace creation, RBAC, ConfigMap, Secret and Deployment
|
# Includes namespace creation, RBAC, ConfigMap, Secret and Deployment
|
||||||
|
# Optimized for cluster-admin privileges
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -9,11 +10,21 @@ set -e
|
|||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
source "$SCRIPT_DIR/common.sh"
|
source "$SCRIPT_DIR/common.sh"
|
||||||
|
|
||||||
echo -e "${BLUE}Deploying OpenShift Resource Governance Tool${NC}"
|
echo -e "${BLUE}Deploying OpenShift Resource Governance Tool (Cluster-Admin Mode)${NC}"
|
||||||
|
|
||||||
# Check if connected to cluster
|
# Check if connected to cluster
|
||||||
check_openshift_connection
|
check_openshift_connection
|
||||||
|
|
||||||
|
# Verify cluster-admin privileges
|
||||||
|
echo -e "${YELLOW}Verifying cluster-admin privileges...${NC}"
|
||||||
|
if oc auth can-i '*' '*' --all-namespaces > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: Cluster-admin privileges confirmed${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}ERROR: Insufficient privileges. This tool requires cluster-admin access${NC}"
|
||||||
|
echo -e "${YELLOW}Please run: oc login --as=system:admin${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Create namespace if it doesn't exist
|
# Create namespace if it doesn't exist
|
||||||
echo -e "${YELLOW}Creating namespace...${NC}"
|
echo -e "${YELLOW}Creating namespace...${NC}"
|
||||||
oc create namespace $NAMESPACE --dry-run=client -o yaml | oc apply -f -
|
oc create namespace $NAMESPACE --dry-run=client -o yaml | oc apply -f -
|
||||||
@@ -22,6 +33,31 @@ oc create namespace $NAMESPACE --dry-run=client -o yaml | oc apply -f -
|
|||||||
echo -e "${YELLOW}Applying RBAC...${NC}"
|
echo -e "${YELLOW}Applying RBAC...${NC}"
|
||||||
oc apply -f k8s/rbac.yaml
|
oc apply -f k8s/rbac.yaml
|
||||||
|
|
||||||
|
# Verify access to monitoring components
|
||||||
|
echo -e "${YELLOW}Verifying access to monitoring components...${NC}"
|
||||||
|
|
||||||
|
# Check Prometheus access
|
||||||
|
if oc get pods -n openshift-monitoring | grep prometheus-k8s > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: Prometheus pods found${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}WARNING: Prometheus pods not found in openshift-monitoring${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check Thanos access
|
||||||
|
if oc get pods -n openshift-monitoring | grep thanos-querier > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: Thanos Querier pods found${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}WARNING: Thanos Querier pods not found in openshift-monitoring${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test monitoring access
|
||||||
|
echo -e "${YELLOW}Testing monitoring access...${NC}"
|
||||||
|
if oc auth can-i get pods --as=system:serviceaccount:$NAMESPACE:$SERVICE_ACCOUNT -n openshift-monitoring > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: ServiceAccount has access to openshift-monitoring${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}WARNING: ServiceAccount may not have full access to monitoring${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Apply ConfigMap
|
# Apply ConfigMap
|
||||||
echo -e "${YELLOW}Applying ConfigMap...${NC}"
|
echo -e "${YELLOW}Applying ConfigMap...${NC}"
|
||||||
oc apply -f k8s/configmap.yaml
|
oc apply -f k8s/configmap.yaml
|
||||||
@@ -80,6 +116,25 @@ oc rollout status deployment/resource-governance -n $NAMESPACE --timeout=300s
|
|||||||
# Check pod status and logs
|
# Check pod status and logs
|
||||||
check_pod_status
|
check_pod_status
|
||||||
|
|
||||||
|
# Test application health and monitoring connectivity
|
||||||
|
echo -e "${YELLOW}Testing application health...${NC}"
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Test health endpoint
|
||||||
|
if curl -s -f "https://$(oc get route resource-governance-route -n $NAMESPACE -o jsonpath='{.spec.host}')/health" > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: Application health check passed${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}WARNING: Application health check failed, but deployment may still be starting${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test monitoring connectivity
|
||||||
|
echo -e "${YELLOW}Testing monitoring connectivity...${NC}"
|
||||||
|
if curl -s -f "https://$(oc get route resource-governance-route -n $NAMESPACE -o jsonpath='{.spec.host}')/api/v1/hybrid/health" > /dev/null 2>&1; then
|
||||||
|
echo -e "${GREEN}SUCCESS: Monitoring connectivity verified${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}WARNING: Monitoring connectivity test failed, check logs${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Get application URL
|
# Get application URL
|
||||||
echo -e "${YELLOW}Getting application URL...${NC}"
|
echo -e "${YELLOW}Getting application URL...${NC}"
|
||||||
|
|
||||||
@@ -99,4 +154,22 @@ fi
|
|||||||
echo -e "${GREEN}SUCCESS: Application deployed successfully!${NC}"
|
echo -e "${GREEN}SUCCESS: Application deployed successfully!${NC}"
|
||||||
get_application_url
|
get_application_url
|
||||||
|
|
||||||
echo -e "${GREEN}SUCCESS: Deployment completed successfully!${NC}"
|
# Display cluster-admin specific information
|
||||||
|
echo -e "${BLUE}=== CLUSTER-ADMIN DEPLOYMENT SUMMARY ===${NC}"
|
||||||
|
echo -e "${GREEN}✓ Namespace: $NAMESPACE${NC}"
|
||||||
|
echo -e "${GREEN}✓ ServiceAccount: $SERVICE_ACCOUNT${NC}"
|
||||||
|
echo -e "${GREEN}✓ RBAC: Full cluster monitoring access${NC}"
|
||||||
|
echo -e "${GREEN}✓ Prometheus: Connected${NC}"
|
||||||
|
echo -e "${GREEN}✓ Thanos: Connected${NC}"
|
||||||
|
echo -e "${GREEN}✓ Redis: Deployed${NC}"
|
||||||
|
echo -e "${GREEN}✓ Celery Workers: Deployed${NC}"
|
||||||
|
echo -e "${GREEN}✓ Application: Ready${NC}"
|
||||||
|
|
||||||
|
echo -e "${YELLOW}=== MONITORING CAPABILITIES ===${NC}"
|
||||||
|
echo -e "• Real-time cluster resource analysis"
|
||||||
|
echo -e "• Historical data via Thanos"
|
||||||
|
echo -e "• Cross-namespace workload analysis"
|
||||||
|
echo -e "• Resource optimization recommendations"
|
||||||
|
echo -e "• Background processing with Celery"
|
||||||
|
|
||||||
|
echo -e "${GREEN}SUCCESS: Cluster-Admin deployment completed successfully!${NC}"
|
||||||
Reference in New Issue
Block a user