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.

Assumptions and prerequisites

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.

Step 1: Add the Tanzu Application Catalog for Tanzu Advanced to Kubeapps

The first step is to create an application repository in Kubeapps for the Tanzu Application Catalog for Tanzu Advanced. Follow these instructions:

  1. Click the menu button in the top right corner.
  2. Select the namespace in which you want to install the application repository. This namespace should be different from the one Kubeapps is installed in.
  3. Click the "Change Context" button.

    Context change

    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.

  4. Click the menu button in the top right corner.

  5. Select the "App Repositories" menu item.
  6. Click the "Add App Repository" button.

    Add repository

  7. On the "Add an App Repository" screen, configure the repository as follows:

    • Enter a descriptive name for the repository in the "Name" field, such as tac-for-tanzu-advanced.
    • Set the "URL" to https://registry.pivotal.io/tac-for-tanzu-advanced/charts/.
    • Select the "Basic Auth" radio button for the "Repository Authorization" field.
    • Enter your Tanzu Application Catalog for Tanzu Advanced username and token in the "Username" and "Password" fields respectively.
    • Select the "OCI Registry" radio button for the "Repository Type" field.
    • 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.

      Add repository

    • In the "Associate Docker Registry Credentials" subsection, click the "Add New Credentials" button and then:

      • Set the "Secret Name" field to tac-for-tanzu-advanced.
      • Set the "Server" field to https://registry.pivotal.io/tac-for-tanzu-advanced/.
      • Enter your Tanzu Application Catalog for Tanzu Advanced username and token in the "Username" and "Password" fields respectively. These are the same credentials previously entered for the "Basic Auth" field.
      • Click "Submit" to create and save the secret.
    • 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.

      Add repository

  8. 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:

Sync log

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(",")'

Step 2: Deploy MySQL using Kubeapps

Once the application repository is synced, you can start deploying artifacts from the Tanzu Application Catalog for Tanzu Advanced chart repository. Follow these steps:

  1. From the Kubeapps dashboard, click the "Catalog" menu option in the top navigation bar.
  2. In the "Filters" list on the right side, select the checkbox for the tac-for-tanzu-advanced application repository. This displays a list of available charts from the Tanzu Application Catalog for Tanzu Advanced chart repository.
  3. Select the Bitnami MySQL Helm chart.

    Search repository

  4. On the chart detail page, click the "Deploy" button.

    Deploy chart

  5. 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.

    Confgure chart

  6. 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".

Check status

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:

Get credentials

To remove the deployment, click the "Delete" button on the deployment page.

Useful links

To learn more about the topics discussed in this article, visit the links below:

check-circle-line exclamation-circle-line close-line
Scroll to top icon