graph TB
    %% Host Machine
    subgraph "Host Machine (macOS)"
        HOST[("Host Machine<br/>macOS Sonoma")]
        PODMAN[("Podman<br/>Container Runtime")]
        HOSTDIRS[("Host Directories<br/>~/k8s-data/dev/<br/>• minio<br/>• redis<br/>• logs<br/>• prometheus<br/>• grafana<br/>• certs")]
    end

    %% Kind Cluster
    subgraph "Kind Cluster (eveai-dev-cluster)"
        %% Control Plane
        CONTROL[("Control Plane Node<br/>Port Mappings:<br/>• 80:30080<br/>• 443:30443<br/>• 3080:30080")]

        %% Ingress Controller
        subgraph "ingress-nginx namespace"
            INGRESS[("NGINX Ingress Controller<br/>Handles routing to services")]
        end

        %% EveAI Dev Namespace
        subgraph "eveai-dev namespace"
            %% Web Services
            subgraph "Web Services"
                APP[("EveAI App<br/>Port: 5001<br/>NodePort: 30001")]
                API[("EveAI API<br/>Port: 5003<br/>NodePort: 30003")]
                CHAT[("EveAI Chat Client<br/>Port: 5004<br/>NodePort: 30004")]
                STATIC[("Static Files Service<br/>NGINX<br/>Port: 80")]
            end

            %% Background Services
            subgraph "Background Workers"
                WORKERS[("EveAI Workers<br/>Replicas: 2<br/>Celery Workers")]
                CHATWORKERS[("EveAI Chat Workers<br/>Replicas: 2<br/>Celery Workers")]
                BEAT[("EveAI Beat<br/>Celery Scheduler<br/>Replicas: 1")]
                ENTITLE[("EveAI Entitlements<br/>Port: 8000")]
            end

            %% Infrastructure Services
            subgraph "Infrastructure Services"
                REDIS[("Redis<br/>Port: 6379<br/>NodePort: 30379")]
                MINIO[("MinIO<br/>Port: 9000<br/>Console: 9001<br/>NodePort: 30900")]
            end

            %% Monitoring Services
            subgraph "Monitoring Stack"
                PROM[("Prometheus<br/>Port: 9090")]
                GRAFANA[("Grafana<br/>Port: 3000")]
                NGINX_EXPORTER[("NGINX Prometheus Exporter<br/>Port: 9113")]
            end

            %% Storage
            subgraph "Persistent Storage"
                PV_REDIS[("Redis PV<br/>5Gi Local")]
                PV_MINIO[("MinIO PV<br/>20Gi Local")]
                PV_LOGS[("App Logs PV<br/>5Gi Local")]
                PV_PROM[("Prometheus PV<br/>10Gi Local")]
                PV_GRAFANA[("Grafana PV<br/>5Gi Local")]
            end

            %% Configuration
            subgraph "Configuration"
                CONFIGMAP[("eveai-config<br/>ConfigMap")]
                SECRETS[("eveai-secrets<br/>Secret")]
            end
        end
    end

    %% External Registry
    REGISTRY[("Container Registry<br/>registry.ask-eve-ai-local.com<br/>josakola/eveai_*")]

    %% Connections
    HOST --> PODMAN
    PODMAN --> CONTROL
    HOSTDIRS --> PV_REDIS
    HOSTDIRS --> PV_MINIO
    HOSTDIRS --> PV_LOGS
    HOSTDIRS --> PV_PROM
    HOSTDIRS --> PV_GRAFANA

    %% Service connections
    CONTROL --> INGRESS
    INGRESS --> APP
    INGRESS --> API
    INGRESS --> CHAT
    INGRESS --> STATIC

    %% Worker connections to Redis
    WORKERS --> REDIS
    CHATWORKERS --> REDIS
    BEAT --> REDIS

    %% All services connect to storage
    APP --> PV_LOGS
    API --> PV_LOGS
    CHAT --> PV_LOGS
    WORKERS --> PV_LOGS
    CHATWORKERS --> PV_LOGS
    BEAT --> PV_LOGS
    ENTITLE --> PV_LOGS

    %% Infrastructure storage
    REDIS --> PV_REDIS
    MINIO --> PV_MINIO
    PROM --> PV_PROM
    GRAFANA --> PV_GRAFANA

    %% Configuration connections
    CONFIGMAP --> APP
    CONFIGMAP --> API
    CONFIGMAP --> CHAT
    CONFIGMAP --> WORKERS
    CONFIGMAP --> CHATWORKERS
    CONFIGMAP --> BEAT
    CONFIGMAP --> ENTITLE

    SECRETS --> APP
    SECRETS --> API
    SECRETS --> CHAT
    SECRETS --> WORKERS
    SECRETS --> CHATWORKERS
    SECRETS --> BEAT
    SECRETS --> ENTITLE

    %% Registry connections
    REGISTRY --> APP
    REGISTRY --> API
    REGISTRY --> CHAT
    REGISTRY --> WORKERS
    REGISTRY --> CHATWORKERS
    REGISTRY --> BEAT
    REGISTRY --> ENTITLE

    %% Monitoring connections
    PROM --> APP
    PROM --> API
    PROM --> CHAT
    PROM --> REDIS
    PROM --> MINIO
    PROM --> NGINX_EXPORTER
    GRAFANA --> PROM

    %% External Access
    subgraph "External Access"
        ACCESS[("http://minty.ask-eve-ai-local.com:3080<br/>• /admin/ → App<br/>• /api/ → API<br/>• /chat-client/ → Chat<br/>• /static/ → Static Files")]
    end

    ACCESS --> INGRESS

    %% Styling
    classDef webService fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    classDef infrastructure fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    classDef storage fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    classDef monitoring fill:#fff3e0,stroke:#e65100,stroke-width:2px
    classDef config fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    classDef external fill:#f1f8e9,stroke:#33691e,stroke-width:2px

    class APP,API,CHAT,STATIC webService
    class REDIS,MINIO,WORKERS,CHATWORKERS,BEAT,ENTITLE infrastructure
    class PV_REDIS,PV_MINIO,PV_LOGS,PV_PROM,PV_GRAFANA,HOSTDIRS storage
    class PROM,GRAFANA,NGINX_EXPORTER monitoring
    class CONFIGMAP,SECRETS config
    class REGISTRY,ACCESS external