# alexalkhatib/fleetman-kubernetes-deployment architecture

> Architecture diagram of the GitHub repository alexalkhatib/fleetman-kubernetes-deployment, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alexalkhatib/fleetman-kubernetes-deployment
- Repository: https://github.com/alexalkhatib/fleetman-kubernetes-deployment

## Overview

4KUBE packages and operates Fleetman’s six-service Kubernetes deployment, with local and production Kustomize overlays and a Docker Compose alternative. Its principal flow is GPS simulation → message broker → position persistence → REST gateway → web interface. A separate browser console presents deployment architecture, cluster/manifests information, a simulated runbook, and project documents from static project data; it does not connect to a live cluster. Console call relationships are based on sampled source; deployment and service relationships are documented in the README.

Main entry points: [`console/src/App.tsx`](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/App.tsx) (Console shell), [`console/src/views/Overview.tsx`](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Overview.tsx) (Overview), [`console/src/views/Cluster.tsx`](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Cluster.tsx) (Cluster explorer), [`console/src/components/YamlCode.tsx`](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/components/YamlCode.tsx) (YAML display)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fleetman["Fleetman services"]
  node_simulator["Position simulator"]
  node_queue["ActiveMQ queue"]
  node_tracker["Position tracker"]
  node_mongodb[("MongoDB")]
  node_gateway["API gateway"]
  node_webapp["Fleetman webapp"]
end

subgraph group_deployment["Deployment configuration"]
  node_base["Shared resources<br/>[kustomization.yaml]"]
  node_local["Local overlay<br/>[kustomization.yaml]"]
  node_production["Production overlay<br/>[kustomization.yaml]"]
  node_compose["Compose setup<br/>[compose.yaml]"]
end

subgraph group_operations["Operations"]
  node_deployscript["Deploy script<br/>[deploy.sh]"]
end

subgraph group_console["4KUBE console"]
  node_consoleapp["Console shell<br/>[App.tsx]"]
  node_projectdata["Project data<br/>[project.json]"]
  node_overview["Overview<br/>[Overview.tsx]"]
  node_architecture["Architecture view<br/>[Architecture.tsx]"]
  node_cluster_view["Cluster explorer<br/>[Cluster.tsx]"]
  node_deploy_view["Runbook view<br/>[Deploy.tsx]"]
  node_manifests["Manifest browser<br/>[Manifests.tsx]"]
  node_docs["Docs and deliverables<br/>[Docs.tsx]"]
  node_yaml["YAML display<br/>[YamlCode.tsx]"]
  node_format["Display formatters<br/>[format.ts]"]
end

node_operator(("Operator"))
node_cluster["Kubernetes cluster"]

node_simulator -->|"publishes positions"| node_queue
node_tracker -->|"consumes messages"| node_queue
node_tracker -->|"writes positions"| node_mongodb
node_gateway -->|"reads positions"| node_mongodb
node_webapp -->|"REST requests"| node_gateway
node_local -->|"uses resources"| node_base
node_production -->|"uses resources"| node_base
node_operator -->|"starts deployment"| node_deployscript
node_deployscript -->|"applies manifests"| node_cluster
node_operator -->|"applies local overlay"| node_cluster
node_compose -.->|"runs alternative"| node_cluster
node_operator -->|"browses console"| node_consoleapp
node_consoleapp -->|"renders view"| node_overview
node_consoleapp -->|"renders view"| node_cluster_view
node_consoleapp -->|"renders view"| node_deploy_view
node_consoleapp -->|"renders view"| node_manifests
node_consoleapp -->|"renders view"| node_docs
node_overview -->|"displays project"| node_projectdata
node_overview -->|"renders diagram"| node_architecture
node_cluster_view -->|"displays workloads"| node_projectdata
node_manifests -->|"displays manifests"| node_projectdata
node_overview -->|"renders commands"| node_yaml
node_cluster_view -->|"renders YAML"| node_yaml
node_deploy_view -->|"renders commands"| node_yaml
node_docs -->|"renders commands"| node_yaml
node_cluster_view -->|"formats resource data"| node_format
node_overview -->|"formats summary"| node_format

