Skip to main content

Deployments and Requirements

Pyplan offers several deployment options:

Building blocks on each cloud​

The building blocks are the same everywhere; what changes is the cloud service that provides each one.

Building blockAWSAzureGoogle Cloud
Kubernetes clusterAmazon EKSAzure Kubernetes Service (AKS)Google Kubernetes Engine (GKE)
Infrastructure as codeCloudFormationTerraformTerraform
IngressApplication Load Balancer + AWS WAFGateway API (AKS application routing)Gateway API (GKE Gateway controller)
TLS certificateAWS Certificate ManagerAzure Key VaultCertificate Manager
PostgreSQL 16Amazon RDSAzure Database for PostgreSQL Flexible ServerIn the cluster, or Cloud SQL
Shared file storage (/data)Amazon EFSAzure Files PremiumFilestore
SecretsAWS Secrets ManagerAzure Key VaultSecret Manager
Container imagesAmazon ECRAzure Container RegistryDocker Hub or Artifact Registry

Common requirements​

These apply to every cloud. Each provider's page lists what it needs on top of them.

  • Kubernetes: a private cluster on a supported version — K8S API supported: v1.34, v1.35, v1.36.
  • Two kinds of nodes, each with its own label:
    • Application nodes (env: Pyplan) for the API, UI, WebSocket, Celery workers, the AI component (MCP), Redis and Argo CD.
    • Engine nodes for the calculation engines. Each connected user gets an engine pod that is removed when the session ends, so this node pool scales with concurrent users, not licensed users, and can scale to zero.
  • Pyplan resource namespace (pyplan by default).
  • PostgreSQL 16 with max_connections set to 1000, reachable only from the cluster.
  • Shared file system (ReadWriteMany) mounted at /data: user models and the daily database dumps. It must be backed up daily.
  • Redis for the user sessions. It runs in the cluster with persistence on its own disk, so restarting it does not log users out.
  • A DNS name with a valid TLS certificate. HTTP is redirected to HTTPS.
  • Outbound Internet access to pull or import the container images during installation and updates, and to the AI provider if the Pyplan AI features are enabled.
  • Administrative access through a CI/CD pipeline with workload identity federation (recommended). No long-lived cloud keys are stored in the pipeline.
  • Argo CD for continuous deployment (recommended): it keeps the cluster in sync with a Git branch, so updating or rolling back Pyplan is a commit.
  • Container images: pyplan_ui, pyplan_api, pyplan_engine (Arm or x86 builds), redis:alpine, busybox and bitnami/kubectl for maintenance tasks, and pyplan_ai if the AI integration is enabled.