Skip to main content

Installation

The ConfidentialMind Platform can be deployed to a Kubernetes cluster running either in the private cloud or on-premises. The core system is packaged as a Helm chart.

Prerequisites

Before beginning the installation, ensure you have:

  • Access to a Kubernetes cluster or the ability to create one
  • Administrative access to the target environment
  • DNS management capabilities for your domain
  • Sufficient compute resources for your planned workload

K8s cluster minimum requirements

  • NVIDIA GPU node
  • 16 CPU cores
  • 32 GiB RAM
  • 100 GiB K8s node storage
  • RHEL-like or Debian-like OS
  • 1 TiB K8s PV Storage Class
  • public IP with SSH (TCP 22), HTTP (TCP 80), and HTTPS (TCP 443) access
  • public access through to the listed sub-domains (normally a wildcard DNS record is enough):
(Admin Portal) portal.cm-platform.yourcompany.com → <K8s_ingress_public_IP>
(Authentication) auth.cm-platform.yourcompany.com → <K8s_ingress_public_IP>
(APIs) api.cm-platform.yourcompany.com → <K8s_ingress_public_IP>
(Tools) tools.cm-platform.yourcompany.com → <K8s_ingress_public_IP>

Automated Installation Process

The installation process consists of four main steps, each building upon the previous one. Follow these steps in order:

Step 1: Cluster Creation

If you don't have a managed Kubernetes environment, we recommend using K3s for the ConfidentialMind Platform installation.

Option A: Managed Kubernetes

If you're using a managed Kubernetes service (e.g., AKS, EKS, GKE, private cloud vendor):

  • Use your cloud provider's existing Kubernetes service
  • Ensure your cluster meets the minimum requirements
  • Configure appropriate node pools for your workload

Option B: K3s Installation

For on-premises or self-managed installations:

  • Follow our Cluster Creation Guide
  • Configure K3s with recommended settings
  • Set up high availability if required

Step 2: DNS Configuration

Configure DNS records for your ConfidentialMind installation:

  1. Determine your base domain (e.g., cm-platform.yourcompany.com)
  2. Create a wildcard DNS record pointing all possible sub-domains to K8s cluster's public IP:
    *.<base>.<domain>.<com> → <K8s_ingress_public_IP>

Step 3: Platform Deployment

The final step is the Platform Deployment. THe whole process is automated and can be done with out deployment tool. Follow our detailed Platform Deployment Guide to:

Post-Installation Steps

After completing the installation:

  1. Configure additional settings:

  2. Verify system components:

  3. Agree on a node maintenance procedure:

    • Nodes are drained before their host machines are rebooted or powered off — see Graceful Node Shutdown
    • Decide how unattended shutdowns are handled; that page lists the kubelet and systemd concepts to explore

Troubleshooting

If you encounter issues during installation:

  1. Check the component-specific logs:

    kubectl logs -n <namespace> <pod-name>
  2. Verify all dependencies are correctly installed: The Platform Base deployment and it's Dependencies are controlled by Argo CD. Our Deployment Tool will guide you how to access Argo CD. You can use it for Dependencies deployment verification.

  3. Ensure DNS records are properly configured and propagated

Next Steps

Once your installation is complete:

  1. Review the Platform Components documentation to understand your deployment
  2. Check that the deployment works by running through the Getting Started guide
  3. Set up node maintenance and shutdown practices per Graceful Node Shutdown