K3s Deployment

This is a generic guide that demonstrates how to deploy Immuta into K3s without dependencies on any particular cloud provider. Advanced Kubernetes expertise is required; therefore, it is not suitable for beginners.

circle-info

For the official Immuta self-managed deployment documentation, see Install Immutaarrow-up-right.

Considerations

This guide deploys PostgreSQL and Elasticsearch in-cluster using enterprise-ready operators:

circle-info

Running stateful workloads in Kubernetes requires operational investment in backups, monitoring, and high availability. Where available, cloud-managed databases can reduce this overhead.

Prerequisites

Checklist

This checklist outlines the necessary prerequisites for successfully deploying Immuta.

Credentials

Setup

Helm

Authenticate with OCI registry

Kubernetes

circle-info

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 using your ocir.immuta.com credentials.

Elasticsearch

PostgreSQL

Configure databases

After the CNPG cluster is healthy, configure the temporal and temporal_visibility databases:

  1. Grant schema permissions on the temporal database.

  2. Grant schema permissions and create the btree_gin extension on the temporal_visibility database.

Retrieve database credentials

The immuta user password is auto-generated by CloudNativePG and stored in a Kubernetes secret.

Similarly, retrieve the Elasticsearch elastic user password:

Install Immuta

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

  1. Create a file named immuta-values.yaml with the above content, replacing <password-from-cnpg-secret> and <password-from-eck-secret> with the values retrieved in the previous step.

  2. Deploy Immuta.

  3. Wait for all pods to become ready.

Validation

circle-info

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 configure Ingress for your environment.

  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:8080arrow-up-right, to ensure the Immuta application loads.

  4. Press Control+C to stop port forwarding.

Next step

Configure TLS certificates for K3s.

Last updated