Monocular is a web-based application that enables the search and discovery of charts from multiple Helm Chart repositories. It is the codebase that powers the Helm Hub project.
$ helm repo add monocular https://helm.github.io/monocular
$ helm install monocular/monocular
This chart bootstraps a Monocular deployment on a Kubernetes cluster using the Helm package manager.
To avoid issues with Cross-Origin Resource Sharing, the Monocular chart sets up an Ingress resource to serve the frontend and the API on the same domain. This is used to route requests made to <host>:<port>/
to the frontend pods, and <host>:<port>/api
to the backend pods.
First, ensure you have added the Monocular chart repository:
$ helm repo add monocular https://helm.github.io/monocular
To install the chart with the release name my-release
:
$ helm install --name my-release monocular/monocular
The command deploys Monocular on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip: List all releases using
helm list
To uninstall/delete the my-release
deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
See the values for the full list of configurable values.
You can configure the chart repositories you want to see in Monocular with the sync.repos
value, for example:
$ cat > custom-repos.yaml <<EOF
sync:
repos:
- name: stable
url: https://kubernetes-charts.storage.googleapis.com
schedule: "0 * * * *"
successfulJobsHistoryLimit: 1
- name: incubator
url: https://kubernetes-charts-incubator.storage.googleapis.com
schedule: "*/5 * * * *"
- name: monocular
url: https://helm.github.io/monocular
EOF
`schedule` and `successfulJobsHistoryLimit` are optional parameters. They default to `"0 * * * *"` and `3` respectively
$ helm install monocular/monocular -f custom-repos.yaml
You can configure the Ingress object with the hostnames you wish to serve Monocular on:
$ cat > custom-domains.yaml <<EOF
ingress:
hosts:
- monocular.local
EOF
$ helm install monocular/monocular -f custom-domains.yaml
Value | Description | Default |
---|---|---|
sync.nodeSelector |
{} |
Node labels for pod assignment |
sync.tolerations |
Tolerations for pod assignment | [] |
sync.affinity |
Node/Pod affinities | {} |
chartsvc.replicas |
Number of replicas for API service | 3 |
chartsvc.nodeSelector |
{} |
Node labels for pod assignment |
chartsvc.tolerations |
Tolerations for pod assignment | [] |
chartsvc.affinity |
Node/Pod affinities | {} |
ui.replicaCount |
Number of replicas for UI service | 2 |
ui.googleAnalyticsId |
Google Analytics ID | UA-XXXXXX-X (unset) |
ui.appName |
Name to use in title bar and header | Monocular |
ui.nodeSelector |
Node labels for pod assignment | {} |
ui.tolerations |
Tolerations for pod assignment | [] |
ui.affinity |
Node/Pod affinities | {} |
ingress.enabled |
If enabled, create an Ingress object | true |
ingress.annotations |
Ingress annotations | {ingress.kubernetes.io/rewrite-target: /, kubernetes.io/ingress.class: nginx} |
ingress.tls |
TLS configuration for the Ingress object | nil |
global.mongoUrl |
External MongoDB connection URL | nil |