Exposing Chartmuseum to the outside world🌍

Previously I set up Metallb & Nginx Ingress and now I will continue to work on exposing ChartMuseum service to the outside world.

This process should be pretty simple and I don't even need to buy a domain name because I can use a free service like noip.com to create a hostname.

Let's start!

Create free DNS and map to my IP

I have registered a new account on noip.com, created a new hostname, and mapped it to my public IP address.

image.png

Add Chartmuseum ingress rule

Chartmuseum helm chart already has an ingress template and I just had to modify the helm release and add the following lines:

ingress:
      enabled: true
      ingressClassName: nginx
      hosts:
        - name:  alex-chartmuseum.ddns.net
          path: /

Forward port 8080 to MetalLb IP

In one of the previous articles, I set up an IP range for MetalLb to use. Now I need to find out on which IP is Chartmuseum listening. I can do this by checking the ingress resource:

image.png

Okay so looks like I have to forward traffic coming into my home router on port 8080 to 192.168.1.2 port 80.

But why forward port 8080 and not 80?

Well... because for some weird reason which I don't understand, my home router remote management interface is listening on port 80 and I couldn't find a way to disable it or at least change the port... so that's why I have to use a different port.

I have logged into my router management interface and added the following port forwarding rule:

image.png

Say a prayer and test🙏

Now assuming everything I did was correct and the service is working I should be able to see something when I access alex-chartmuseum.ddns.net:8080.

It did work! 🎉 Obviously it did, otherwise I would have probably not posted this article😅

I got this wonderful homepage message:

image.png

Disclaimer: I have removed the DNS record after writing this article.

I will probably write another article at some point about how to add TLS & authentication for Chartmuseum, but for now, I'm eager to start the CI/CD work with GitOps.

If you want to learn more about that one stay tuned!

Cheers🍻