From eb760e97444335a8f17c307de4725cd2b9f1e5c0 Mon Sep 17 00:00:00 2001 From: dvirlabs Date: Thu, 19 Jun 2025 13:46:27 +0300 Subject: [PATCH] Set for now only sandbox --- automation/cloudflared-sync.sh | 48 ++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/automation/cloudflared-sync.sh b/automation/cloudflared-sync.sh index 1e9aa7c..b099bb6 100644 --- a/automation/cloudflared-sync.sh +++ b/automation/cloudflared-sync.sh @@ -1,3 +1,47 @@ #!/bin/bash -echo "🧠 Central Cloudflared Sync Pipeline" -echo "🚀 Ready to scan external GitOps repos for CNAMEs..." \ No newline at end of file +set -e + +echo "🔍 Scanning for apps with cname.yaml..." + +mkdir -p generated-values + +# Initial empty cloudflared config +cat < generated-values/cloudflared-values.yaml +ingress: + - service: http_status:404 +EOF + +# === CONFIGURATION === +REPOS=( + "git@git.dvirlabs.com:dvir/sandbox.git" +) +WORKDIR=".tmp-repos" + +rm -rf $WORKDIR +mkdir -p $WORKDIR + +# === CLONE AND SCAN === +for repo_url in "${REPOS[@]}"; do + repo_name=$(basename "$repo_url" .git) + echo "📦 Cloning $repo_name..." + + git clone --depth=1 "$repo_url" "$WORKDIR/$repo_name" + + find "$WORKDIR/$repo_name/manifests" -name cname.yaml | while read -r cname_file; do + app_name=$(basename $(dirname "$cname_file")) + enabled=$(yq '.enabled' "$cname_file") + + if [[ "$enabled" == "true" ]]; then + hostname=$(yq '.hostname' "$cname_file") + service="http://${app_name}.my-apps.svc.cluster.local:80" + + echo "✅ Found $hostname → $service" + + # Add to generated-values + yq eval ".ingress = [{\"hostname\": \"$hostname\", \"service\": \"$service\"}] + .ingress" \ + -i generated-values/cloudflared-values.yaml + fi + done +done + +echo "✅ Done! See: generated-values/cloudflared-values.yaml"