╔══════════════════════════════════════════════════════════════╗
║         External Services Ingress Proxy — Installed          ║
╚══════════════════════════════════════════════════════════════╝

Namespace : {{ .Release.Namespace }}
Release   : {{ .Release.Name }}

Proxied services:
{{- range .Values.proxies }}
{{- $proxy := . }}
{{- $proxyName := include "ext-proxy.resourceName" $proxy.name }}
{{- $tlsEnabled := $proxy.tls | default dict | dig "enabled" ($.Values.defaults.tls.enabled | default false) }}
{{- $schema := "http" }}
{{- if $tlsEnabled }}{{ $schema = "https" }}{{ end }}
  • {{ $proxyName }}
    Hosts  : {{ $proxy.hosts | default (list ($proxy.host | default "?")) | join ", " }}
    Backend: {{ $proxy.ips | default (list $proxy.ip) | join ", " }}:{{ $proxy.port }}
    URL    : {{ $schema }}://{{ $proxy.hosts | default (list ($proxy.host | default "")) | first }}
{{- end }}

─── Verify ────────────────────────────────────────────────────
# List all Ingress resources:
kubectl -n {{ .Release.Namespace }} get ingress

# Check Endpoints are populated:
kubectl -n {{ .Release.Namespace }} get endpoints

# Describe a specific Ingress:
kubectl -n {{ .Release.Namespace }} describe ingress <name>

─── DNS ───────────────────────────────────────────────────────
Point all proxy hostnames to your kube-vip VIP:

  <proxy-host> IN A <kube-vip-IP>

─── Troubleshooting ───────────────────────────────────────────
# ingress-nginx logs:
kubectl -n ingress-nginx logs -l app.kubernetes.io/name=ingress-nginx --tail=50 -f

# Check connectivity from a pod:
kubectl run curl --rm -it --image=curlimages/curl -- \
  curl -v http://<service-name>.<namespace>:<port>
