Vehagn Homelab: Recent Updates & Improvements

by Lucas 46 views

Hey everyone! 👋 Let's dive into some recent updates I've made to my homelab. It's been a busy time, and I've been tinkering with various aspects of the setup. I'll walk you through the changes, covering everything from dependency updates to new features and some refactoring efforts. This is a great way to see how I manage and maintain my infrastructure. I'm excited to share the details with you guys, so let's get started!

Dependency Updates: Keeping Things Fresh 🔄

One of the most consistent activities in my homelab is keeping the dependencies up-to-date. This is crucial for security, performance, and getting access to the latest features. Regularly updating dependencies helps to patch any known vulnerabilities, which is super important for maintaining a secure environment. It also ensures that all the software components are compatible with each other, reducing the chances of unexpected issues or downtime. These updates include everything from the underlying operating system packages to the tools and applications I use. I make use of a Renovate bot to automate the process, which simplifies the maintenance workflow significantly. The bot automatically creates pull requests whenever new versions of dependencies are available. I can then review each update and merge them in, ensuring that the system is always running the latest and most secure versions of all components. Over the past few months, I've made several dependency updates, including those from December 26th, 2024, January 26th, 2025, February 8th, 2025, March 24th, 2025, April 17th, 2025, June 8th, 2025, and July 18th, 2025. Each of these updates brings important fixes and improvements, ensuring the stability and security of my homelab. It is a continuous process that I take seriously, and I consider it an essential part of responsible homelab management. Keeping dependencies current is a fundamental practice. These updates span across various components and cover all sorts of packages and tools, so I have a reliable and well-maintained system.

Enhancements and New Features 🚀

Next up, let's discuss some exciting new features that have been added to enhance the functionality and capabilities of the homelab. These additions are aimed at improving user experience, streamlining workflows, and increasing the overall efficiency of the system. These updates not only make things easier to manage but also make the lab more powerful and versatile. One of the key enhancements is the enablement of kubectl OIDC auth. This is a cool move to improve the way I authenticate to my Kubernetes cluster. By using OIDC (OpenID Connect), I can integrate with identity providers and make it easier and more secure to manage access. Another significant feature involves improvements to the tofu (Terraform) configuration. These improvements include a better way of supplying apiServer arguments and utilizing inlineManifests for bootstrapping Cilium. These changes offer more flexibility and control over the deployment process, helping the system adapt and be easier to manage. Furthermore, the recent updates focused on actually updating Kubernetes when specified. The changes to the tofu code and the fixing of the switching to the .tofu extension improve the overall functionality and usability of the Terraform code. There are also updates related to Cilium, including adding Grafana dashboards to improve monitoring capabilities. These dashboards give me better visibility into the performance and health of the network. Finally, the enablement of metrics in Kubernetes is also noteworthy. This will allow me to monitor and analyze the system's performance more effectively. These new features demonstrate my continued commitment to improving and refining the homelab to meet the needs of my personal projects.

Refactoring and Configuration Improvements 🛠️

Beyond new features, I've been focused on refactoring and configuration improvements to make the system more maintainable and efficient. These changes improve the underlying structure of the system and reduce complexity, making it easier to manage and scale. Refactoring code is an important practice for any software project, including a homelab. It helps to improve code readability, reduce redundancy, and improve the overall performance of the system. One significant refactoring effort involved consolidating the machine configurations into two files, simplifying the structure and making it easier to manage. I've also made the talos_machine_config_version an optional parameter, which adds more flexibility. Moreover, I have refactored the tofu code to make it more modular and organized, extracting variables into their own files and templating extraManifests in the talos machine config. I've also been templating kubelet arguments to give more flexibility in how it is configured. These efforts ensure that the configuration is clean, well-organized, and easy to understand. These refactoring efforts will make it easier to update and maintain the system in the long run. Running tofu fmt on the configuration is a great practice to ensure the code is consistent and follows the best standards. The updates will improve the system's overall structure and make it more efficient to manage. These refactoring and configuration improvements show a dedication to best practices and a commitment to create a solid, maintainable homelab environment.

Specific Fixes and Tweaks 🔧

It's not all about big features; some smaller fixes and tweaks are necessary for a smoothly running system. These adjustments may seem minor, but they're crucial for ensuring everything works as expected. One important fix involved the netbird-agent, specifically allowing read access to the root file system and adding sysctl. This change resolves permissions issues and ensures that the agent can function correctly. There was also a fix to the Cilium installation, where I switched to using the cilium-cli image instead of the cilium-cli-ci image. This ensures I am using the correct image for the installation process. Additionally, there's a fix that allows multiple nodes on the same host again, which provides more flexibility in how I set up my environment. Each of these fixes demonstrates the importance of paying attention to the details and ensuring that the system runs smoothly. The small tweaks and fixes play a critical role in maintaining the health and functionality of the homelab.

Development Environment and Future Plans 💡

Finally, I've built a development environment with useful tools for this project. The development environment will improve the efficiency of the homelab. Also, I am planning on adding other improvements to the existing system. I plan to add more automation and monitoring. I also plan to improve the efficiency and maintainability of the homelab. I'm also exploring new technologies and tools that can be integrated into the setup to keep it current and relevant. The evolution of this homelab is an ongoing process, and I'm always looking for new ways to improve it. I want to be sure to always be improving the homelab to enhance its performance.

That's it for this update! I hope you found this overview informative. If you have any questions or suggestions, feel free to reach out. Thanks for reading, and stay tuned for more updates in the future! Cheers! 👋