Cloud engineers at iits-consulting use such tools as Terraform, Kubernetes, Helm, Vault, and others to manage cloud infrastructures for the clients in all popular public cloud platforms. A descriptive Infrastructure as a Code (IaC) model makes the process transparent and reproducible. On the flip side, engineers need to adjust the tooling each time when switching from one project to another. This increases the risks of messing up environment variables, configs, and other settings from different projects. In this series of articles, Alex Litvinenko will describe the setup we use to prepare reproducible development environments for various infrastructure projects and how we isolate them. The first part addresses the issue of locking down the tooling versions.