In-cluster Deployment

    A common use-case for any Kubernetes web UI is to deploy it in-cluster and set up an ingress server for having it available to users.

    We maintain a simple/vanilla file for setting up a Headlamp deployment and service. Be sure to review it and change anything you need.

    If you’re happy with the options in the this deployment file, and assuming you have a running Kubernetes cluster and your kubeconfig pointing to it, you can run:

    kubectl apply -f

    Exposing Headlamp with an ingress server

    With the instructions in the previous section, the Headlamp service should be running, but you still need the ingress server as mentioned. We provide an example sample ingress yaml file for this purpose, but you have to manually replace the URL placeholder with the desired URL (the ingress file also assumes that you have contour and a cert-manager set up, but if you don’t then you’ll just not have TLS).

    Assuming your URL is, getting the sample ingress file and changing the URL can quickly be done by:

    curl -s | sed -e s/__URL__/ > headlamp-ingress.yaml

    and with that, you’ll have a configured ingress file, so verify it and apply it:

    kubectl apply -f ./headlamp-ingress.yaml

    Exposing Headlamp with port-forwarding

    If you want to quickly access Headlamp (after having its service running) and don’t want to set up an ingress for it, you can run use port-forwarding as follows:

    kubectl port-forward -n kube-system service/headlamp 8080:80

    and then you can access localhost:8080 in your browser.

    Accessing Headlamp

    Once Headlamp is up and running, be sure to enable access to it either by creating a service account or by setting up OIDC .