Kubeapps is a web-based dashboard to deploy, manage, and upgrade applications on a Kubernetes cluster. It uses the cluster's existing role-based access rules to control access, and can be configured to use both public and private application repositories as its source of container images and Helm charts.
In particular, Kubeapps can be easily configured to automatically replicate artifacts from the Tanzu Application Catalog for Tanzu Advanced. This enables Tanzu Advanced users to access up-to-date, "known good" Tanzu Application Catalog container images and Helm charts through an intuitive, browser-based user interface.
This tutorial will show you how to configure the Tanzu Application Catalog for Tanzu Advanced as an application repository in Kubeapps, and how to deploy a MySQL Helm chart from that catalog from the Kubeapps interface. This tutorial uses MySQL as an example, but you can use similar steps to work with other artifacts from the Tanzu Application Catalog for Tanzu Advanced using Kubeapps.
This article explains how to configure Kubeapps to use container images and Helm charts from the Tanzu Application Catalog for Tanzu Advanced. It assumes that:
You have administrator access to a pre-existing installation of Kubeapps, configured in line with existing enterprise requirements. If you don't already have Kubeapps, you can install it using the official Kubeapps installation instructions, and you can learn more about Kubeapps on the Kubeapps website.
You have credentials (consisting of a username and token) for the Tanzu Application Catalog for Tanzu Advanced registry.
The first step is to create an application repository in Kubeapps for the Tanzu Application Catalog for Tanzu Advanced. Follow these instructions:
Click the "Change Context" button.
NOTE: Kubeapps only supports private application repositories with private Docker images in a single namespace. It's not possible to add a private application repository for all namespaces using Kubeapps (although an administrator can achieve this by making the secret available in all namespaces). Learn more.
Click the menu button in the top right corner.
Click the "Add App Repository" button.
On the "Add an App Repository" screen, configure the repository as follows:
Enter the following data in the "List of Repositories" field: kibana, kiam, mariadb, postgresql-ha, grafana-operator, nginx-ingress-controller, mongodb, minio, nginx, apache, ejbca, mongodb, elasticsearch, etcd, solr, kubewatch, tomcat, kong, rabbitmq, grafana, logstash, jenkins, postgresql, redis, kube-state-metrics, airflow, mariadb-galera, contour, influxdb, cassandra, wavefront, nats, aspnet-core, wordpress, tensorflow-resnet, spring-cloud-dataflow, fluentd, zookeeper, kafka, node-exporter, memcached, redis, parse, keycloak, external-dns, pytorch, mxnet, harbor, thanos, spark, consul, kubeapps, mysql, wildfly, metrics-server.
In the "Associate Docker Registry Credentials" subsection, click the "Add New Credentials" button and then:
Once the secret has been created, it will appear in the list of "Associate Docker Registry Credentials". Tick the checkbox for this newly-created tac-for-tanzu-advanced registry credential.
Click "Install Repo" to finish the process.
The new application repository is created and synchronized. This process may take a few minutes.
To check the progress of the synchronization task, use the following command:
$ kubectl logs -n kubeapps -l apprepositories.kubeapps.com/repo-name=tac-for-tanzu-advanced
Here is an example screenshot of the output you should see:
NOTE: The list of repositories shown above is accurate at the time of writing. To obtain the most current list of repositories, log in to the registry using the oras tool and execute the command oras pull registry.pivotal.io/tac-for-tanzu-advanced/index:latest -a && cat asset-index.json | jq -r '.charts | map(.name) | join(",")'
Once the application repository is synced, you can start deploying artifacts from the Tanzu Application Catalog for Tanzu Advanced chart repository. Follow these steps:
Select the Bitnami MySQL Helm chart.
On the chart detail page, click the "Deploy" button.
You are now presented with a YAML configuration file for the chart, which allows you to change common parameters, such as the username or password. You can also define other deployment options, such as whether to make the MySQL service available using a load balancer, define a custom MySQL configuration file, enable a custom domain, and define resource usage.
Click "Deploy" to proceed.
Kubeapps will deploy the Helm chart and display a status screen as the chart is installed. Wait until Kubeapps reports that the deployment is "ready".
If you did not already set a password, get the credentials for MySQL from the "Application Secrets" section of the deployment page or by executing the commands shown in the NOTES section of the deployment output:
To remove the deployment, click the "Delete" button on the deployment page.
To learn more about the topics discussed in this article, visit the links below: