Linode, LKE, and chartmuseum.
New to linode, and kubernetes. With the help of the excellent how-to [1] I've got a basic docker registry up and running. Applying that to my next task, chartmuseum, in the same cluster I find myself running into a roadblock.
Any tips, pointers, how tos … it's likely I'm just banging away at this too hard and can't see the obvious problem.
Ingress and cert-issuer steps as in the [1] guide.
cm.domain.dev points at the IP of the valid ingress/ nodebalancer.
cm-configs.yaml
ingress:
enabled: true
hosts:
- name: cm.domain.dev
path: /
tls: true
tlsSecret: chartmuseum.tls-secret
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/proxy-read-timeout: "6000"
nginx.ingress.kubernetes.io/proxy-send-timeout: "6000"
Add to the cluster ..
helm install chartmuseum chartmuseum/chartmuseum -f cm-configs.yaml
Get the ChartMuseum URL by running:
export POD_NAME=$(kubectl get pods --namespace default -l "app=chartmuseum" -l "release=my-chartmuseum" -o jsonpath=" {.items[0].metadata.name}")
echo http://127.0.0.1:8080/
kubectl port-forward $POD_NAME 8080:8080 --namespace default
Which tells me the ingress is not pointing at the service.
Curl confirms. returning a 404.
16:54 $ curl -IL cm.domain.dev
HTTP/1.1 404 Not Found
Date: Fri, 16 Jul 2021 21:56:38 GMT
Content-Type: text/html
Content-Length: 146
Connection: keep-alive
1 Reply
Howdy,
While reviewing the guide you shared, I couldn't help but notice that the guide was created using Kubernetes 1.17 which is now deprecated, so you may be running into some errors due to the charts possibly no longer being supported by their creators.
ChartMuseum is new to me, but looks super rad! I was able to get a generic deployment setup to operate on a LKE cluster using the Helm installation guide from CM. With that said, I haven't yet integrated Object Storage into this deployment, but I do have some ideas for you to look into:
When I reviewed the ChartMuseum documentation, I noticed that their instructions for deploying to a Kubernetes cluster using S3 Object Storage, looked different than the method you used. You may want to consult this documentation for the necessary syntax/credentials.
Speaking of credentials.. you'll also want to confirm that the Object Storage Access Key you are using is configured to have the proper privileges to the bucket you want to grant it access to.
One final thing you may want to look at is that you issued the command kubectl port-forward $POD_NAME 8080:8080 --namespace default
which would forward traffic from your localhost's port 8080 to the ChartMuseum pod's port 8080, you'll want to confirm the ChartMuseum pod is listening on port 8080, and then try visiting http://127.0.0.1:8080 in your browser. I'm definitely not an expert on this, so you'll want to review the Kubernetes docs for more info on port-forwarding.