Skip to main content

Pre-Deployment Checklist

Goal

Verify that your Kubernetes cluster and supporting infrastructure meet all requirements before starting a Keymate platform installation. Completing this checklist prevents the most common deployment failures: insufficient resources, missing credentials, DNS misconfiguration, and TLS provisioning issues.

Audience

Platform engineers and operators responsible for preparing the target environment for a Keymate deployment.

Prerequisites

  • A provisioned Kubernetes cluster (managed or self-managed)
  • kubectl configured with administrative access to the target cluster
  • Access to DNS management for your domain
  • Access to credential stores or secrets management

Before You Start

Run through this checklist in order. Each category builds on the previous one. If any item fails, resolve it before proceeding to the installation guides.

warning

Do not skip the resource capacity check. Keymate deploys multiple components across four layers. Clusters that are too small cause pods to remain in Pending state or get evicted under load.

Checklist

1. Kubernetes Cluster

ItemWhat to verifyHow to check
Cluster is running and accessiblekubectl can connect and list nodeskubectl get nodes
Kubernetes version is compatibleCluster runs a supported Kubernetes versionkubectl version --short
RBAC enabledThe cluster has Role-Based Access Control activekubectl auth can-i create deployments
Admin access confirmedYour kubeconfig grants cluster-admin or equivalent privilegeskubectl auth can-i '*' '*'
Storage class availableAt least one default StorageClass exists for persistent volumeskubectl get storageclass

2. Resource Capacity (CPU / Memory / Storage)

Keymate deploys components across four layers. Each layer requires dedicated compute and storage resources.

LayerMinimum CPUMinimum MemoryPersistent Storage
Infrastructure (service mesh, cert-manager, operators)2 cores4 GB
Data (databases, caches, message brokers)4 cores8 GB50 GB SSD
Application (identity, authorization, gateway, services)4 cores8 GB10 GB
Observability (telemetry collector, dashboards)2 cores4 GB50 GB SSD
Total minimum12 cores24 GB110 GB SSD
info

These are minimum values for a single-environment deployment. Production environments with high availability, multiple replicas, and significant workload need proportionally more resources. Plan for at least 2x the minimums for production.

Verify available cluster capacity:

kubectl top nodes

If the cluster does not have sufficient capacity, add nodes or increase node sizes before proceeding.

3. Networking

ItemWhat to verifyHow to check
Ingress controller installedAn ingress controller (reverse proxy or cloud-managed) is runningkubectl get pods -A | grep ingress
Load balancer availableThe cluster can provision external load balancers (or use NodePort/MetalLB for on-prem)kubectl get svc -A | grep LoadBalancer
Inter-pod communicationPods can communicate across namespacesDeploy a test pod and verify connectivity
Outbound internet accessCluster nodes can reach external registries and services (skip for air-gapped)kubectl run test --image=busybox --rm -it -- wget -qO- https://example.com

4. DNS

ItemWhat to verifyHow to check
Domain configuredYou have allocated a domain or subdomain for Keymate services (e.g., keymate.example.com)Confirm with your DNS administrator
Wildcard or individual recordsDNS records point to the ingress controller's external IP or load balancerdig keymate.example.com
DNS propagation completeRecords resolve correctly from outside the clusternslookup keymate.example.com

5. TLS Certificates

ItemWhat to verifyHow to check
cert-manager installed (automated)cert-manager is running and can issue certificateskubectl get pods -n cert-manager
ClusterIssuer configuredYou have set up a ClusterIssuer for Let's Encrypt or your internal CAkubectl get clusterissuer
OR manual certificates readyTLS certificate and private key files are available for manual provisioningVerify files exist and are not expired
Certificate covers required domainsThe certificate includes all platform endpoint domainsopenssl x509 -in cert.pem -noout -text | grep DNS

6. Credentials and Secrets

ItemWhat to verifyNotes
Database credentialsUsername, password, host, port, and database name for all required databasesRequired for identity provider and authorization engine
Cache credentialsConnection details for the distributed cacheRequired for session and token caching
SMTP configurationSMTP server, port, username, and password for email notificationsRequired if email-based flows are enabled
TLS certificate and keyCertificate chain and private key if not using cert-managerRequired for manual TLS provisioning
Container registry accessCredentials for pulling Keymate container imagesRequired if using a private registry
warning

Do not store credentials in plain text in Git repositories or Helm values files. Use Kubernetes Secrets, an external secrets operator, or your organization's secrets management solution.

7. Backup Strategy

ItemWhat to verifyNotes
Database backup planYou have defined a backup schedule and retention policy for persistent databasesCritical for disaster recovery
Backup storage configuredThe backup destination (object storage, NFS, or cloud-managed backup) accepts writesVerify write access
Restore procedure testedYou have validated at least one restore from backupTest before going to production

8. Organizational Readiness

ItemWhat to verifyNotes
Deployment model chosenTeam has decided between Helm-based or GitOps-based installationSee Deployment Models
Team access confirmedAll team members who will perform the installation have cluster accessVerify RBAC roles
Rollback plan definedThe team knows how to roll back to the previous state if the deployment failsDocument the rollback procedure before starting
Maintenance window scheduledIf deploying to a shared cluster, schedule a maintenance windowReduces blast radius of any issues

Validation Scenario

Scenario

A platform engineer runs through the complete checklist before starting a Keymate installation on a new AKS cluster.

Expected Result

  • All checklist items pass or have documented exceptions
  • Cluster has at least 12 cores, 24 GB memory, and 110 GB SSD available
  • DNS resolves to the ingress endpoint
  • TLS certificates are provisioned or cert-manager is ready
  • All credentials reside in Kubernetes Secrets
  • The team has documented and tested the backup strategy

How to Verify

  • Run each kubectl command listed in the checklist tables
  • Document any items that require follow-up
  • Do not proceed to installation until all required items pass

Troubleshooting

  • Insufficient resources. If kubectl top nodes shows low available capacity, add nodes or increase node sizes. For managed Kubernetes, use the cloud provider's scaling features.
  • DNS not resolving. Verify that DNS records point to the correct load balancer IP. Check TTL values — propagation can take time.
  • cert-manager not issuing certificates. Check cert-manager logs: kubectl logs -n cert-manager deploy/cert-manager. Common causes: DNS challenge failures and rate limiting from Let's Encrypt.
  • Cannot pull container images. Verify you have configured registry credentials as an imagePullSecret in the target namespaces.

Next Steps

After completing the checklist: