Legend — Terminology & Layers¶
This page defines the vocabulary used throughout the documentation. The platform is described as a stack of six layers, from the physical hardware at the bottom to the end-user application services at the top. Every component named elsewhere in these docs belongs to exactly one of these layers.
flowchart TB
L6["6 · Application Services<br/>Core Service · Assistant Service · KMS · Frontend"]
L5["5 · Application Dependency Apps<br/>Hatchet · Weaviate · Zitadel · Foundry · Qdrant · OpenSearch · Redis"]
L4["4 · Platform Apps<br/>GitLab · ArgoCD · Vault · ESO · Reloader · cert-manager · CNPG"]
L3["3 · RKE2 — Kubernetes Cluster<br/>control plane + CPU/GPU workers"]
L2["2 · Virtual Servers (VMs + server roles)<br/>BIND · HAProxy · AppHAProxy · NTP · PKI · Ceph · Harbor"]
L1["1 · Hardware<br/>physical bare-metal servers (with / without GPU)"]
L6 --> L5 --> L4 --> L3 --> L2 --> L1
Rule of thumb: each layer runs on the one below it. Hardware hosts Virtual Servers; Virtual Servers host the RKE2 cluster; RKE2 runs the Platform Apps; Platform Apps deliver and secure the Application Dependency Apps and Application Services.
1 · Hardware¶
Definition: the physical, bare-metal servers that everything else runs on. Two classes:
| Class | Description | Examples in this environment |
|---|---|---|
| Compute (no GPU) | General-purpose servers that host virtual machines and distributed storage | HPE DL385 Gen11 — kvm1-3, worker4-7 |
| GPU compute | Servers with GPUs, used as bare-metal Kubernetes workers for AI/ML workloads | HPE DL380a Gen12 — gpu1-7 (8× NVIDIA H200 NVL each) |
2 · Virtual Server¶
Definition: a VM (virtual machine) running on the hardware, together with the server role(s) installed on it. These provide the foundational infrastructure services the platform depends on — they are not Kubernetes workloads.
| Role | What it does | Where |
|---|---|---|
| BIND | DNS — resolves all cluster hostnames | infra1/2 |
| HAProxy | Load balancer for the Kubernetes API and control-plane traffic | infra1/2 |
| AppHAProxy | Load balancer / entry point for application ingress traffic | infra tier |
| NTP | Time synchronisation across all nodes | infra1/2 |
| PKI | Internal certificate authority (Step-CA) for TLS | infra1/2 |
| Ceph | Distributed storage — block (RBD), filesystem (CephFS), object (S3/RGW) | kvm1-3, worker4-7 |
| Harbor | Private container image registry | harbor1/2 |
Other Virtual Servers in this environment: bastion1/2 (jump hosts), gitlab1, reposerver1
(RPM mirror), daytona1 (dev environments), vascan1, logserver1. See the full list in
Resource Inventory → Supporting VMs.
3 · RKE2 — the Kubernetes Cluster¶
Definition: RKE2 is the Kubernetes distribution that forms the container-orchestration layer. It runs on the Virtual Servers (control plane + CPU workers) and on the GPU hardware (bare-metal GPU workers). Everything in layers 4–6 is a Kubernetes workload running inside RKE2.
| Term | Meaning |
|---|---|
| Control plane | The 3 master nodes running the Kubernetes API + etcd |
| CPU worker | Worker node (VM) that runs general workloads |
| GPU worker | Bare-metal worker node with GPUs for AI/ML workloads |
| Namespace | Logical partition inside the cluster (e.g. ask, hatchet, argocd) |
4 · Platform Apps¶
Definition: the platform tooling deployed into the Kubernetes cluster that delivers, secures, and operates everything above it. These are shared across all application services and are deployed once per environment.
| App | Role |
|---|---|
| GitLab | Git source + Helm chart registry — the source of truth ArgoCD deploys from |
| ArgoCD | GitOps engine — reconciles the cluster to match Git |
| Vault | Secrets management — the source of truth for all tokens, passwords, keys |
| ESO (External Secrets Operator) | Syncs secrets from Vault into native Kubernetes Secrets |
| Reloader | Restarts workloads automatically when their config/secret changes |
| cert-manager | Issues TLS certificates from the internal CA |
| CNPG (CloudNativePG) | Operator that manages the HA PostgreSQL database clusters |
See Platform Deployment → Base-Layer Service Guides.
5 · Application Dependency Apps¶
Definition: supporting applications that the Application Services depend on to function. They are not the product themselves, but the product cannot run without them. Deployed per application group.
| App | Role | Used by |
|---|---|---|
| Hatchet | Durable workflow / async task engine | core-service, KMS |
| Weaviate | Vector database for semantic (RAG) search | KMS |
| Zitadel | Identity provider (IdP) bundled with core-service | all services (auth) |
| Foundry | Internal LLM model-serving endpoint + routing | assistant-service, KMS |
| Qdrant | Vector database | assistant-service |
| OpenSearch | Lexical (BM25) search index | KMS |
| Redis | In-memory cache / queue | assistant-service |
6 · Application Service¶
Definition: the ASK product services themselves — the end-user-facing applications this whole platform exists to run.
| Service | Role |
|---|---|
| Core Service | IAM / org / catalog — bundles Zitadel; everything authenticates through it |
| Assistant Service | Agent / chat service (API + intelligence + tooling + workers) |
| KMS (Knowledge Management Service) | Document ingestion + RAG (vector + lexical search) |
| Frontend | The ASK web UI — the browser entry point |
See Application Services.
Quick reference¶
| Layer | One-line definition | Examples |
|---|---|---|
| Hardware | Physical bare-metal servers (with/without GPU) | HPE DL385 Gen11, HPE DL380a Gen12 (GPU) |
| Virtual Server | VMs + infra server roles | BIND, HAProxy, AppHAProxy, NTP, PKI, Ceph, Harbor |
| RKE2 | The Kubernetes cluster | control plane, CPU/GPU workers |
| Platform Apps | Shared platform tooling in K8s | GitLab, ArgoCD, Vault, ESO, Reloader, cert-manager, CNPG |
| Application Dependency Apps | Apps the services depend on | Hatchet, Weaviate, Zitadel, Foundry, Qdrant, OpenSearch, Redis |
| Application Service | The ASK product services | Core Service, Assistant Service, KMS, Frontend |