ChartMuseum UI

Earlier we used curl command to upload our first helm package. In this session , we will configure a UI for our local repository so that we can add/delete packages easily.

  • Set CHART_MUSESUM_URL variable to the local repo URL.
CHART_MUSESUM_URL=http://192.168.31.20:8090
  • Create a deployment and service for UI.
cat <<EOF >chartmuseum-ui.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: chartmuseum-ui
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    run: chartmuseum-ui
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: chartmuseum-ui
  name: chartmuseum-ui
spec:
  replicas: 1
  selector:
    matchLabels:
      run: chartmuseum-ui
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: chartmuseum-ui
    spec:
      containers:
      - env:
        - name: CHART_MUSESUM_URL
          value: ${CHART_MUSESUM_URL}
        image: idobry/chartmuseumui:latest
        name: chartmuseum-ui
        ports:
        - containerPort: 8080
EOF
  • Apply the spec to kubeapps namespace
$ kubectl create -f chartmuseum-ui.yaml --namespace=kubeapps
  • Verify everything is in good state. (We may have to wait for few minutes while downloading the container image)
$ kubectl get all --namespace=kubeapps |grep chartmuseum-ui

Output

pod/chartmuseum-ui-57b6d8f7dc-nbwwt                               1/1     Running     0          99s

service/chartmuseum-ui                   LoadBalancer   172.168.85.102    192.168.31.202   80:30640/TCP   99s

deployment.apps/chartmuseum-ui                               1/1     1            1           99s

replicaset.apps/chartmuseum-ui-57b6d8f7dc                 
  • Now we can access the UI using cluster IP and add or delete Helm packages to our local repository.

ui ui