--- sidebar_position: 1 --- # Future Homelab - OpenTofu, K3S, Ansible & DevOps Documentation of the migration to a modern infrastructure based on Kubernetes and DevOps practices. ## Vision Evolve my homelab towards an infrastructure that is: - **Cloud-native** with Kubernetes (K3S) - **Infrastructure as Code** with OpenTofu - **Highly automated** with Ansible and GitOps - **Observable** with advanced monitoring and logging ## Target Tech Stack ### Orchestration - **K3S**: Lightweight and performant Kubernetes distribution - **Helm**: Package manager for Kubernetes - **ArgoCD**: GitOps for continuous deployment ### Infrastructure as Code - **OpenTofu**: Open-source fork of Terraform for IaC - **Ansible**: Configuration management and provisioning - **Git**: Version control for all infrastructure ### DevOps & CI/CD - **Forgejo Actions**: Integrated CI/CD - **GitOps**: Declarative and versioned deployment - **Kustomize**: Kubernetes configuration management ### Observability - **Prometheus**: Metrics and alerting - **Grafana**: Visualization and dashboards - **Loki**: Log aggregation - **Tempo**: Distributed tracing ## Migration Goals ### Technical - Horizontal scalability - High availability - Automated deployments - Complete observability ### Learning - Master Kubernetes in production - Practice Infrastructure as Code - Implement DevOps best practices - Explore cloud-native technologies ## Roadmap The migration happens in stages: 1. **Phase 1**: Basic K3S setup 2. **Phase 2**: Migration of critical services 3. **Phase 3**: GitOps implementation (ArgoCD) 4. **Phase 4**: Observability and monitoring 5. **Phase 5**: Complete automation with OpenTofu Each step is documented with encountered challenges and solutions provided. ## Why This Evolution? This migration represents: - **Professional skills**: Technologies used in enterprise - **Practical learning**: Experimentation in real conditions - **Technical evolution**: Moving to modern and scalable solutions - **Portfolio**: Demonstration of advanced DevOps skills ## Articles import DocCardList from '@theme/DocCardList';