84 lines
2.9 KiB
Bash
84 lines
2.9 KiB
Bash
#!/bin/bash
|
|
# Usage: ./customize.sh dev|qa|prod
|
|
echo "tetst" $IMAGE_TAG_backend
|
|
ENV=$1
|
|
VALUES_DIR="env/$ENV"
|
|
PROPERTIES_FILE="properties.env"
|
|
YAML_DIR="kubernetes"
|
|
|
|
# Ricava il nome progetto dalle variabili esposte da Gitea/GitHub Actions.
|
|
# Fallback locale: nome della directory del repository.
|
|
PROJECT_NAME="${GITHUB_REPOSITORY_NAME:-${GITEA_REPOSITORY_NAME:-}}"
|
|
if [ -z "$PROJECT_NAME" ] && [ -n "${GITHUB_REPOSITORY:-}" ]; then
|
|
PROJECT_NAME="${GITHUB_REPOSITORY##*/}"
|
|
fi
|
|
if [ -z "$PROJECT_NAME" ] && [ -n "${GITEA_REPOSITORY:-}" ]; then
|
|
PROJECT_NAME="${GITEA_REPOSITORY##*/}"
|
|
fi
|
|
if [ -z "$PROJECT_NAME" ]; then
|
|
PROJECT_NAME=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
|
|
fi
|
|
|
|
# Estrai l'hash completo del commit e crea una variabile temporanea per la sostituzione
|
|
TAG=$(git rev-parse HEAD)
|
|
TMP_TAG_FILE=$(mktemp)
|
|
TMP_VALUES_FILE=$(mktemp)
|
|
echo "TAG=$TAG" > "$TMP_TAG_FILE"
|
|
cat ./imglist >> "$TMP_TAG_FILE"
|
|
|
|
|
|
if [ ! -d "$VALUES_DIR" ] || ! ls "$VALUES_DIR"/*.env &>/dev/null; then
|
|
echo "Nessun file .env trovato in $VALUES_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$PROPERTIES_FILE" ]; then
|
|
echo "File $PROPERTIES_FILE non trovato."
|
|
exit 1
|
|
fi
|
|
|
|
# Costruisce il nome del namespace come <project_name>-<env>
|
|
NAMESPACE="${PROJECT_NAME}-${ENV}"
|
|
|
|
# Crea una lista key=value temporanea partendo da tutti i file *.env in env/$ENV e aggiunge env dinamico
|
|
> "$TMP_VALUES_FILE"
|
|
for env_file in "$VALUES_DIR"/*.env; do
|
|
cat "$env_file" >> "$TMP_VALUES_FILE"
|
|
printf '\n' >> "$TMP_VALUES_FILE"
|
|
done
|
|
printf '\nenv=%s\n' "$ENV" >> "$TMP_VALUES_FILE"
|
|
printf 'namespace=%s\n' "$NAMESPACE" >> "$TMP_VALUES_FILE"
|
|
printf 'project=%s\n' "$PROJECT_NAME" >> "$TMP_VALUES_FILE"
|
|
|
|
# Ricava endpoint se presente e genera le variabili derivate per le sostituzioni YAML.
|
|
ENDPOINT_VAL=$(grep -E '^[[:space:]]*endpoint[[:space:]]*=' "$TMP_VALUES_FILE" "$PROPERTIES_FILE" 2>/dev/null | tail -n 1 | sed -E 's/.*endpoint[[:space:]]*=[[:space:]]*//' | tr -d '\r\n[:space:]"' || true)
|
|
if [ -n "$ENDPOINT_VAL" ]; then
|
|
ENDPOINT_NODOT=$(echo "$ENDPOINT_VAL" | tr '.' '-')
|
|
ENDPOINT_NOSPACE=$(echo "$ENDPOINT_VAL" | tr -d '.')
|
|
|
|
printf 'endpoint-nodot=%s\n' "$ENDPOINT_NODOT" >> "$TMP_VALUES_FILE"
|
|
printf 'endpoint-nospace=%s\n' "$ENDPOINT_NOSPACE" >> "$TMP_VALUES_FILE"
|
|
|
|
fi
|
|
|
|
# Trova tutti i file .yaml nella directory kubernetes e sottodirectory
|
|
find "$YAML_DIR" -type f -name "*.yaml" | while read YAML_FILE; do
|
|
|
|
while IFS='=' read -r key value; do
|
|
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
|
done < "$TMP_VALUES_FILE"
|
|
|
|
while IFS='=' read -r key value; do
|
|
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
|
done < "$PROPERTIES_FILE"
|
|
|
|
# Sostituzione dinamica della chiave TAG
|
|
while IFS='=' read -r key value; do
|
|
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
|
done < "$TMP_TAG_FILE"
|
|
|
|
echo "Sostituzione completata per file $YAML_FILE ambiente $ENV."
|
|
cat $YAML_FILE
|
|
done
|
|
cat "$TMP_VALUES_FILE"
|
|
rm -f "$TMP_TAG_FILE" "$TMP_VALUES_FILE" |