Setup ChartMuseum | KubeApps | Oracle Object Storage with Oracle Kubernetes Engine (OKE)

But Why ?

Vamsi Ramakrishnan
jsonlovesyaml
5 min readNov 10, 2018

--

Because Kubectl is the new SSH

We must use Helm to solve all Kubernetes Manifest Problems.

We must use Kubeapps and ChartMuseum to solve all Helm problems.

The article is written assuming you have a

If you don’t refer links below.

Setup OKE

CLI Access to OCI

“bird's photo of cityscape” by chuttersnap on Unsplash

Kubeapps Setup

Step 1: Default storage class “OCI”

Step 2: Install kubeapps using Helm

Setting the flag frontend.service.type=LoadBalancer is important as it exposes your service through the OCI Load Balancer. pvcs are not created during the process as it MongoDB is used only as a cache and does not require persistence

The apprepository sometimes refuses to start because it does not have the permissions to list cronjobs that are triggered by apprepository jobsto sync charts, solution to this would be to create a clusterrolebinding that allows it to do so.

Step 3: Verify Installation

Should yield an output that looks like this

Next Step is to get the External IP of the Load Balancer that exposes this service

Step 4 : Login to Kubeapps Dashboard

When you hit the IP of Kubeapps dashboard you should see a welcome screen such as this

Step 5: Generate Login Token

Depending on your cluster’s RBAC privilege rules and what amount of rights you wish to grant to the kubeapps-operator you set the clusterrolebinding

Step 6: View your Dashboard

Documentation around the Dashboard, add some of the pre-defined repos such as

Manage Releases and Deployments

Manage Existing Releases
Click to customize and deploy charts

Select one of the charts

Customize the values.yaml

If none of these charts show up , you could always add chart repositories in the App repositories section where you enter the URL of the repository

Add new Repositories

ChartMuseum setup

We will run Chart Museum as a simple Web Server on a VM and not take the helm route. Go to the VM where you wish to act like your chart museum server. In my case, I chose one of my Worker Nodes as the VM to run chart museum

Start the Chart Museum WebServer:

Before starting the ChartMuseum server, make sure the oci-cli is installed and configured because API Signing Key which is used to authenticate a user gets registered when you setup the CLI from the same machine.

  1. The article assumes that the security lists for the appropriate VM to allow a TCP connection to the given port is created.
  2. Go to oci object storage create an <object storage bucket>
  3. Make sure you have the ocidof the compartmen where the bucket is created

Go to the machine where you intend to use your helm client and run

Time to Test the helm push functionality:

If push is successful you can see the object under the bucket in the object store. Everything is set and you need to perform one last step

Setup nohup for the ChartMuseum process:

To make sure terminal logout does not affect the dependent process

Integrate Custom Chart Museum Repo to Kubeapps

Follow same process that was followed to add any other chart repo. In our case

The output should look like this :)

--

--

Vamsi Ramakrishnan
jsonlovesyaml

I work for Google. All views expressed in this publication are my own. Google Cloud | ex-Oracle | https://goo.gl/aykaPB