# ๐Ÿš€ FreeLeaps DevOps Learning Path for Junior Engineers > **Production-Ready Kubernetes & DevOps Documentation** > *Your gateway to understanding our actual infrastructure and becoming a DevOps expert* --- ## ๐Ÿ“‹ **Table of Contents** 1. [๐ŸŽฏ **Quick Start Guide**](#-quick-start-guide) 2. [๐Ÿ—๏ธ **Your Production Infrastructure**](#๏ธ-your-production-infrastructure) 3. [๐Ÿ“š **Core Learning Materials**](#-core-learning-materials) 4. [๐Ÿ”ง **Practical Exercises**](#-practical-exercises) 5. [โšก **Essential Commands**](#-essential-commands) 6. [๐ŸŽ“ **Learning Path**](#-learning-path) 7. [๐Ÿ” **Production Troubleshooting**](#-production-troubleshooting) 8. [๐Ÿ“– **Additional Resources**](#-additional-resources) --- ## ๐ŸŽฏ **Quick Start Guide** ### **๐Ÿš€ First Day Checklist** - [ ] **Access your production cluster**: `kubectl config use-context your-cluster` - [ ] **Explore the management UI**: [RabbitMQ Management UI](#rabbitmq-management-ui) - [ ] **Check ArgoCD**: Visit `https://argo.mathmast.com` - [ ] **Review monitoring**: Access Grafana dashboards - [ ] **Understand your apps**: Check `freeleaps-devops-reconciler` status ### **๐Ÿ”‘ Essential Access Points** ```bash # Your production cluster access kubectl config get-contexts kubectl get nodes -o wide # Your actual services kubectl get svc -A | grep -E "(rabbitmq|argocd|jenkins|gitea)" # Your actual namespaces kubectl get namespaces | grep freeleaps ``` --- ## ๐Ÿ—๏ธ **Your Production Infrastructure** ### **๐ŸŒ Production Domains & Services** | **Service** | **Production URL** | **Purpose** | **Access** | |-------------|-------------------|-------------|------------| | **ArgoCD** | `https://argo.mathmast.com` | GitOps deployment | Web UI | | **Gitea** | `https://gitea.freeleaps.mathmast.com` | Git repository | Web UI | | **Jenkins** | `http://jenkins.freeleaps.mathmast.com` | CI/CD pipelines | Web UI | | **RabbitMQ** | `http://rabbitmq:15672` | Message broker | Management UI | | **Grafana** | `https://grafana.mathmast.com` | Monitoring | Dashboards | ### **๐Ÿ”ง Production Architecture** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ PRODUCTION INFRASTRUCTURE โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Azure Load Balancer (4.155.160.32) โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Ingress-NGINX โ”‚ โ”‚ cert-manager โ”‚ โ”‚ ArgoCD โ”‚ โ”‚ โ”‚ โ”‚ Controller โ”‚ โ”‚ (Let's Encrypt)โ”‚ โ”‚ (GitOps) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ RabbitMQ โ”‚ โ”‚ Jenkins โ”‚ โ”‚ Gitea โ”‚ โ”‚ โ”‚ โ”‚ (Message Q) โ”‚ โ”‚ (CI/CD) โ”‚ โ”‚ (Git Repo) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ freeleaps- โ”‚ โ”‚ freeleaps- โ”‚ โ”‚ freeleaps- โ”‚ โ”‚ โ”‚ โ”‚ devops- โ”‚ โ”‚ apps โ”‚ โ”‚ monitoring โ”‚ โ”‚ โ”‚ โ”‚ reconciler โ”‚ โ”‚ (Your Apps) โ”‚ โ”‚ (Metrics) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### **๐Ÿ“Š Production Namespaces** ```bash # Your actual namespaces freeleaps-alpha # Alpha environment freeleaps-prod # Production environment freeleaps-devops-system # DevOps tools freeleaps-controls-system # Control plane freeleaps-monitoring-system # Monitoring stack ``` --- ## ๐Ÿ“š **Core Learning Materials** ### **๐ŸŽ“ Phase 1: Kubernetes Fundamentals** - **[Kubernetes Core Concepts Guide](Kubernetes_Core_Concepts_Guide.md)** - *Start here!* - **Production Connection**: Your actual pods, services, and deployments - **Real Examples**: Based on your `freeleaps-devops-reconciler` deployment - **Hands-on**: Practice with your actual cluster - **[PVC Deep Dive Guide](PVC_Deep_Dive_Guide.md)** - *Storage fundamentals* - **Production Connection**: Your Azure disk storage classes - **Real Examples**: How your apps use persistent storage - **Troubleshooting**: Common storage issues in your environment ### **๐Ÿ”ง Phase 2: DevOps Infrastructure** - **[Custom Resources & Operators Guide](Custom_Resources_And_Operators_Guide.md)** - *Advanced concepts* - **Production Connection**: Your `freeleaps-devops-reconciler` operator - **Real Examples**: How your CRDs work in production - **Architecture**: Understanding your operator pattern - **[Reconciler Architecture Deep Dive](Reconciler_Architecture_Deep_Dive.md)** - *Your core system* - **Production Connection**: Your actual reconciler deployment - **Real Examples**: How your DevOps automation works - **Troubleshooting**: Common reconciler issues - **[Reconciler Framework Analysis](Reconciler_Framework_Analysis.md)** - *Technical deep dive* - **Production Connection**: Your Python/Kopf operator framework - **Real Examples**: Code analysis from your actual implementation - **Best Practices**: How to improve your reconciler ### **๐ŸŒ Phase 3: Networking & Ingress** - **[Ingress Setup & Redirects Guide](Ingress_Setup_And_Redirects_Guide.md)** - *Web traffic management* - **Production Connection**: Your actual ingress controllers - **Real Examples**: How your domains are configured - **Troubleshooting**: Common ingress issues - **[Current Ingress Analysis](Current_Ingress_Analysis.md)** - *Your actual setup* - **Production Connection**: Your real ingress configurations - **Real Examples**: Your actual domain routing - **Monitoring**: How to check ingress health ### **๐Ÿ“จ Phase 4: Messaging & Communication** - **[RabbitMQ Management Analysis](RabbitMQ_Management_Analysis.md)** - *Message broker* - **Production Connection**: Your actual RabbitMQ deployment - **Real Examples**: Your message queues and exchanges - **Management UI**: How to use the built-in management interface ### **๐Ÿš€ Phase 5: Operations & Deployment** - **[Kubernetes Bootstrap Guide](Kubernetes_Bootstrap_Guide.md)** - *Cluster setup* - **Production Connection**: How your cluster was built - **Real Examples**: Your actual bootstrap process - **Maintenance**: How to maintain your cluster - **[Azure K8s Node Addition Runbook](Azure_K8s_Node_Addition_Runbook.md)** - *Scaling* - **Production Connection**: How to add nodes to your cluster - **Real Examples**: Your actual node addition process - **Automation**: Scripts for node management --- ## ๐Ÿ”ง **Practical Exercises** ### **๐ŸŽฏ Exercise 1: Explore Your Production Cluster** ```bash # 1. Connect to your cluster kubectl config use-context your-production-cluster # 2. Explore your namespaces kubectl get namespaces | grep freeleaps # 3. Check your actual deployments kubectl get deployments -A | grep freeleaps # 4. Monitor your reconciler kubectl logs -f deployment/freeleaps-devops-reconciler -n freeleaps-devops-system ``` ### **๐ŸŽฏ Exercise 2: RabbitMQ Management UI** ```bash # 1. Port forward to RabbitMQ management UI kubectl port-forward svc/rabbitmq-headless -n freeleaps-alpha 15672:15672 # 2. Access the UI: http://localhost:15672 # Username: user # Password: NjlhHFvnDuC7K0ir # 3. Explore your queues: # - freeleaps.devops.reconciler.queue # - freeleaps.devops.reconciler.input ``` ### **๐ŸŽฏ Exercise 3: ArgoCD GitOps** ```bash # 1. Access ArgoCD: https://argo.mathmast.com # 2. Explore your applications: # - freeleaps-devops-reconciler # - freeleaps-apps # - monitoring stack # 3. Check deployment status kubectl get applications -n argocd ``` ### **๐ŸŽฏ Exercise 4: Monitor Your Infrastructure** ```bash # 1. Check cluster health kubectl get nodes -o wide # 2. Monitor resource usage kubectl top nodes kubectl top pods -A # 3. Check ingress status kubectl get ingress -A ``` --- ## โšก **Essential Commands** ### **๐Ÿ” Production Monitoring** ```bash # Your cluster health kubectl get nodes -o wide kubectl get pods -A --field-selector=status.phase!=Running # Your services kubectl get svc -A | grep -E "(rabbitmq|argocd|jenkins|gitea)" # Your reconciler status kubectl get deployment freeleaps-devops-reconciler -n freeleaps-devops-system kubectl logs -f deployment/freeleaps-devops-reconciler -n freeleaps-devops-system ``` ### **๐Ÿ”ง Troubleshooting** ```bash # Check reconciler health kubectl describe deployment freeleaps-devops-reconciler -n freeleaps-devops-system # Check RabbitMQ status kubectl get pods -n freeleaps-alpha | grep rabbitmq kubectl logs -f deployment/rabbitmq -n freeleaps-alpha # Check ingress issues kubectl describe ingress -A kubectl get events -A --sort-by='.lastTimestamp' ``` ### **๐Ÿ“Š Resource Management** ```bash # Monitor resource usage kubectl top nodes kubectl top pods -A # Check storage kubectl get pvc -A kubectl get pv # Check networking kubectl get svc -A kubectl get endpoints -A ``` --- ## ๐ŸŽ“ **Learning Path** ### **๐Ÿ“… Week 1: Foundations** - **Day 1-2**: [Kubernetes Core Concepts](Kubernetes_Core_Concepts_Guide.md) - **Day 3-4**: [PVC Deep Dive](PVC_Deep_Dive_Guide.md) - **Day 5**: Practice exercises with your actual cluster ### **๐Ÿ“… Week 2: DevOps Infrastructure** - **Day 1-2**: [Custom Resources & Operators](Custom_Resources_And_Operators_Guide.md) - **Day 3-4**: [Reconciler Architecture](Reconciler_Architecture_Deep_Dive.md) - **Day 5**: [Reconciler Framework Analysis](Reconciler_Framework_Analysis.md) ### **๐Ÿ“… Week 3: Networking & Communication** - **Day 1-2**: [Ingress Setup & Redirects](Ingress_Setup_And_Redirects_Guide.md) - **Day 3**: [Current Ingress Analysis](Current_Ingress_Analysis.md) - **Day 4-5**: [RabbitMQ Management](RabbitMQ_Management_Analysis.md) ### **๐Ÿ“… Week 4: Operations & Production** - **Day 1-2**: [Kubernetes Bootstrap](Kubernetes_Bootstrap_Guide.md) - **Day 3-4**: [Azure Node Addition](Azure_K8s_Node_Addition_Runbook.md) - **Day 5**: Production troubleshooting and monitoring --- ## ๐Ÿ” **Production Troubleshooting** ### **๐Ÿšจ Common Issues & Solutions** #### **1. Reconciler Not Working** ```bash # Check reconciler status kubectl get deployment freeleaps-devops-reconciler -n freeleaps-devops-system kubectl logs -f deployment/freeleaps-devops-reconciler -n freeleaps-devops-system # Check RabbitMQ connection kubectl exec -it deployment/rabbitmq -n freeleaps-alpha -- rabbitmqctl list_connections ``` #### **2. Ingress Issues** ```bash # Check ingress controller kubectl get pods -n ingress-nginx kubectl logs -f deployment/ingress-nginx-controller -n ingress-nginx # Check certificates kubectl get certificates -A kubectl describe certificate -n your-namespace ``` #### **3. Storage Problems** ```bash # Check PVC status kubectl get pvc -A kubectl describe pvc your-pvc-name -n your-namespace # Check storage classes kubectl get storageclass ``` ### **๐Ÿ“Š Monitoring & Alerts** #### **Key Metrics to Watch** - **Cluster health**: Node status, pod restarts - **Resource usage**: CPU, memory, disk - **Network**: Ingress traffic, service connectivity - **Applications**: Reconciler health, RabbitMQ queues #### **Alerting Setup** ```bash # Check Prometheus targets kubectl get targets -n freeleaps-monitoring-system # Check Grafana dashboards # Access: https://grafana.mathmast.com ``` --- ## ๐Ÿ“– **Additional Resources** ### **๐Ÿ”— Official Documentation** - **[Kubernetes Documentation](https://kubernetes.io/docs/)** - Official K8s docs - **[ArgoCD Documentation](https://argo-cd.readthedocs.io/)** - GitOps platform - **[RabbitMQ Documentation](https://www.rabbitmq.com/documentation.html)** - Message broker - **[Helm Documentation](https://helm.sh/docs/)** - Package manager ### **๐ŸŽฅ Video Resources** - **Kubernetes Crash Course**: [TechWorld with Nana](https://www.youtube.com/watch?v=s_o8dwzRlu4) - **ArgoCD Tutorial**: [ArgoCD Official](https://www.youtube.com/watch?v=MeU5_k9ssOY) - **RabbitMQ Basics**: [RabbitMQ Official](https://www.youtube.com/watch?v=deG25y_r6OI) ### **๐Ÿ“š Books** - **"Kubernetes in Action"** by Marko Lukลกa - **"GitOps and Kubernetes"** by Billy Yuen - **"RabbitMQ in Depth"** by Gavin M. Roy ### **๐Ÿ› ๏ธ Tools & Utilities** - **[k9s](https://k9scli.io/)** - Terminal UI for K8s - **[Lens](https://k8slens.dev/)** - Desktop IDE for K8s - **[kubectx](https://github.com/ahmetb/kubectx)** - Context switching --- ## ๐ŸŽฏ **Next Steps** ### **๐Ÿš€ Immediate Actions** 1. **Set up your development environment** with kubectl and helm 2. **Access your production cluster** and explore the resources 3. **Complete the practical exercises** in this guide 4. **Join the monitoring dashboards** and understand the metrics ### **๐Ÿ“ˆ Career Development** 1. **Get certified**: [CKA (Certified Kubernetes Administrator)](https://www.cncf.io/certification/cka/) 2. **Contribute**: Help improve the reconciler and infrastructure 3. **Learn**: Stay updated with latest K8s and DevOps practices 4. **Share**: Document your learnings and share with the team ### **๐Ÿค Team Collaboration** - **Code reviews**: Review reconciler changes - **Documentation**: Improve this guide based on your experience - **Mentoring**: Help other junior engineers - **Innovation**: Suggest improvements to the infrastructure --- ## ๐Ÿ“ž **Support & Contact** ### **๐Ÿ†˜ Getting Help** - **Team Slack**: #devops-support channel - **Documentation**: This guide and linked resources - **Code Reviews**: GitHub pull requests - **Pair Programming**: Schedule sessions with senior engineers ### **๐Ÿ“ Feedback** - **Documentation**: Create issues for improvements - **Process**: Suggest workflow optimizations - **Tools**: Recommend new tools or improvements --- **๐ŸŽ‰ Welcome to the FreeLeaps DevOps team! You're now part of a production infrastructure that serves real users. Take ownership, learn continuously, and help us build amazing things!** --- *Last updated: $(date)* *Maintained by: FreeLeaps DevOps Team*