Managed Public Cloud

This is a guide on how to deploy Immuta on Kubernetes in the following managed public cloud providers:

  • Amazon Web Services (AWS)

  • Microsoft Azure

  • Google Cloud Platform (GCP)

Prerequisites

The following managed services must be provisioned and running before proceeding. For further assistance consult the recommendations table for your respective cloud provider.

Checklist

This checklist outlines the necessary prerequisites for successfully deploying Immuta.

Credentials

PostgreSQL

Elasticsearch

Setup

Helm

Authenticate with OCI registry

Kubernetes

Creating a dedicated namespace ensures a logically isolated environment for your Immuta deployment, preventing resource conflicts with other applications.

Create namespace

  1. Create a Kubernetes namespace named immuta.

  2. Switch to namespace immuta. All subsequent kubectl commands will default to this namespace.

Create registry secret

Create a container registry pull secret. Your credentials to authenticate with ocir.immuta.com can be viewed in your user profile at support.immuta.com.

PostgreSQL

Connecting a client

There are numerous ways to connect to a PostgreSQL database. This step demonstrates how to connect with psql by creating an ephemeral Kubernetes pod.

Connect to the database

Connect to the database as an admin (e.g., postgres) by creating an ephemeral container inside the Kubernetes cluster. A shell prompt will not be displayed after executing the kubectl run command outlined below. Wait 5 seconds, and then proceed by entering a password.

Create role

Temporal's upgrade mechanism utilizes SQL command CREATE EXTENSION when managing database schema changes. However, in cloud-managed PostgreSQL offerings, this command is typically restricted to roles with elevated privileges to protect the database and maintain the stability of the cloud environment.

To ensure Temporal can successfully manage its schema, an administrator role must be granted temporarily. The role name varies depending on the cloud-managed service:

  • Amazon RDS: rds_superuser

  • Azure Database: azure_pg_admin

  • Google Cloud SQL: cloudsqlsuperuser

  1. Create the immuta role.

  2. Grant administrator privileges to the immuta role. Upon successfully completing this installation guide, you can optionally revoke this role grant.

  3. Grant the immuta role to the current user. Upon successfully completing this installation guide, you can optionally revoke this role grant.

Create databases

  1. Create databases.

  2. Grant role immuta additional privileges. Refer to the PostgreSQL documentation for further details on database roles and privileges.

  3. Configure the immuta database.

  4. Configure the temporal database.

  5. Configure the temporal_visibility database.

  6. Exit the interactive prompt. Type \q, and then press Enter.

Install Immuta

This section demonstrates how to deploy Immuta using the Immuta Enterprise Helm chart once the prerequisite cloud-managed services are configured.

  1. Create a file named immuta-values.yaml with the above content, making sure to update all placeholder values.

  1. Deploy Immuta.

  2. Wait for all pods to become ready.

Validation

This section helps you validate your Immuta installation by temporarily accessing the application locally. However, this access is limited to your own computer. To enable access for other devices, you must proceed with configuring Ingress outlined in the Next steps section.

  1. Determine the name of the Secure service.

  2. Listen on local port 8080, forwarding TCP traffic to the Secure service's port named http.

  3. In a web browser, navigate to localhost:8080, to ensure the Immuta application loads.

  4. Press Control+C to stop port forwarding.

Next steps

Last updated

Was this helpful?