Catalog

A catalog is a library of curated Helm charts available for you to deploy. Each catalog is hosted in a Git repository that contains Helm chart source code, with each chart stored in a separate directory.

Platform administrators manage and register catalogs in the platform view. As a team member, you deploy applications from these catalogs in your team view.

Deploying workloads from a catalog

To deploy a workload from a catalog:

  1. Navigate to the team view and either:
    • Select Catalog from the sidebar, or
    • Go to Workloads and click Create Workload.
  2. Select a catalog from the dropdown menu containing all enabled catalogs.
    • The default catalog or the first catalog in the list will be selected automatically.
  3. Browse the available Helm charts displayed on the page.
  4. Select a chart and customize its Helm values as needed.
  5. Submit the deployment.

Once deployed, you can monitor the application status on the Workloads page.

Understanding workload versions

Your workload version operates independently from the catalog version. This means:

  • Updating the catalog version does not automatically update your existing workloads.
  • You control when and how to update your workload versions.
  • You can adjust workload versions independently based on your team's requirements.
📘

Currently the workload version can only be updated in the values git repository.
Refer to env/teams/<teamName>/workloads/<workloadName>.

About the default catalog

The default catalog is hosted at https://github.com/linode/apl-charts and contains a set of Helm charts that serve as quick-start templates. The following charts are available:

Kubernetes deployment

Chart: k8s-deployment

Resources created when deployed:

  • A Kubernetes Deployment (to deploy a single container image)
  • A Service
  • A ServiceAccount

Optional resources:

  • HorizontalPodAutoscaler
  • Prometheus ServiceMonitor
  • ConfigMap

Kubernetes Deployment with Open Telemetry Instrumentation

Chart: k8s-deployment-otel

Resources created when deployed:

  • A Kubernetes Deployment (to deploy a single container image)
  • A Service
  • A ServiceAccount
  • An Instrumentation resource

Optional resources:

  • HorizontalPodAutoscaler
  • Prometheus ServiceMonitor
  • ConfigMap

Kubernetes Canary Deployments

Chart:k8s-deployments-canary

Resources created when deployed:

  • Two Kubernetes Deployments (to deploy two versions of a container image)
  • A Service
  • A ServiceAccount

Optional resources (for each version):

  • HorizontalPodAutoscaler
  • Prometheus ServiceMonitor
  • ConfigMap

Knative-service

Chart:knative-service

Resources created when deployed:

  • A Knative Service (to deploy a single container image)
  • A Service
  • A ServiceAccount

Optional resources (for each version):

  • Prometheus ServiceMonitor

PostgreSQL cluster

Chart: postgresql-cluster

Resources created when deployed:

  • A CloudNativePG PostgreSQL Cluster

Optional resources (for each version):

  • Prometheus PodMonitor
  • ConfigMap (for adding a PostgreSQL dashboard to Grafana)

Redis high availability cluster

Chart: redis-ha

Resources created when deployed:

  • A Redis high availability cluster with master-replica topology
  • HAProxy load balancer

RabbitMQ cluster and/or queues

Chart: rabbitmq-cluster

Resources created when deployed:

  • A RabbitmqCluster
  • Queues
  • Policies
📘

Using the rabbitmq-cluster chart requires RabbitMQ to be enabled by a platform administrator.