Skip to content

Overview

Welcome to the RCIIS DevOps documentation! This comprehensive guide will help you understand, deploy, and maintain the Regional Customs Interconnectivity Information System (RCIIS) infrastructure.

What is RCIIS DevOps?

RCIIS DevOps is a GitOps-managed Kubernetes deployment system that orchestrates the infrastructure and application deployments for the Regional Customs Interconnectivity Information System across multiple environments. The system provides a robust, scalable, and secure platform for customs data exchange and processing.

Key Features

  • Declarative Configuration: Everything as code in Git
  • Automated Deployments: ArgoCD manages continuous deployment
  • Multi-Environment: Local, SQAT, testing, and production environments
  • Rollback Capabilities: Easy rollback to previous states
  • Encrypted Secrets: SOPS with Age encryption for all sensitive data
  • RBAC: Role-based access control across environments
  • Network Policies: Secure network segmentation
  • Certificate Management: Automated TLS certificate provisioning
  • Local Development: Kind-based local Kubernetes clusters
  • Hot Reloading: Rapid development cycles
  • Comprehensive Testing: Automated testing pipelines
  • Documentation: Self-documenting infrastructure
  • High Availability: Multi-node cluster configurations
  • Monitoring: Comprehensive observability stack
  • Backup & Recovery: Automated backup strategies
  • Disaster Recovery: Multi-region deployment capabilities

Architecture at a Glance

graph TB
    subgraph "Developer Workstation"
        DEV[Developer]
        KIND[Kind Cluster]
        DEV --> KIND
    end

    subgraph "Git Repository"
        REPO[rciis-devops]
        CHARTS[Helm Charts]
        SECRETS[SOPS Secrets]
        MANIFESTS[K8s Manifests]

        REPO --> CHARTS
        REPO --> SECRETS
        REPO --> MANIFESTS
    end

    subgraph "CI/CD Pipeline"
        GHA[GitHub Actions]
        HARBOR[Harbor Registry]

        GHA --> HARBOR
    end

    subgraph "Kubernetes Environments"
        subgraph "SQAT"
            ARGO_SQAT[ArgoCD]
            APPS_SQAT[Applications]
        end

        subgraph "Testing/Prod - EAC Cluster"
            ARGO_EAC[ArgoCD]
            APPS_TEST[Testing Apps]
            APPS_PROD[Production Apps]
        end
    end

    DEV --> REPO
    REPO --> GHA
    REPO --> ARGO_SQAT
    REPO --> ARGO_EAC

    HARBOR --> APPS_SQAT
    HARBOR --> APPS_TEST
    HARBOR --> APPS_PROD

Technology Stack

Component Technology Purpose
Container Orchestration Kubernetes Application hosting and management
GitOps ArgoCD Continuous deployment and synchronization
Package Management Helm Application packaging and templating
Secret Management SOPS + Age Encryption and secure secret storage
Service Mesh ApiSIX API gateway and traffic management
Message Streaming Apache Kafka (Strimzi) Event streaming and integration
Integration Platform Apache Camel K Enterprise integration patterns
Object Storage MinIO S3-compatible object storage
Certificate Management cert-manager Automated TLS certificate provisioning
Ingress NGINX Ingress Controller External traffic routing
Load Balancing MetalLB Bare-metal load balancing
Networking Cilium/Calico Container networking and security
Container Registry Harbor Private container image registry

Quick Navigation

New to the project?

Start with the Prerequisites and Local Development guides to set up your development environment.

Understanding the system?

Explore the Architecture section to understand how all components work together.

Deploying to production?

Review the Security and Operations sections thoroughly.

Getting Help

  • Issues: Report bugs and request features in the GitHub repository
  • Discussions: Join technical discussions in the repository discussions
  • Documentation: This documentation is continuously updated - suggest improvements via pull requests

Next Steps

  1. Prerequisites - Install required tools and dependencies
  2. Local Development - Set up your local development environment
  3. Quick Start - Deploy your first application
  4. Architecture Overview - Deep dive into the system architecture