Updated flow for allhost entry

This commit is contained in:
Vaibhav Pathak 2026-01-21 15:02:31 +05:30
parent ecfc5c6a39
commit ada1e3f8a7

View File

@ -895,5 +895,72 @@ spec:
kubectl exec -n "$NAMESPACE" "$MYSQL_POD" -- mysql -u "$MYSQL_USER" -p"$MYSQL_PWD" "$MYSQL_DB" -e \ kubectl exec -n "$NAMESPACE" "$MYSQL_POD" -- mysql -u "$MYSQL_USER" -p"$MYSQL_PWD" "$MYSQL_DB" -e \
"SELECT a.name as app_name, i.ipaddress FROM apps a JOIN app_ips_accesses i ON a.id = i.app_id WHERE i.is_deleted = 0 ORDER BY a.name, i.ipaddress" 2>/dev/null || echo "Could not retrieve summary" "SELECT a.name as app_name, i.ipaddress FROM apps a JOIN app_ips_accesses i ON a.id = i.app_id WHERE i.is_deleted = 0 ORDER BY a.name, i.ipaddress" 2>/dev/null || echo "Could not retrieve summary"
# Update allhosts ConfigMap with registered services
echo ""
echo "=== Updating allhosts.tsv ConfigMap ==="
CONFIGMAP_NAME="hades-allhosts"
# Check if ConfigMap exists
if kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" >/dev/null 2>&1; then
echo "Found allhosts ConfigMap: $CONFIGMAP_NAME"
# Get current content
CURRENT_CONTENT=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.allhosts\.tsv}')
# Build new entries for each service
NEW_ENTRIES=""
for service in $SERVICES_LIST; do
service=$(echo "$service" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
[ -z "$service" ] && continue
# Skip resource references
if echo "$service" | grep -q "^resource:"; then
continue
fi
# Get pod IP for this service
POD_IP=$(kubectl get pods -n "$NAMESPACE" \
-l "app.kubernetes.io/instance=${NAMESPACE}-${service}" \
-o jsonpath='{.items[0].status.podIP}' 2>/dev/null) || POD_IP=""
if [ -z "$POD_IP" ]; then
POD_IP=$(kubectl get pods -n "$NAMESPACE" \
-l "backstage.io/kubernetes-id=${service}" \
-o jsonpath='{.items[0].status.podIP}' 2>/dev/null) || POD_IP=""
fi
if [ -n "$POD_IP" ]; then
HOSTNAME="${service}.${NAMESPACE}.onlinesales.ai"
# Check if entry already exists
if ! echo "$CURRENT_CONTENT" | grep -q "^${HOSTNAME}[[:space:]]"; then
NEW_ENTRY="${HOSTNAME}\t${POD_IP}\t${service}\tplatform\tk8s.pod"
NEW_ENTRIES="${NEW_ENTRIES}${NEW_ENTRY}\n"
echo " Adding: $HOSTNAME -> $POD_IP"
else
echo " Skipping (exists): $HOSTNAME"
fi
fi
done
if [ -n "$NEW_ENTRIES" ]; then
# Append new entries to content
UPDATED_CONTENT="${CURRENT_CONTENT}
$(echo -e "$NEW_ENTRIES")"
# Patch the ConfigMap
kubectl create configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" \
--from-literal="allhosts.tsv=${UPDATED_CONTENT}" \
--dry-run=client -o yaml | kubectl apply -f -
echo "ConfigMap updated successfully"
else
echo "No new entries to add"
fi
else
echo "Warning: allhosts ConfigMap not found in namespace $NAMESPACE"
echo "Skipping ConfigMap update"
fi
echo "" echo ""
echo "Hades IP registration completed" echo "Hades IP registration completed"