To access your application from the test scripts, you must assign it an external IP in the cluster where it's running. How you do this depends on the platform you use to deploy the application. The following sections explain the different approaches.
You can retrieve the external IP address and store in an environment variable (SVC_IP in this example) using the following command:
As a LoadBalancer service
A service of type LoadBalancer receives an external IP from an external load-balancer provider. How you configure the load balancer depends on the your cluster's deployment platform and configuration. The following sections provide guidelines to expose your application when running in common development environments. If your cluster is deployed in a public cloud, check your cloud provider documentation.
If the service that you want your tests to access is not defined as a load balancer, you can change the service type with the following command. The service will then receive an external IP.
Configuring a LoadBalancer in Kind
Kind is a tool to run local Kubernetes clusters using a Docker container to emulate nodes. You can use kind for local development or CI. Services deployed in a kind cluster can be exposed to be accessed from the host machine using metallb as a load balancer.
Configuring a LoadBalancer in Minikube
Minikube implements a local Kubernetes cluster that supports different technologies to virtualize the cluster's infrastructure, such as containers, VMs or bare metal.
Minikube's tunnel command runs as a process, creating a network route on the host to the service CIDR of the cluster. It uses the cluster’s IP address as a gateway. The tunnel command exposes the external IP directly to any program that is running on the host operating system.