what
- Add
--redirect-stderr
flag toatmos
commands - If
--redirect-stderr
flag is not passed, always redirectstderr
tostdout
forterraform workspace select
command
why
- The flag specifies the file descriptor to redirect
stderr
to whenatmos
executes subcommands likeatmos terraform
andatmos helmfile
- Errors can be redirected to any file or any standard file descriptor (including
/dev/null
and/dev/stdout
) - Useful in GitHub actions to prevent failures when any error sent to
stderr
makes the action fail - If
--redirect-stderr
flag is not passed, always redirectstderr
tostdout
forterraform workspace select
command because creating and then selecting a new terraform workspace are normal operations and we don't want errors instderr
b/c that would break some processes (e.g. GitHub actions)
examples
atmos terraform plan test/test-component-override-2 -s tenant1-ue2-dev --redirect-stderr /dev/stdout
atmos terraform plan test/test-component-override -s tenant1-ue2-dev --redirect-stderr ./errors.txt
atmos terraform apply test/test-component-override-2 -s tenant1-ue2-dev --redirect-stderr /dev/stdout
atmos terraform apply test/test-component-override -s tenant1-ue2-dev --redirect-stderr ./errors.txt
atmos terraform destroy test/test-component-override-2 -s tenant1-ue2-dev --redirect-stderr /dev/stdout
atmos terraform destroy test/test-component-override -s tenant1-ue2-dev --redirect-stderr /dev/null
mos terraform workspace test/test-component-override-3 -s tenant1-ue2-dev --redirect-stderr /dev/null
atmos terraform workspace test/test-component-override-3 -s tenant1-ue2-dev --redirect-stderr /dev/stdout
atmos terraform workspace test/test-component-override-3 -s tenant1-ue2-dev --redirect-stderr ./errors.txt
test
atmos terraform plan test/test-component-override-3 -s tenant1-ue2-dev
Executing command:
/usr/local/bin/terraform workspace select test-component-override-3-workspace
# This is an error generated by terraform and sent to `stderror`
Workspace "test-component-override-3-workspace" doesn't exist.
You can create this workspace with the "new" subcommand.
Executing command:
/usr/local/bin/terraform workspace new test-component-override-3-workspace
Created and switched to workspace "test-component-override-3-workspace"!
atmos terraform plan test/test-component-override-3 -s tenant1-ue2-dev --redirect-stderr /dev/null
Executing command:
/usr/local/bin/terraform workspace select test-component-override-3-workspace
Executing command:
/usr/local/bin/terraform workspace new test-component-override-3-workspace
Created and switched to workspace "test-component-override-3-workspace"!