Uffizzi Cluster Ingress
When you create an Ingress within your Virtual Cluster, you may choose for Uffizzi's load balancer to implement it, or you may implement it with your own load balancer. These options are specified with the spec.ingressClassName
attribute (opens in a new tab).
Default IngressClass uffizzi
If your Ingress does not specify an ingressClassName
, or it explicitly specifies ingressClassName: uffizzi
, then Uffizzi's load balancer will implement it using a generated hostname and a trusted HTTPS certificate.
Any host
values will be replaced by unique hostnames with the following format:
<ingress-name>-<virtual-namespace>-<ucluster-name>-<ucluster-id>.uclusters.app.uffizzi.com
This allows cluster users to quickly start testing their serivces and routing traffic from the outside world without having to configure hostnames manually or provisioning their own Ingress controller.
If you're using dev clusters with the uffizzi
IngressClass, you can easily find and open the provisioned hostname with the uffizzi dev ingress open
command.
Example: Uffizzi-implemented Ingress
This minimal Ingress does not specify an ingressClassName
, nor does it specify any host
within its rules
. That's fine! Uffizzi will configure the rest:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-example
namespace: default
spec:
rules:
- http:
paths:
- backend:
service:
name: service-nginx-example
port:
number: 80
path: /
pathType: Prefix
After you create this Ingress, look again and see that Uffizzi has updated it:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-example
namespace: default
spec:
ingressClassName: uffizzi
rules:
- host: ingress-example-default-k8s-1-27.uclusters.app.uffizzi.com
http:
paths:
- backend:
service:
name: service-nginx-example
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer:
ingress:
- ip: 34.71.28.140
HTTP requests to that hostname will be redirected to HTTPS and secured with Uffizzi's trusted certificate. DNS records are already in place. It's ready to serve traffic!
If you wish to define a custom IngressClass, instead, you still can, as described below.
Custom IngressClass
You can also bring your own IngressClass, and install the necessary controller and load balancer on your virtual cluster. Custom IngressClasses on Uffizzi virtual clusters and dev clusters are configured just like they are for a standard Kubernetes cluster.
Follow the official Kubernetes documentation (opens in a new tab) for understanding what an IngressClass is and how you can implement it with your chosen Ingress controller. You'll need to specify spec.ingressClassName
for all your Ingresses implemented by this controller.