#!/bin/bash

set -euo pipefail

WORKSPACE=$(unset CDPATH && cd $(dirname "${BASH_SOURCE[0]}") && pwd)
CHARTS="$WORKSPACE/../charts"
LIB_DIR="$WORKSPACE/../lib"

# Source the shared diff library
source "$LIB_DIR/diff-lib.sh"

# Parse arguments
parse_diff_args "$@"

# Ensure kubeconfig permissions
ensure_kubeconfig_permissions

# Run diffs for all dataplane components
if [[ -d $WORKSPACE/vmcluster/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/ ]]; then
  if [[ -f "$WORKSPACE/vmcluster/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/values.yaml" ]]; then
		helm_diff "vmcluster" "$CHARTS/vmcluster" "$WORKSPACE/vmcluster/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/values.yaml" "observability" "VMCluster"
	else
		kubectl_diff "$WORKSPACE/vmcluster/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/" "VMCluster"
	fi
fi

# add dataplane-ingress diff using kubectl_diff
if [[ -d $WORKSPACE/dataplane-ingress/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/ ]]; then
kubectl_diff "$WORKSPACE/dataplane-ingress/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/" "Dataplane Ingress"
fi

# Loki components
loki_version="6.29.0"
loki_values="$WORKSPACE/loki/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/values.yaml"

helm repo add grafana https://grafana.github.io/helm-charts || true
helm repo update grafana >/dev/null 2>&1 || true
helm_diff "loki-ha" "grafana/loki" "$loki_values" "observability" "Loki" "$loki_version"

# Alertmanager
helm_diff "alertmanager-regional" "$CHARTS/alertmanager" "$WORKSPACE/alertmanager/envs/${ENV}-${VENDOR}-${LOGICAL_REGION}/values.yaml" "default" "Alertmanager"

# Write summary
write_diff_summary
