Modernizing Helmfile EKS Integration
Atmos helmfile commands now use the identity system for AWS authentication and provide more flexible EKS cluster name configuration.
What Changed
EKS Integration is Now Opt-In
The use_eks setting now defaults to false. If you use helmfile with EKS clusters, you must explicitly enable it:
components:
helmfile:
use_eks: true # was previously true by default
kubeconfig_path: /dev/shm
This change allows users to run helmfile with non-EKS Kubernetes clusters (k3s, GKE, AKS, etc.) using their existing kubeconfig without any EKS-specific configuration.
AWS Profile Pattern Replaced with Identity Flag
The helm_aws_profile_pattern configuration is now deprecated. Use the --identity flag instead, which integrates with the Atmos identity system for AWS authentication:
# Before
atmos helmfile apply my-component -s prod
# (relied on helm_aws_profile_pattern in config)
# After
atmos helmfile apply my-component -s prod --identity=prod-admin
Cluster Name Configuration Modernized
Three new ways to configure EKS cluster names:
- Explicit cluster name (
cluster_name): Simple, fixed cluster name - Go template (
cluster_name_template): Dynamic names using{{ .vars.namespace }}syntax - Override flag (
--cluster-name): Runtime override for any configured template
The legacy cluster_name_pattern with token syntax ({namespace}) is deprecated but still works with a warning.
Migration Guide
Before (Legacy Configuration)
components:
helmfile:
# use_eks was true by default
helm_aws_profile_pattern: "{namespace}-{tenant}-gbl-{stage}-helm"
cluster_name_pattern: "{namespace}-{tenant}-{environment}-{stage}-eks-cluster"
After (Recommended Configuration)
components:
helmfile:
use_eks: true # must be explicit now
kubeconfig_path: /dev/shm
cluster_name_template: "{{ .vars.namespace }}-{{ .vars.tenant }}-{{ .vars.environment }}-{{ .vars.stage }}-eks-cluster"
Command Changes
# Use identity for AWS auth (replaces helm_aws_profile_pattern)
atmos helmfile apply my-component -s prod --identity=prod-admin
# Override cluster name if needed
atmos helmfile apply my-component -s prod --identity=prod-admin --cluster-name=my-cluster
Why This Matters
- Non-EKS Kubernetes: Use helmfile with GKE, AKS, k3s, or any cluster with existing kubeconfig
- Flexible Cluster Names: No longer forced into specific naming conventions
- Unified Auth: Identity system provides consistent AWS authentication across all Atmos commands
- Go Templates: Use the same powerful template syntax as stack configurations
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)
Deprecation Notices
The following options are deprecated and will log warnings when used:
helm_aws_profile_pattern- Use--identityflag insteadcluster_name_pattern- Usecluster_name_templatewith Go template syntax
These options still work but will be removed in a future major release.
Get Involved
Questions or feedback? Join us on Slack or open an issue on GitHub.
