Metadata-Version: 2.1
Name: stackoperator
Version: 0.1.1
Summary: A small utility to help do start, stop and tag actions in an IaC stack for cost optimization purpose.
Author-email: Henry Huo <happy78@live.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown

A small utility to help do start, stop and tag actions in an IaC stack for cost optimization purpose.  
Stackoperator now support CloudFormation and Terraform stack.  
It's a great idea to use stackoperator with [Instance Scheduler on AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws) solution by tagging stoppable resources created by IaC stack.  

## Use cases:
- During the POC testing process of solutions deployed using CloudFormation or Terraform, toggle related resources with one click to save testing costs.
- For solutions deployed using CloudFormation or Terraform, save operation costs by tagging toggleable resources and controlling their runtime using the Instance Scheduler on AWS solution.

## Prerequisites:
Before using stackoperator script, please make sure correct AWS credential in envs, using [aws-vault](https://github.com/99designs/aws-vault) to store and switch AWS credentials is recommend.

## Install
```
pip install stackoperator
```

## Upgrade
```
pip install --upgrade stackoperator
```

## Usage
### Start stopped resources in a given CloudFormation Stack
```
startcfnstack --stackname <CloudFormation_Stack_Name>  
```
### Stop stoppable running resources in a given CloudFormation Stack
```
stopcfnstack --stackname <CloudFormation_Stack_Name>  
```
### Tag stoppable running resources in a given CloudFormation Stack
```
tagcfnstack --tags "Key1=Value1,Key2=Value2" --stackname <CloudFormation_Stack_Name>  
```
### Start stopped resources in Terraform Stack (at current path)
```
starttfstack [--statefile <Terraform_Stack_StateFile>]  
```
### Stop stoppable running resources in Terraform Stack (at current path)
```
stoptfstack [--statefile <Terraform_Stack_StateFile>]  
```
### Tag stoppable running resources in Terraform Stack (at current path)
```
tagtfstack --tags "Key1=Value1,Key2=Value2" [--statefile <Terraform_Stack_StateFile>]  
```