click node_simulator "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-position-simulator.yaml"
click node_queue "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-queue.yaml"
click node_tracker "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-position-tracker.yaml"
click node_mongodb "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-mongodb.yaml"
click node_gateway "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-api-gateway.yaml"
click node_webapp "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-webapp.yaml"
click node_base "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/kustomization.yaml"
click node_local "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/overlays/local/kustomization.yaml"
click node_production "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/overlays/production/kustomization.yaml"
click node_compose "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/docker/compose.yaml"
click node_deployscript "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/scripts/deploy.sh"
click node_consoleapp "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/App.tsx"
click node_projectdata "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/data/project.json"
click node_overview "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Overview.tsx"
click node_architecture "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/components/Architecture.tsx"
click node_cluster_view "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Cluster.tsx"
click node_deploy_view "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Deploy.tsx"
click node_manifests "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Manifests.tsx"
click node_docs "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Docs.tsx"
click node_yaml "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/components/YamlCode.tsx"
click node_format "https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/lib/format.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_simulator,node_queue,node_tracker,node_mongodb,node_gateway,node_webapp toneBlue
class node_base,node_local,node_production,node_compose toneAmber
class node_deployscript toneMint
class node_consoleapp,node_projectdata,node_overview,node_architecture,node_cluster_view,node_deploy_view,node_manifests,node_docs,node_yaml,node_format toneRose
class node_operator,node_cluster toneIndigo
```

## Components

### Fleetman services

- [Position simulator](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-position-simulator.yaml): `kubernetes/base/fleetman-position-simulator.yaml`
- [ActiveMQ queue](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-queue.yaml): `kubernetes/base/fleetman-queue.yaml`
- [Position tracker](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-position-tracker.yaml): `kubernetes/base/fleetman-position-tracker.yaml`
- [MongoDB](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-mongodb.yaml): `kubernetes/base/fleetman-mongodb.yaml`
- [API gateway](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-api-gateway.yaml): `kubernetes/base/fleetman-api-gateway.yaml`
- [Fleetman webapp](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/fleetman-webapp.yaml): `kubernetes/base/fleetman-webapp.yaml`

### Deployment configuration

- [Shared resources](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/base/kustomization.yaml): `kubernetes/base/kustomization.yaml`
- [Local overlay](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/overlays/local/kustomization.yaml): `kubernetes/overlays/local/kustomization.yaml`
- [Production overlay](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/kubernetes/overlays/production/kustomization.yaml): `kubernetes/overlays/production/kustomization.yaml`
- [Compose setup](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/docker/compose.yaml): `docker/compose.yaml`

### Operations

- [Deploy script](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/scripts/deploy.sh): `scripts/deploy.sh`

### 4KUBE console

- [Console shell](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/App.tsx): `console/src/App.tsx`
- [Project data](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/data/project.json): `console/src/data/project.json`
- [Overview](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Overview.tsx): `console/src/views/Overview.tsx`
- [Architecture view](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/components/Architecture.tsx): `console/src/components/Architecture.tsx`
- [Cluster explorer](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Cluster.tsx): `console/src/views/Cluster.tsx`
- [Runbook view](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Deploy.tsx): `console/src/views/Deploy.tsx`
- [Manifest browser](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Manifests.tsx): `console/src/views/Manifests.tsx`
- [Docs and deliverables](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/views/Docs.tsx): `console/src/views/Docs.tsx`
- [YAML display](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/components/YamlCode.tsx): `console/src/components/YamlCode.tsx`
- [Display formatters](https://github.com/alexalkhatib/fleetman-kubernetes-deployment/blob/main/console/src/lib/format.ts): `console/src/lib/format.ts`

### Other components

- **Operator**
- **Kubernetes cluster**

## Connections

- Position simulator → ActiveMQ queue: publishes positions (evidence: `readme.md`)
- Position tracker → ActiveMQ queue: consumes messages (evidence: `readme.md`)
- Position tracker → MongoDB: writes positions (evidence: `readme.md`)
- API gateway → MongoDB: reads positions (evidence: `readme.md`)
- Fleetman webapp → API gateway: REST requests (evidence: `readme.md`)
- Local overlay → Shared resources: uses resources (evidence: `readme.md`)
- Production overlay → Shared resources: uses resources (evidence: `readme.md`)
- Operator → Deploy script: starts deployment (evidence: `readme.md`)
- Deploy script → Kubernetes cluster: applies manifests (evidence: `readme.md`)
- Operator → Kubernetes cluster: applies local overlay (evidence: `readme.md`)
- Compose setup → Kubernetes cluster: runs alternative
- Operator → Console shell: browses console
- Console shell → Overview: renders view (evidence: `console/src/App.tsx`)
- Console shell → Cluster explorer: renders view (evidence: `console/src/App.tsx`)
- Console shell → Runbook view: renders view (evidence: `console/src/App.tsx`)
- Console shell → Manifest browser: renders view (evidence: `console/src/App.tsx`)
- Console shell → Docs and deliverables: renders view (evidence: `console/src/App.tsx`)
- Overview → Project data: displays project
- Overview → Architecture view: renders diagram (evidence: `console/src/views/Overview.tsx`)
- Cluster explorer → Project data: displays workloads (evidence: `console/src/views/Cluster.tsx`)
- Manifest browser → Project data: displays manifests
- Overview → YAML display: renders commands (evidence: `console/src/views/Overview.tsx`)
- Cluster explorer → YAML display: renders YAML (evidence: `console/src/views/Cluster.tsx`)
- Runbook view → YAML display: renders commands (evidence: `console/src/views/Deploy.tsx`)
- Docs and deliverables → YAML display: renders commands (evidence: `console/src/views/Docs.tsx`)
- Cluster explorer → Display formatters: formats resource data (evidence: `console/src/views/Cluster.tsx`)
- Overview → Display formatters: formats summary (evidence: `console/src/views/Overview.tsx`)
