Toolchain Configuration
The toolchain feature enables you to manage CLI tool versions (Terraform, kubectl, helm, etc.) directly within Atmos, ensuring consistency across your team and CI/CD environments.
You will learn
- Manage tool versions with
.tool-versionsfiles - Install CLI binaries from GitHub releases and other sources
- Integrate with the Aqua registry ecosystem for 1,000+ pre-configured tools
- Version control your tools for team consistency
- Automatic tool provisioning in workflows
Basic Configuration
Configure toolchain behavior in your atmos.yaml:
atmos.yaml
Configuration Options
file_pathPath to the
.tool-versionsfile that tracks tool versions for your project.- Default:
.tool-versions - Supports relative or absolute paths
- Compatible with asdf format
- Default:
install_pathDirectory where toolchain binaries will be installed.
- Default:
.tools - Supports relative or absolute paths
- Tools are organized by name and version:
.tools/bin/{os}/{tool}/{version}/{tool}
- Default:
versions_fileAlternative name for
file_path. Usefile_pathfor consistency.tools_dirAlternative name for
install_path. Useinstall_pathfor consistency.
Tool Versions File
Create a .tool-versions file to track tool dependencies:
.tool-versions
This file follows the asdf format:
- One tool per line
- Format:
<tool-name> <version> - Commit to version control for team consistency
Installing Tools
Install all tools from .tool-versions:
atmos toolchain install
Install a specific tool:
atmos toolchain install terraform@1.9.8
atmos toolchain install kubectl@1.28.0
Directory Structure
After installation, tools are organized as follows:
.tools/
├── bin/
│ └── darwin/ # OS-specific directory
│ ├── terraform/
│ │ └── 1.9.8/
│ │ └── terraform # Binary
│ ├── kubectl/
│ │ └── 1.28.0/
│ │ └── kubectl
│ └── helm/
│ └── 3.13.0/
│ └── helm
└── cache/
└── downloads/ # Downloaded archives
Advanced Configuration
For advanced toolchain features, see:
- Registries - Configure tool registries (Aqua, custom, inline)
- Aliases - Define tool name aliases
Complete Example
atmos.yaml
Environment Variables
Configure toolchain behavior via environment variables:
ATMOS_TOOLCHAIN_FILE_PATH- Override the tool versions file path
ATMOS_TOOLCHAIN_INSTALL_PATH- Override the tool installation directory
ATMOS_GITHUB_TOKENorGITHUB_TOKENGitHub personal access token for:
- Higher API rate limits (5,000 req/hour vs 60 unauthenticated)
- Access to private repositories
- Better reliability during bulk operations
CLI Precedence
Configuration is resolved in this order (highest to lowest priority):
- CLI flags:
atmos toolchain install --install-path=/custom/path - Environment variables:
ATMOS_TOOLCHAIN_INSTALL_PATH=/custom/path - Configuration file:
toolchain.install_pathinatmos.yaml - Defaults:
.toolsfor install_path,.tool-versionsfor file_path
Related Documentation
- Toolchain Commands - Full command reference
- Workflows - Integrate toolchain with workflows
- Stack Dependencies - Declare tool requirements per component