Infinity-Pipeline is a Kubernetes laboratory project I developed between March and May 2026 to acquire deep expertise in DevOps and Cloud-Native infrastructure. The project demonstrates the practical implementation of modern system administration: automating a complete cluster from scratch, ensuring scalability, and deploying it into a production-ready state.
A local Kubernetes system comprising one master and three worker nodes, fully automated with Ansible, orchestrated by Kubernetes, and running a Python Flask application (SwissTask) backed by PostgreSQL.
Modern software engineering demands maximum efficiency. In this project, generative AI was leveraged as a "pair-programming" partner. While AI assisted with troubleshooting, generating boilerplate code, and syntax optimization, the architectural decisions, Infrastructure as Code (IaC) design, DevSecOps concepts, and final code responsibility remained entirely mine. This reflects my real-world workflow: utilizing modern tools efficiently without relinquishing architectural control.
The project consists of four virtual machines, all based on Ubuntu 22.04 LTS:
The SwissTask application integrates industry-standard DevOps and security practices:
| Component | Technology | Details |
|---|---|---|
| API & Validation | Flask, Pydantic | CRUD endpoints with strict payload validation against SQL Injection |
| API Documentation | Flasgger (Swagger) | Auto-generated, interactive OpenAPI 3.0 specification |
| Security Scans | Trivy, Bandit | SAST (Static Application Security Testing) & Container Vulnerability Scanning |
| Database | PostgreSQL 15 | StatefulSet with Persistent Volume |
| Authentication | Kubernetes Secrets | Base64-encoded DB credentials |
| Network Access | Cloudflare Tunnel | Secure external connection ("Zero-Trust") without open router ports |
| Monitoring | Prometheus + Grafana | Real-time metrics and visualization |
All system components are automated via Ansible. The playbooks execute in a deterministic sequence:
A push to the main branch triggers the GitHub Actions pipeline, which incorporates built-in security gates:
Key Feature: Images are not tagged with :latest, but rather with the unique Git Commit-SHA. This effectively prevents image caching issues and ensures deployments are 100% reproducible.
New versions are deployed via Kubernetes Rolling Updates to ensure high availability:
Kubernetes autonomously monitors and maintains cluster health:
Root Cause: The rate limiter failed to distinguish internal cluster health-check traffic from external, potentially malicious requests.
Solution: Analyzed the internal traffic routing and implemented targeted @limiter.exempt decorators explicitly for the internal probes:
@app.route('/health', methods=['GET'])
@limiter.exempt
def health_check():
"""Kubernetes liveness probe bypasses rate limits"""
# ...
Result: Internal K8s monitoring functions seamlessly (0 Restarts), while all external API endpoints remain strictly protected against DDoS abuse.
Root Cause: Kubernetes does not operate stably when Linux Swap is enabled, as the Kubelet service terminates itself to preserve memory allocation accuracy.
Solution: Permanently disabled swap across all nodes via Ansible automation:
- name: Disable swap
shell: swapoff -a
- name: Remove from fstab
lineinfile:
path: /etc/fstab
regexp: "^.* swap"
state: absent
Result: The cluster operates stably, and pods are scheduled reliably.
Solution: Transitioned to an "Immutable Tags" strategy. Images are now strictly tagged with the unique Git Commit-SHA:
docker push myrepo/app:${{ github.sha }}
Result: Every deployment guarantees the extraction of the exact, updated code. Rollbacks are now deterministic and secure.
This project serves as a practical demonstration of my deep understanding of modern Cloud-Native architectures:
Infinity-Pipeline is production-ready for demonstration purposes. To deploy the system onto physical cloud servers, only the IP addresses in the ansible/inventory.ini file need to be updated prior to executing the Ansible playbooks.