Skip to content
This repository has been archived by the owner on Jul 16, 2021. It is now read-only.

Commit

Permalink
update documentation for Monocular 1.0 (#529)
Browse files Browse the repository at this point in the history
* update documentation for Monocular 1.0

- update goal of project to support Helm Hub
- update developer documentation for telepresence-based development environment
- remove in-cluster configuration/documentation
- add note to readme about alternatives for in-cluster app management

Signed-off-by: Adnan Abdulhussein <[email protected]>

* improve monocular description

Signed-off-by: Adnan Abdulhussein <[email protected]>

* link to Monocular 0.7.3 release

Signed-off-by: Adnan Abdulhussein <[email protected]>

* add explanation for Kubernetes deveopment use

Signed-off-by: Adnan Abdulhussein <[email protected]>
  • Loading branch information
prydonius committed Sep 27, 2018
1 parent 6a2abd0 commit 060b113
Show file tree
Hide file tree
Showing 13 changed files with 89 additions and 218 deletions.
28 changes: 19 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,20 @@
[![Build
Status](https://travis-ci.org/helm/monocular.svg?branch=master)](https://travis-ci.org/helm/monocular)

Monocular is web-based UI for managing Kubernetes applications packaged as Helm
Charts. It allows you to search and discover available charts from multiple
repositories, and install them in your cluster with one click.
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](https://github.com/helm/hub) project.

![Monocular Screenshot](docs/MonocularScreenshot.gif)

See Monocular in action at [KubeApps.com](https://kubeapps.com) or click [here](docs/about.md) to learn more about Helm, Charts and Kubernetes.

##### Video links
- [Screencast](https://www.youtube.com/watch?v=YoEbvDrI5ng)
- [Helm and Monocular Webinar](https://www.youtube.com/watch?v=u8kDkHgRbWQ)
Click [here](docs/about.md) to learn more about Helm, Charts and Kubernetes.

## Install

You can use the chart in this repository to install Monocular in your cluster.

### Prerequisites
- [Helm and Tiller installed](https://github.com/kubernetes/helm/blob/master/docs/quickstart.md)
- [Helm and Tiller installed](https://github.com/helm/helm/blob/master/docs/quickstart.md)
- [Nginx Ingress controller](https://kubeapps.com/charts/stable/nginx-ingress)
- Install with Helm: `helm install stable/nginx-ingress`
- **Minikube/Kubeadm**: `helm install stable/nginx-ingress --set controller.hostNetwork=true`
Expand Down Expand Up @@ -53,6 +49,20 @@ Read more on how to deploy Monocular [here](chart/monocular/README.md).
- [Deployment](chart/monocular/README.md)
- [Development](docs/development.md)

## Looking for an in-cluster Application management UI?

To focus on the CNCF Helm Hub requirements, in-cluster features have been
removed from Monocular 1.0 and above. We believe that providing a good solution
for deploying and managing apps in-cluster is an orthogonal user experience to a
public search and discovery site. There is other tooling that can support this
usecase better (e.g. [Kubeapps](https://github.com/kubeapps/kubeapps) or [RedHat
Automation
Broker](https://blog.openshift.com/automation-broker-discovering-helm-charts/)).

[Monocular v0.7.3](https://github.com/helm/monocular/releases/tag/v0.7.3)
includes in-cluster features and can still be installed and used until your team
has migrated to another tool.

## Roadmap

The [Monocular roadmap is currently located in the wiki](https://github.com/helm/monocular/wiki/Roadmap).
Expand Down
102 changes: 30 additions & 72 deletions chart/monocular/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Monocular

[Monocular](https://github.com/helm/monocular) is web-based UI for managing Kubernetes applications packaged as Helm Charts. It allows you to search and discover available charts from multiple repositories, and install them in your cluster with one click.
[Monocular](https://github.com/helm/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](https://github.com/helm/hub) project.

## TL;DR;

Expand All @@ -19,8 +22,6 @@ This chart bootstraps a [Monocular](https://github.com/helm/monocular) deploymen

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.

It is possible to run Monocular on separate domains and without the Nginx Ingress controller, see the [configuration](#serve-monocular-frontend-and-api-on-different-domains) section on how to do this.

## Installing the Chart

First, ensure you have added the Monocular chart repository:
Expand Down Expand Up @@ -53,41 +54,20 @@ The command removes all the Kubernetes components associated with the chart and

See the [values](values.yaml) for the full list of configurable values.


### Pointing to a different namespace

If tiller is not running in default namespace `kube-system`, you can provide the correct namespace with the following:

```console
$ helm install monocular/monocular --set api.config.tillerNamespace=YOUR_NAMESPACE
```

### Disabling Helm releases (deployment) management

If you want to run Monocular without giving the option to install and manage charts in your cluster, similar to [KubeApps](https://kubeapps.com) you can configure `api.config.releasesEnabled`:

```console
$ helm install monocular/monocular --set api.config.releasesEnabled=false
```

### Configuring chart repositories

You can configure the chart repositories you want to see in Monocular with the `api.config.repos` value, for example:

```console
$ cat > custom-repos.yaml <<<EOF
api:
config:
repos:
- name: stable
url: https://kubernetes-charts.storage.googleapis.com
source: https://github.com/kubernetes/charts/tree/master/stable
- name: incubator
url: https://kubernetes-charts-incubator.storage.googleapis.com
source: https://github.com/kubernetes/charts/tree/master/incubator
- name: monocular
url: https://helm.github.io/monocular
source: https://github.com/helm/monocular/tree/master/charts
sync:
repos:
- name: stable
url: https://kubernetes-charts.storage.googleapis.com
- name: incubator
url: https://kubernetes-charts-incubator.storage.googleapis.com
- name: monocular
url: https://helm.github.io/monocular
EOF

$ helm install monocular/monocular -f custom-repos.yaml
Expand All @@ -107,45 +87,23 @@ EOF
$ helm install monocular/monocular -f custom-domains.yaml
```

### Serve Monocular frontend and API on different domains

In order to serve the frontend and the API on different domains, you need to configure the frontend with the API location and configure CORS correctly for the API to accept requests from the frontend.

To do this, you can use the `ui.backendHostname` and `api.config.cors.allowed_origins` values. You should also disable the Ingress resource and manually configure each hostname to point to the pods.

```console
$ cat > separate-domains.yaml <<<EOF
ingress:
enabled: false
api:
config:
cors:
allowed_origins:
- http://$FRONTEND_HOSTNAME
ui:
backendHostname: http://$API_HOSTNAME
EOF

$ helm install monocular/monocular -f separate-domains.yaml
```

Ensure that you replace `$FRONTEND_HOSTNAME` and `$API_HOSTNAME` with the hostnames you want to use.

### Other configuration options

| Value | Description | Default |
|-----------------------------------------|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| `api.livenessProbe.initialDelaySeconds` | Increase this if the API pods are crashing due to the chart repository sync taking too long | `180` |
| `api.config.releasesEnabled` | Enable installing and managing charts in the cluster | `true` |
| `api.config.cacheRefreshInterval` | How often to sync with chart repositories | `3600` |
| `api.nodeSelector` | Node labels for pod assignment | `{}` |
| `api.tolerations` | Tolerations for pod assignment | `[]` |
| `api.affinity` | Node/Pod affinities | `{}` |
| `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` |
| 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` |
Binary file modified docs/MonocularScreenshot.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 0 additions & 7 deletions docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,3 @@ Other resources:
The Charts indexed by Monocular are from the official Kubernetes Helm Chart repository.

The process for contributing new Charts can be found at: https://github.com/kubernetes/charts#contributing-a-chart

*Coming soon: Point Monocular to a Helm Chart registry of your choice.*


## Who are the maintainers of Monocular and KubeApps.com?

Bitnami and Deis are the main committers to the Monocular project. Bitnami also sponsors the [KubeApps](https://kubeapps.com) website by providing hosting on GKE and contributing to website design.
45 changes: 0 additions & 45 deletions docs/config.example.yaml

This file was deleted.

61 changes: 0 additions & 61 deletions docs/configuring_authentication.md

This file was deleted.

Loading

0 comments on commit 060b113

Please sign in to comment.