To build a production-grade container orchestration environment using Minikube, automating the lifecycle of a Python/Flask application from code commit to live deployment on a local development machine.
The Environment: Implemented a local Kubernetes cluster using Minikube running on a high-performance Windows PC.
Hypervisor Integration: Leveraged Docker as the driver for Minikube to manage container lifecycles within a virtualized Linux environment.
Resource Management: Configured CPU and memory limits within Minikube to balance cluster performance with host OS stability.
Pipeline-as-Code: Developed a Jenkinsfile to automate the build-test-push lifecycle.
Registry Integration: Automated the push to Docker Hub using secure credentials, ensuring the latest build of the "Vending Machine" app is globally available for the local cluster to pull.
GitOps Workflow: Implemented the "App of Apps" pattern using a root-app to manage declarative manifests.
Minikube Automation: Configured Argo CD Image Updater to monitor Docker Hub for new digests, bypassing the need for manual kubectl updates.
Local-to-Cloud Sync: Demonstrated a seamless flow where local code changes are pushed to GitHub, built in Jenkins, and pulled back down into the local Minikube cluster automatically.
RBAC (Role-Based Access Control): Secured the Image Updater by creating custom ClusterRoles and ServiceAccounts within the Minikube environment.
Input Validation: Solved Kubernetes metadata constraints by implementing aliases for Docker images containing forward slashes.
Zero-Touch Deployment: Successfully automated the deployment of the site, through a completely hands-off reconciliation loop.
Orchestration: Minikube (K8s), Argo CD, Jenkins.
Cloud/DevOps: GitOps, Docker Hub, CI/CD Pipelines.
Engineering: RBAC, Troubleshooting Kubernetes APIs, Shell Scripting (Bash).