Skip to content

Kubernetes Prerequisites

The Kubernetes package deploys KMI across multiple Kubernetes platforms using Helm. This page covers the supported platforms, system requirements, and prerequisites you must satisfy before running the deployment.

PlatformValues FileIngress (Internal)Storage Class
AWS EKSvalues-aws-eks.yamlALB (internal)gp3
GCP GKEvalues-gcp-gke.yamlGCE (internal)standard
Azure AKSvalues-azure-aks.yamlApplication Gateway (internal)managed-premium
OpenShiftvalues-openshift.yamlOpenShift Router (internal)gp2-csi
On-Premises / Ranchervalues-onprem.yamlNGINX (internal)cluster default
  • AWS ECR
  • GCP Artifact Registry / GCR
  • Azure ACR
  • Docker Hub
  • Harbor
  • Nexus
  • JFrog Artifactory
  • GitLab Registry
  • Quay.io
  • Any OCI-compliant private registry
ResourceMinimumRecommended
Nodes23
CPU per node2 cores4 cores
RAM per node4 GB8 GB
Disk20 GB50 GB
SoftwareVersionRequired For
Kubernetes1.23 or laterAll platforms
Helm3.0 or laterAll platforms
kubectl1.23 or laterAll platforms
Docker20 or laterLoading/pushing images
yq4.0 or laterYAML processing
AWS CLI2.0 or laterEKS, only for auto-login to ECR
gcloud CLILatestGKE, only for auto-login to GCR / Artifact Registry
az CLILatestAKS, only for auto-login to ACR
oc CLILatestOpenShift, for internal-registry login and ImageStream creation

Internal (pod-to-pod within the cluster)

PortProtocolServicePurpose
3000TCPFrontendNext.js UI
18002TCPBackendData Replicator Service
18003TCPBackendMonitoring Service
18004TCPBackendSocket.IO (real-time updates)
27017TCPMongoDBDatabase

External access (internal load balancer / ingress)

PortProtocolDirectionPurpose
80HTTPInboundInternal LB - Web UI access
443HTTPSInboundInternal LB - Web UI access (if TLS enabled)

The deployment script automatically applies the correct storage class via the platform-specific values overlay files.

PlatformStorage Class
AWS EKSgp3 or gp2
GCP GKEstandard or standard-rwo
Azure AKSmanaged-premium or default
On-PremisesCluster default (for example, local-path, nfs-client, longhorn)

These are the key Helm values the chart exposes. Most are driven from your .env file by the deploy script, but you can override them directly if needed.

ParameterDescriptionDefault
mongodb.enabledEnable MongoDBtrue
mongodb.auth.rootUsernameRoot usernameadmin
mongodb.auth.rootPasswordRoot password""
mongodb.persistence.enabledEnable persistencetrue
mongodb.persistence.storageClassStorage classPlatform-specific (see above)
mongodb.persistence.sizeStorage size10Gi
ParameterDescriptionDefault
frontend.enabledEnable frontendtrue
frontend.replicaCountReplica count1
frontend.image.repositoryImage repositorykmi-frontend
frontend.ingress.enabledEnable ingresstrue

Before starting the installation, verify the following:

ItemCommand to VerifyExpected Output
Kubernetes cluster accessiblekubectl get nodesNodes in Ready state
Helm installedhelm versionv3.10+
yq installedyq --versionv4.0+
Docker installeddocker --versionv20+
Storage class availablekubectl get scDefault StorageClass exists
Ingress controller configuredkubectl get pods -A | grep ingressIngress controller pods running

You must authenticate to your container registry before running the deployment script.

Terminal window
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com

Verify the login succeeded:

Terminal window
docker login <registry-url>
# Expected: Login Succeeded
  • AWS CLI configured (aws sts get-caller-identity)
  • EBS CSI driver installed (kubectl get pods -n kube-system | grep ebs)
  • ALB Ingress Controller installed (configured for internal scheme)

The package files for the Helm deployment:

kmi-k8s-vX.x/
├── k8s-deploy.sh # Generic deployment script (all platforms)
├── .env.example # Environment configuration template (Docker)
├── .env-k8s.example # Environment configuration template (Kubernetes)
├── images.tar.gz # Docker images archive
├── mongo-init.sh # MongoDB initialization script
├── README.md # Guide for the deployment
└── k8s-deploy-package/ # Helm charts
├── values.yaml # Base configuration values
├── values-aws-eks.yaml # AWS EKS platform overlay
├── values-gcp-gke.yaml # GCP GKE platform overlay
├── values-azure-aks.yaml # Azure AKS platform overlay
├── values-openshift.yaml # OpenShift platform overlay
├── values-onprem.yaml # On-prem/Rancher platform overlay
├── templates/ # Helm chart templates
├── Chart.yaml # Chart details
└── files/ # MongoDB init script folder

Once the prerequisites are met, continue to Deploy.