Documentation
About Kubeapps
Tutorials
- Get Started with Kubeapps
- Using an OIDC provider
- Managing Carvel packages
- Managing Flux packages
- Kubeapps on TKG
- Kubeapps on TCE
How-to guides
- Using the dashboard
- Access Control
- Basic Form Support
- Custon App View Support
- Custom Form Component Support
- Multi-cluster Support
- Offline installation
- Private Package Repository
- Syncing Package Repositories
- Using an OIDC provider with Pinniped
Background
Reference
About the project
Offline Installation of Kubeapps ¶
Since the version 1.10.1 of Kubeapps (Chart version 3.7.0), it’s possible to successfully install Kubeapps in an offline environment. To be able to able to install Kubeapps without Internet connection, it’s necessary to:
- Pre-download the Kubeapps chart.
- Mirror Kubeapps images so they are accessible within the cluster.
- [Optional] Have one or more offline Package Repositories.
1. Download the Kubeapps chart ¶
First, download the tarball containing the Kubeapps chart from the publicly available repository maintained by Bitnami. Note that Internet connection is necessary at this point:
helm pull --untar https://charts.bitnami.com/bitnami/kubeapps-4.0.4.tgz
helm dep update ./kubeapps
Latest version of this chart available at the Bitnami Chart Repository
2. Mirror Kubeapps images ¶
In order to be able to install Kubeapps, it’s necessary to either have a copy of all the images that Kubeapps requires in each node of the cluster or push these images to an internal Docker registry that Kubernetes can access. You can obtain the list of images by checking the values.yaml
of the chart. For example:
registry: docker.io
repository: bitnami/nginx
tag: 1.19.2-debian-10-r32
This list includes but is not limited to:
bitnami/kubeapps-apprepository-controller
,bitnami/kubeapps-asset-syncer
,bitnami/kubeapps-dashboard
,bitnami/kubeapps-kubeops
,bitnami/kubeapps-pinniped-proxy
,bitnami/kubeapps-apis
,bitnami/nginx
,bitnami/oauth2-proxy
,bitnami/postgresql
.
For simplicity, in this guide, we use a single-node cluster created with
Kubernetes in Docker (kind
)
. In this environment, as the images have to be preloaded, we first have to pull the images (docker pull
) and next load them into the cluster (kind load docker-image
):
docker pull bitnami/nginx:1.19.2-debian-10-r32
kind load docker-image bitnami/nginx:1.19.2-debian-10-r32
In case you are using a private Docker registry, you will need to re-tag the images and push them:
docker pull bitnami/nginx:1.19.2-debian-10-r32
docker tag bitnami/nginx:1.19.2-debian-10-r32 REPO_URL/bitnami/nginx:1.19.2-debian-10-r32
docker push REPO_URL/bitnami/nginx:1.19.2-debian-10-r32
You will need to follow a similar process for every image present in the values file.
3. [Optional] Prepare an offline Package Repository ¶
By default, Kubeapps install the bitnami
Package Repository. Since, in order to sync that repository, it’s necessary to have Internet connection, you will need to mirror it or create your own repository (e.g. using Harbor) and configure it when installing Kubeapps.
For more information about how to create a private repository, follow this guide .
4. Install Kubeapps ¶
Now that you have everything pre-loaded in your cluster, it’s possible to install Kubeapps using the chart directory from the first step:
NOTE: If during step 2), you were using a private docker registry, it’s necessary to modify the global value used for the registry. This can be set by specifying --set global.imageRegistry=REPO_URL
.
If this registry, additionally, needs an ImagePullSecret, specify it with --set global.imagePullSecrets[0]=SECRET_NAME
.
helm install kubeapps ./kubeapps [OPTIONS]