Using Helmfile
Atmos natively supports opinionated workflows for Helmfile. Helmfile provides a declarative specification for deploying helm charts.
For a complete list of supported commands, please see the Atmos helmfile documentation.
Stack Configuration
The schema for configuring Helmfile components in Atmos stacks:
components:
helmfile:
# the slug of the component
nginx-ingress:
# configuration specific to atmos
metadata:
type: real
component: nginx-ingress
# Settings for integrations
settings: {}
# Variables passed to Helmfile
vars:
installed: true
namespace: ingress
chart_version: "4.0.0"
# Environment variables
env:
HELM_DEBUG: "true"
Attributes
vars(optional)Variables passed to Helmfile. These are deep-merged and made available to your Helmfile configuration.
Example:
vars:
installed: true
namespace: ingress
replica_count: 3metadata(optional)The
metadatasection extends functionality of the component. See Common Component Attributes for details.Example:
metadata:
type: real
component: nginx-ingress
inherits:
- ingress-defaultssettings(optional)Free-form map for integration configuration.
env(optional)Environment variables to set when running Helmfile commands.
Example:
env:
HELM_DEBUG: "true"
KUBECONFIG: "/path/to/kubeconfig"
Example: Provision Helmfile Component
To provision a helmfile component using the atmos CLI, run the following commands in the container shell:
atmos helmfile diff nginx-ingress --stack=ue2-dev
atmos helmfile apply nginx-ingress --stack=ue2-dev
where:
nginx-ingressis the helmfile component to provision (from thecomponents/helmfilefolder)--stack=ue2-devis the stack to provision the component into
Short versions of the command-line arguments can be used:
atmos helmfile diff nginx-ingress -s ue2-dev
atmos helmfile apply nginx-ingress -s ue2-dev
Example: Helmfile Diff
To execute diff and apply in one step, use helmfile deploy command:
atmos helmfile deploy nginx-ingress -s ue2-dev