Uffizzi Cluster Ingress

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.