.. CCAT System Integration documentation master file CCAT System Integration Documentation ====================================== Overview -------- This documentation covers the CCAT System Integration, including: - Docker Compose configuration and deployment - Configuration management with Dynaconf - Backup and restore procedures - Monitoring with Grafana, Prometheus, and Loki - Service orchestration across multiple nodes Key Components -------------- **Infrastructure Services:** - PostgreSQL database with replication - Redis cache with TLS - InfluxDB for time-series data - MinIO object storage - Grafana dashboards - Prometheus monitoring - Loki log aggregation **Deployment Configurations:** - Local development (docker-compose.local.yml) - Staging environment (docker-compose.staging.yml) - Production nodes: - Database node (docker-compose.production.db.yml) - Data processing node (docker-compose.production.data.yml) - Input node (docker-compose.production.input.yml) - Reuna VM (docker-compose.production.reuna-vm.yml) Quick Links ----------- - :doc:`Operations Database ` - :doc:`Data Transfer Documentation ` Documentation Contents ---------------------- .. toctree:: :maxdepth: 2 :caption: Contents: source/getting-started source/configuration source/deployment source/monitoring source/backup-restore source/pat-rotation Getting Started --------------- For setup instructions, see the project README and the Getting Started guide. Related Documentation --------------------- - `Main Documentation `_ - `Operations Database `_ - `Data Transfer System `_ Indices and tables ================== * :ref:`genindex` * :ref:`search` ======= System Integration & Deployment ================================ The system-integration repository contains Docker Compose configurations, Kubernetes manifests, and supporting infrastructure for deploying the complete CCAT data center stack across different environments. Deployment Environments ----------------------- **Local Development** * ``docker-compose.local.yml`` - Local development environment * ``docker-compose.dev.yml`` - Development with live reload **Staging** * ``docker-compose.staging.yml`` - Staging environment * ``docker-compose.staging.batleth.yml`` - Batleth staging server * ``cologne-staging-k8s/`` - Kubernetes configuration for Cologne staging **Production** * ``docker-compose.production.*.yml`` - Production deployment configurations * Separated into database, data transfer, and input components Infrastructure Components ------------------------- **Core Services** * **PostgreSQL**: Operations database with replication support * **Redis**: Caching and session management * **MinIO**: S3-compatible object storage * **InfluxDB**: Time-series metrics storage **Monitoring & Observability** * **Prometheus**: Metrics collection and alerting * **Grafana**: Dashboards and visualization * **Loki**: Log aggregation * **Promtail**: Log collection agent **Supporting Services** * **Nginx**: Reverse proxy and load balancing * **Celery**: Distributed task queue for background jobs Directory Structure ------------------- ``postgres/`` PostgreSQL initialization scripts and configuration ``grafana/`` Grafana dashboards and provisioning configuration ``prometheus/`` Prometheus monitoring configuration ``loki-config/`` & ``promtail-config/`` Log aggregation configuration ``jenkins_pipelines/`` CI/CD pipeline definitions ``tools/`` Deployment and management scripts Deployment Guides ----------------- Kubernetes Deployments ~~~~~~~~~~~~~~~~~~~~~~ The ``cologne-staging-k8s/`` directory contains Kubernetes manifests for deploying on the Cologne cluster: * Deployment configurations * Service definitions * Ingress routing * Persistent volume claims See ``cologne-staging-k8s/README.md`` for detailed deployment instructions. Docker Compose Deployments ~~~~~~~~~~~~~~~~~~~~~~~~~~ Docker Compose files are organized by environment and component: 1. **Choose your environment**: local, staging, or production 2. **Select components**: database, data transfer, input processing 3. **Run**: ``docker-compose -f up -d`` Initialization Scripts ---------------------- ``init_ops_db_entrypoint.sh`` Initializes the operations database schema and loads seed data ``init-influxdb.sh`` Sets up InfluxDB databases and retention policies ``init-minio.sh`` Configures MinIO buckets and access policies Monitoring ---------- The monitoring stack provides comprehensive observability: * **System Metrics**: CPU, memory, disk, network via Prometheus * **Application Metrics**: Custom metrics from Python services * **Logs**: Centralized logging with Loki * **Dashboards**: Pre-configured Grafana dashboards for all services Access Grafana at the configured endpoint to view dashboards and alerts.