Skip to content

ModGPT — ASK Platform Overview

The ASK platform is a production AI assistant system composed of five microservices deployed on Kubernetes via ArgoCD. This section documents each application's container images, Helm charts, environment matrix, configuration variables, and secrets.


Application Inventory

Application Repo Type Port(s) Helm Chart
ASK Core Service ask-core-service Python / FastAPI 8000 core-service v1.0.0
ASK Assistant Service ask-assistant-service Python / FastAPI (multi-image) 8000 / 8001 / 8003 / 8080 assistant-service v0.2.2
ASK Frontend ask-frontend Node.js / Next.js 3000 frontend v1.0.0
ASK Knowledge Management Service ask-knowledge-management-service Python / FastAPI 8000 knowledge-management-service v1.0.0
ASK DevOps ask-devops Infrastructure-only N/A N/A

Environment Matrix

Environment Code Cloud/DC Core Assistant Frontend KMS Voice
Development ai71-uaen-dev-ask71 Azure UAE North ✅ (+ preview)
Staging ai71-uaen-stg-ask71 Azure UAE North
Production — Mufti ai71-uaen-prod-mufti Azure UAE North
Production — ATRC ai71-atrc-uaen-prod-ask Azure ATRC
PP Production ai71-pp-auh1-prod-ask On-prem Abu Dhabi
MEC1 Staging ai71-mec1-stg-ask71 Azure MEC1
Edge Production edge-uaen-prod-ask Edge UAE North
core42 Dev ai71-modgpt-auh1-dev-ask On-prem RKE2 (core42) 🔄 🔄 🔄 🔄

Environment naming convention

Format: ai71-{project}-{location}-{env}-{app}

Token PP value core42 value
project pp modgpt
location auh1 auh1
env prod dev
app ask ask

Shared Architecture Decisions

Container Images — Registry

All production images are pushed to Azure Container Registry:

ai71uaenprodask71acr01.azurecr.io/<image-name>:<tag>

Dependency Proxy

All Dockerfiles accept an ARG DEPENDENCY_PROXY_PREFIX (or PROXY_PREFIX) so the build pipeline can route pulls through a registry mirror when building in air-gapped or bandwidth-restricted environments.

Python Dependency Management

All Python services use uv for fast, reproducible installs from locked uv.lock files. Private packages (internal GitLab PyPI indexes) are mounted as build secrets — credentials are never baked into image layers.

Private PyPI indexes consumed: - connectors-lib — external connector integrations - iam-client — Zitadel IAM SDK - storage-lib — Azure Blob / MinIO abstraction - foundry-client — AI71 Foundry LLM proxy SDK - document-understanding — document parsing SDK - evals-sdk — evaluation pipeline SDK - ask-feature-flags — LaunchDarkly-style feature flag SDK

Secrets Management

Environment Backend ExternalSecret provider
PP / Azure / ATRC Azure Key Vault provider: azure
core42 HashiCorp Vault provider: vault (ClusterSecretStore: vault-backend)

An ExternalSecret CRD (via External Secrets Operator) syncs secrets into Kubernetes Secret objects on a 1-minute refresh cycle.

Secret naming convention (Azure): {release-name}--{SECTION__KEY} in Key Vault → SECTION_KEY env var in pod. Secret path (Vault): secret/cl1/<service>/ → see Service Config & Secrets Inventory.

Config Management

Non-secret configuration is version-controlled in config/default.toml (Dynaconf format). Environment-specific overrides are stored in Helm values files and mounted as config/override.toml at deploy time.

Helm Chart Release

Charts are published to GitLab's OCI Helm registry via CI:

oci://registry.gitlab.com/ai71.ai/devops/devops-helm-charts
ArgoCD uses the HTTP Package Registry API for deployments due to an OCI multi-level path JWT auth issue with ArgoCD v3.x.

Async Job Queue

All backend services that run background jobs use Hatchet as the workflow/job orchestration engine. Each worker image is a separate Kubernetes Deployment consuming Hatchet job queues.


ArgoCD Deployment

Applications are deployed via ArgoCD using the App of Apps (cluster-addons) pattern. Each service has: - An ApplicationSet driving environment-specific Application CRs - Helm value files sourced from helm/environments/values-<env>.yaml - Separate AppProject per application group for RBAC

The DevOps repo (ask-devops-main) owns the ArgoCD Application manifests; individual service repos own their Helm charts.