Customize Component Behavior
In Atmos, every component is associated with a command. The command is what drives or provisions that component. For example, Terraform "root modules" can be used as components in Atmos. To instruct Atmos how to interact with that component, we must specify the command to run and and where the code for the component is located. Then, depending on the type of component, certain behaviors can be configured.
The components
section of the atmos.yaml
is how we do it. It defines how Atmos locates and executes your components.
Think of it as the bootstrapping configuration. This is where we can define the the command
to run,
the base_path
location of the components, and so forth.
Do not confuse this configuration with configuring components in stacks.
This configuration below is defined in the atmos.yaml
and meant for specifying default behaviors for components,
such as what command to use when running Terraform commands, the base path for Terraform, and more.
Terraform Component Behaviorโ
For additional details on configuring Terraform components, refer to the Terraform and OpenTofu documentation.
The term โTerraformโ is used in this documentation to refer to generic concepts such as providers, modules, stacks, the HCL-based domain-specific language and its interpreter. Atmos works with OpenTofu.
atmos.yaml
Helmfile Component Behaviorโ
atmos.yaml
command
Specifies the executable to be called by
atmos
when running Helmfile commands. If not defined,helmfile
is used. Can also be set usingATMOS_COMPONENTS_HELMFILE_COMMAND
ENV var, or--helmfile-command
command-line argument.Example values:
helmfile
,/usr/local/bin/helmfile
.base_path
Example value: "components/helmfile". Can also be set using
ATMOS_COMPONENTS_HELMFILE_BASE_PATH
ENV var, or--helmfile-dir
command-line argument. Supports both absolute and relative paths.use_eks
If not specified, defaults to
true
. Can also be set usingATMOS_COMPONENTS_HELMFILE_USE_EKS
ENV var.kubeconfig_path
Can also be set using
ATMOS_COMPONENTS_HELMFILE_KUBECONFIG_PATH
ENV var. Example value:/dev/shm
.helm_aws_profile_pattern
Can also be set using
ATMOS_COMPONENTS_HELMFILE_HELM_AWS_PROFILE_PATTERN
ENV var. Example value:{namespace}-{tenant}-{gbl}-{stage}-helm
cluster_name_pattern
Can also be set using ATMOS_COMPONENTS_HELMFILE_CLUSTER_NAME_PATTERN` ENV var. Example value:
{namespace}-{tenant}-{environment}-{stage}-eks-cluster`