Repository navigation
Deployment strategy
Vincent Neeb edited this page Jan 26, 2025
·
5 revisions
For more information take a look at the deployment repository (IaC).
Table of Contents
We own the domain connect-u.site, hosted on a Virtual Private Server (VPS) provided by STRATO.
VPS Specifications:
- CPU: 6 Cores
- Memory: 23 GB
- HDD: 360 GB
Our application runs on a Kubernetes instance deployed on the VPS. We use K3s, a Lightweight Kubernetes distribution. K3s offers a highly available, production-grade Kubernetes environment, ideal for managing modern workloads.
To ensure seamless deployment and lifecycle management, we use ArgoCD. This tool allows for:
- Automated rollouts and rollbacks
- Continuous monitoring and synchronization
- Direct integration within the Kubernetes cluster for enhanced control
Below is a visual overview of our workflow:
-
Trigger:
- New release branches on the frontend or backend repositories automatically trigger a GitHub Action Workflow.
-
Containerization:
- The application is containerized using Docker and pushed to our container registry.
- Image tags follow a branch-name-based naming convention.
-
Deployment Repository Update:
- The workflow clones the deployment repository and updates the image tag for the desired application.
- Changes are committed and pushed back to the repository.
-
ArgoCD Integration:
- ArgoCD polls the deployment repository every 3 minutes for changes.
- Upon detecting updates, ArgoCD automatically applies them to the Kubernetes cluster.

-
Health Checks:
- Before replacing old containers, health checks ensure the new containers are operational.
- Automation First: Minimize manual intervention with automated CI/CD pipelines.
- Reliability: Health checks ensure stability during rollouts.
- Scalability: Kubernetes and ArgoCD allow for efficient scaling and management of workloads.
Files and folders icons created by Ghozi Muhtarom - Flaticon