32 lines
1.2 KiB
Bash

#!/bin/bash
ALLOY_CONFIG_PATH="<ALLOY_FILE_PATH>"
NAMESPACE="<NAMESPACE>"
CM_NAME="<CONFIGMAP_NAME>"
ALLOY_POD_NAME=$(kubectl get pod -l app.kubernetes.io/name=alloy -n $NAMESPACE -o jsonpath='{.items[*].metadata.name}')
RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
RESET="\033[0m"
echo -e "${RED}[1/3] Applying configmap file: $ALLOY_CONFIG_PATH on namespace=$NAMESPACE${RESET}"
if kubectl create configmap $CM_NAME --from-file=$ALLOY_CONFIG_PATH --dry-run=client -o yaml | kubectl apply -f - -n $NAMESPACE; then
echo -e "${GREEN}[1/3] Configmap applied successfully.${RESET}"
else
echo -e "${RED}[1/3] Failed to apply configmap.${RESET}"
exit 1
fi
echo -e "${YELLOW}[2/3] Waiting 1 second...${RESET}"
sleep 1
echo -e "${RED}[3/3] Triggering reload on pod=$ALLOY_POD_NAME...${RESET}"
if kubectl exec -it "$ALLOY_POD_NAME" -n "$NAMESPACE" -c config-reloader -- wget --post-data="" -O /dev/null http://localhost:12345/-/reload; then
echo -e "${GREEN}[3/3] Reload triggered successfully.${RESET}"
echo -e "${GREEN} use 'kubectl logs $ALLOY_POD_NAME -n $NAMESPACE' to check alloy pod log.${RESET}"
else
echo -e "${RED}[3/3] Failed to trigger reload.${RESET}"
exit 1
fi