Helmfile Configuration
Configure how Atmos executes Helmfile commands for Kubernetes deployments, including EKS integration, kubeconfig management, and cluster name configuration.
The use_eks setting now defaults to false (previously true). If you use helmfile with EKS clusters, you must explicitly add use_eks: true to your configuration. See the Helmfile EKS Modernization blog post for migration details.
Configuration
atmos.yaml
Configuration Reference
commandSpecifies the executable to run for Helmfile commands. Defaults to
helmfile.Environment variable:
ATMOS_COMPONENTS_HELMFILE_COMMANDCommand-line flag:--helmfile-commandExamples:
helmfile- Use Helmfile from PATH/usr/local/bin/helmfile- Use specific binary
base_pathDirectory containing Helmfile component directories. Supports absolute and relative paths.
Environment variable:
ATMOS_COMPONENTS_HELMFILE_BASE_PATHCommand-line flag:--helmfile-diruse_eksWhen
true, Atmos configures AWS EKS integration for kubeconfig management. Whenfalse(default), Atmos uses the existing kubeconfig.Environment variable:
ATMOS_COMPONENTS_HELMFILE_USE_EKSDefault:falsekubeconfig_pathDirectory where Atmos stores generated kubeconfig files. Required when
use_eksistrue. Using/dev/shm(shared memory) is recommended for security as files are not persisted to disk.Environment variable:
ATMOS_COMPONENTS_HELMFILE_KUBECONFIG_PATHcluster_nameExplicit EKS cluster name to connect to. This is the simplest option when you have a fixed cluster name.
Environment variable:
ATMOS_COMPONENTS_HELMFILE_CLUSTER_NAMEExample:
my-eks-clustercluster_name_templateGo template for generating EKS cluster names dynamically. Has access to the full component section including
vars,settings, and other configuration.Environment variable:
ATMOS_COMPONENTS_HELMFILE_CLUSTER_NAME_TEMPLATEExample:
{{ .vars.namespace }}-{{ .vars.environment }}-{{ .vars.stage }}-eksThis generates cluster names like
acme-ue1-prod-eksbased on component variables.cluster_name_pattern- Deprecated
Use
cluster_name_templatewith Go template syntax instead. This option uses token replacement and will log a deprecation warning.Pattern for generating EKS cluster names using token replacement. Supports context variables:
{namespace}- Organization namespace{tenant}- Tenant identifier{environment}- Environment (e.g.,ue1,uw2){stage}- Stage (e.g.,dev,prod)
Environment variable:
ATMOS_COMPONENTS_HELMFILE_CLUSTER_NAME_PATTERNExample:
{namespace}-{tenant}-{environment}-{stage}-eks-cluster helm_aws_profile_pattern- Deprecated
Use the
--identityflag instead for AWS authentication. This option uses token replacement and will log a deprecation warning.Pattern for generating AWS profile names used by Helm. Supports the same context variables as
cluster_name_pattern.Environment variable:
ATMOS_COMPONENTS_HELMFILE_HELM_AWS_PROFILE_PATTERNExample:
{namespace}-{tenant}-gbl-{stage}-helm
Command-Line Flags
--cluster-nameOverride the configured cluster name. Takes precedence over all configuration options.
Example:
atmos helmfile apply nginx -s prod --cluster-name=override-cluster--identitySpecify the identity to use for AWS authentication. Integrates with the Atmos identity system instead of using profile patterns.
Example:
atmos helmfile apply nginx -s prod --identity=prod-admin
Cluster Name Precedence
When use_eks is enabled, the cluster name is determined in this order:
--cluster-nameflag (highest priority)cluster_nameconfigurationcluster_name_templateexpanded with Go templatescluster_name_patternexpanded with token replacement (deprecated)
AWS Authentication Precedence
When use_eks is enabled, AWS authentication is determined in this order:
--identityflag (recommended)helm_aws_profile_pattern(deprecated)
EKS Integration
When use_eks is enabled, Atmos automatically:
- Generates kubeconfig files for EKS clusters
- Configures AWS credentials (via identity or profile)
- Sets up the correct cluster context before running Helmfile
The kubeconfig is written to the path specified by kubeconfig_path.
Examples
Using with Existing Kubeconfig (Non-EKS)
For non-EKS Kubernetes clusters (k3s, GKE, AKS, etc.), simply disable EKS integration:
atmos.yaml
Using with EKS and Identity Authentication
atmos.yaml
# Use identity for AWS authentication
atmos helmfile apply nginx -s prod --identity=prod-admin
Using with Explicit Cluster Name
atmos.yaml
Overriding Cluster Name at Runtime
# Override any configured template/pattern with --cluster-name flag
atmos helmfile apply nginx -s prod --identity=prod-admin --cluster-name=other-cluster
Migration from Legacy Configuration
If you have an existing configuration using the deprecated options:
Before (deprecated)
After (recommended)
Use the --identity flag instead of helm_aws_profile_pattern:
atmos helmfile apply my-component -s prod --identity=prod-admin
Related Commands
📄️ atmos helmfile
Execute Helmfile commands
📄️ atmos helmfile generate varfile
Generate variable files for Helmfile