The solution I personally use in my Kubernetes cluster.
In this example I will use Istio as IngressController, being the one I personally use. Of course webhooked is compatible with any type of ingress, being a proxy at layer 7.
You can use the example as an initial configuration.
First you need to apply the workload to your cluster, once the workload is installed, you can edit the configmap to configure the webhooked for your endpoints.
# Apply the example deployment files (configmap, deployment, service) kubectl apply -f https://raw.githubusercontent.com/42Atomys/webhooked/1.0/examples/kubernetes/deployment.yaml # Edit the configuration map to apply your redirection and configurations kubectl edit configmap/webhookedDon't forget to restart your deployment so that your webhooked takes into account the changes made to your configmap
# Restart your webhooked instance to apply the latest configuration kubectl rollout restart deployment.apps/webhookedIt's all over! 🎉
Now it depends on your Ingress!
If you use istio as IngressController like me, you can my virtual service (it's free)
I personally route only the prefix of version. NOTE: You can host multiple versions of configuration file with multiple virtual route ;)
--- apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: webhooked spec: hosts: - atomys.codes # Change for your domain gateways: - default http: - match: - uri: prefix: /v1alpha1/webhooks route: - destination: port: number: 8080 host: webhooked