Installing Schema Registry with Helm
Learn how to install Schema Registry in Cloudera Streams Messaging Operator for Kubernetes with Helm. Schema Registry is a standalone application that allows you to efficiently store and manage schemas for your streaming data.
Schema Registry is installed in your Kubernetes cluster with the Schema Registry Helm chart
using the helm install command. When you install the chart, Helm deploys an
instance of Schema Registry, which provides you with schema storage and management capabilities.
During installation, you configure Schema Registry using a custom values file
(values.yaml) passed to the Helm chart with the --values
(-f) option. This file contains properties for configuring Schema Registry, including
network access, database connectivity, and security settings for TLS and OAuth authentication.
Additionally, some properties are configured with --set options.
Installation instructions are provided for the following scenarios.
-
Installing in an internet environment – Follow these steps to install a fully secure instance of Schema Registry in a Kubernetes cluster with internet access.
-
Installing for evaluation – Follow these steps to install an unsecure instance of Schema Registry for development or proof of concept purposes.
Installing Schema Registry in an internet environment
Complete these steps to install Schema Registry if your Kubernetes cluster has internet access. These steps install a fully secure instance of Schema Registry that has authentication, authorization, and channel encryption configured, leveraging a PostgreSQL database for persistent schema storage.
- General prerequisites:
-
Your Kubernetes environment meets requirements listed in System requirements.
-
Your Kubernetes cluster requires internet connectivity to complete these steps. It must be able to reach the Cloudera Docker registry.
-
You have access to your Cloudera credentials (username and password). Credentials are required to access the Cloudera Archive and Cloudera Docker registry where installation artifacts are hosted.
-
You have access to a valid Cloudera license.
- Review the Helm chart reference before
installation.
The Helm chart accepts various configuration properties that you can set during installation. Using these properties you can customize your installation.
-
- Prerequisites for channel encryption (TLS):
-
An Ingress controller is installed in your Kubernetes cluster. These steps use the Ingress-Nginx controller.
-
Optional: cert-manager is installed in your Kubernetes cluster.
-
- Prerequisites for OAuth authentication:
-
An OAuth server is available that has TLS enabled.
-
The server is accessible from the Kubernetes cluster where Schema Registry is deployed.
-
At least one client must be configured in your realm that supports Client Credentials flow (sometimes referred to as Machine-to-Machine (M2M), Service Account, or Application Permissions).
-
Identify if your OAuth server issues tokens that contain a value in the
audclaim. If a value is present, note it down as you will need to provide it in your configuration. Referred to as [***OAUTH EXPECTED AUDIENCE***] in the following steps. -
Get the JWKS endpoint URL of your OAuth server. You will need to provide it in your configuration. Schema Registry requires this endpoint to validate the signatures of incoming tokens. Referred to as [***OAUTH JWKS URL***] in the following steps.
-
Identify which JWT claim in your token contains the username to authorize. Schema Registry checks the
subclaim by default. If your provider uses a different field, note it down as you will need to provide it in your configuration. Referred to as [***OAUTH PRINCIPAL CLAIM***] in the following steps. -
Collect the usernames that you want to set as admin and read-only users. You will provide these in your configuration. Referred to as [***ADMIN USERS***] and [***READ-ONLY USERS***] in the following steps.
-
- Database prerequisites for persistent storage:
-
A PostgreSQL server with TLS is available.
-
Get the JDBC URL for the PostgreSQL server. Referred to as [***POSTGRESQL JDBC URL***] in the following steps.
- Get a username that Schema Registry can use to connect to the PostgreSQL server. Referred to as [***POSTGRESQL USERNAME***].
-
Installing Schema Registry for evaluation
Complete these steps to install a basic deployment of Schema Registry that has no security configured and uses an in-memory database. Use these instructions if you want to install quickly in a development environment for proof of concept or evaluation purposes.
-
Your Kubernetes environment meets requirements listed in System requirements.
-
Your Kubernetes cluster requires internet connectivity to complete these steps. It must be able to reach the Cloudera Docker registry.
-
You have access to your Cloudera credentials (username and password). Credentials are required to access the Cloudera Archive and Cloudera Docker registry where installation artifacts are hosted.
-
You have access to a valid Cloudera license.
- Review the Helm chart reference before
installation.
The Helm chart accepts various configuration properties that you can set during installation. Using these properties you can customize your installation.
