atmos/atmos.py
2019-04-09 16:54:28 +02:00

33 lines
No EOL
1.2 KiB
Python
Executable file

#!/usr/bin/env python3
import argparse
import subprocess
import sys
def main(argv):
parser = argparse.ArgumentParser(description='Control Terraform Workspaces.')
parser.add_argument("command", help="Send commands to terraform", default=False)
parser.add_argument("-auto", help="Flag to skip waiting for user input", action="store_true")
args = parser.parse_args()
determine_actions(args)
def determine_actions(args):
if args.auto:
args.command = args.command + " -auto-approve"
valid_actions = ["plan", "apply", "destroy"]
if args.command in valid_actions:
print('Terraform {args} using env vars in {env}'.format(args=args.command, env=get_env()))
print(subprocess.getoutput('terraform {args} -var-file=vars/{env}.tfvars'.format(args=args.command, env=get_env())))
else:
print(subprocess.getoutput('terraform {args}'.format(args=args.command)))
def get_env():
valid_envs = ["dev","preprod","emea","apac"]
tf_env = subprocess.getoutput('cat .terraform/environment')
if str(tf_env) in valid_envs:
return(tf_env)
else:
return("qa")
if __name__ == "__main__":
main(sys.argv)