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.
Feature availability
If deployed without ElasticSearch/OpenSearch, several core services and features will be unavailable. See the deployment requirements for details.
(Optional) Amazon OpenSearch
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
Create a Kubernetes namespace named
immuta
.Switch to namespace
immuta
. All subsequentkubectl
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
Create the
immuta
role.Grant administrator privileges to the
immuta
role. Upon successfully completing this installation guide, you can optionally revoke this role grant.Grant the
immuta
role to the current user. Upon successfully completing this installation guide, you can optionally revoke this role grant.
Create databases
Create databases.
Grant role
immuta
additional privileges. Refer to the PostgreSQL documentation for further details on database roles and privileges.Configure the
immuta
database.Configure the
temporal
database.Configure the
temporal_visibility
database.Exit the interactive prompt. Type
\q
, and then pressEnter
.
Install Immuta
This section demonstrates how to deploy Immuta using the Immuta Enterprise Helm chart once the prerequisite cloud-managed services are configured.
Feature availability
If deployed without Elasticsearch/OpenSearch, several core services and features will be unavailable. See the deployment requirements for details.
Create a file named
immuta-values.yaml
with the above content, making sure to update all placeholder values.Deploy Immuta.
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.
Determine the name of the Secure service.
Listen on local port
8080
, forwarding TCP traffic to the Secure service's port namedhttp
.In a web browser, navigate to localhost:8080, to ensure the Immuta application loads.
Press
Control+C
to stop port forwarding.
Next steps
Last updated