Skip to main content

Python project template

Project description

paraman

Requirements

  • Python 3.6.7+
  • (Optional) AWS CLI for deploying a CloudFormation template

Installation

$ pip install paraman

Docker

TODO: Update DockerHub pipeline

docker run --rm -it unfor19/paraman

Features

  1. Get SSM Parameters by path, output: .parameters.json and .parameters_types.json
  2. Generate SSM parameters to CloudFormation templates, according to Get SSM Parameters, output: .merged.yaml
  3. Deploy CloudFormation template .merged.yaml, output: CloudFormation Stack in AWS
  4. Put SSM Parameters values in AWS, according to Get SSM Parameters, output: SSM Parameters with a dummy value "empty" in AWS

Usage

Usage: paraman [OPTIONS] COMMAND [ARGS]...

  Examples:

  paraman --parameters-region eu-west-1 parameter-get              
  --prefix-to-replace /my-app/development/                         
  --exclude-paths "/accounts/,/google_credentials/,/cookie_secret"

  paraman cloudformation-create                                    
  --prefix-to-replace /my-app/development/                         
  --replace-prefix-with /my-app/test/

  aws cloudformation deploy                                        
  --region us-east-1                                               
  --template-file .merged.yaml                                     
  --stack-name test-virginia

  paraman --parameters-region us-east-1 parameter-put              
  --prefix-to-replace /my-app/dev/                                 
  --replace-prefix-with /my-app/test/                              
  --overwrite=true

Options:
  -ci, --ci                Use this flag to avoid confirmation prompts
  -dev, --local-dev        Use this flag for local tests with localstack
  -u, --endpoint-url TEXT  Set a custom AWS endpoint_url
  --help                   Show this message and exit.

Commands:
  cloudformation-create  Alias: cc Gets SSM Parameters from AWS or from the...
  parameter-get          Alias: pg Gets `parameters_region` and...
  parameter-put          Alias: pp Gets `parameters_region` and...
  version                Print the installed version

Contributing

Report issues/questions/feature requests on the Issues section.

Pull requests are welcome! Ideally, create a feature branch and issue for every single change you make. These are the steps:

  1. Fork this repo
  2. Create your feature branch from master (git checkout -b my-new-feature)
  3. Install from source
     $ git clone https://github.com/${GITHUB_OWNER}/paraman.git && cd paraman
     ...
     $ pip install --upgrade pip
     ...
     $ python -m venv ./ENV
     $ . ./ENV/bin/activate
     ...
     $ (ENV) pip install --editable .
     ...
     # Done! Now when you run 'paraman' it will get automatically updated when you modify the code
    
  4. Add the code of your new feature
  5. Test - make sure all commands work properly (TODO: add tests)
  6. Commit your remarkable changes (git commit -am 'Added new feature')
  7. Push to the branch (git push --set-up-stream origin my-new-feature)
  8. Create a new Pull Request and tell us about your changes

Authors

Created and maintained by Meir Gabay

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paraman-0.0.3.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

paraman-0.0.3-py3-none-any.whl (9.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page