package verify import ( "net/http" "net/http/httputil" "net/url" "time" "edge-infra.dev/pkg/lib/logging" ) // This reverse proxy is need to route calls that are made within the pod to localhost:8080 to touchpoint provider. // As localhost:8080 isnt know within the pod. func reverseproxy() { logger := logging.NewLogger() target, err := url.Parse(InClusterIssuerURL()) if err != nil { logger.Error(err, "Error parsing in cluster url") } proxy := httputil.NewSingleHostReverseProxy(target) go func() { // Create a custom server with a reverse proxy handler server := &http.Server{ Addr: ":8080", ReadHeaderTimeout: 2 * time.Second, ReadTimeout: 2 * time.Second, Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { r.URL.Host = target.Host r.URL.Scheme = target.Scheme r.Header.Set("X-Forwarded-Host", r.Header.Get("Host")) r.Host = target.Host proxy.ServeHTTP(w, r) }), } logger.Info("Starting reverse proxy server on :8080") err = server.ListenAndServe() if err != nil { logger.Error(err, "Error starting reverse proxy server") } }() }