Giter Site home page Giter Site logo

elias5000 / clouds-aws Goto Github PK

View Code? Open in Web Editor NEW
12.0 12.0 4.0 94 KB

clouds-aws is a tool that aims to ease the handling of Cloudformation stacks as code from the command line or scripts.

License: Apache License 2.0

Python 99.19% Shell 0.81%
aws aws-cloudformation cloudformation

clouds-aws's People

Contributors

cristim avatar elias5000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clouds-aws's Issues

Stack chaining

Use identically named outputs of one stack as inputs for another stack.

Example: clouds update -c dependent -i existing

Dependent stack in the example has a parameter named vpcId and existing stack has an output named vpcId. The new stack doesn't specify vpcId in the parameters.yaml. Clouds when executed performs a describe action on the existing stack to get all outputs, identifies matching names and uses the values of those matches as inputs (if not present in the parameters.yaml).

The user may specify multiple existing stacks.

Missing Stack Tags

Hi, could you add Stack Tags when creating or updating a stack. It would make sense to use the AWS Parameter JSON Syntax in the Parameter File.

Example:

{
  "Parameters": {
    "BucketName": "MyBucket"
  },
  "Tags": {
    "Environment": "Development"
  }
}

unclear error message when change set creation fails

Scenario is as follows:
create a change set, execute the change set, create a new change set with the same name AND no changes in the template.
This will lead to a failure in cloud formation, reason: "FAILED - The submitted information didn't contain changes. Submit different information to create a change set."
clouds ends with the following output:
Uwes-MacBook-Pro:clouds uwes$ clouds change create -c PIM-QAS-NetworkLayer PIM-QAS-NetworkLayer-change-set
k e y s


the following screenshots might help to get a better understanding:
the command execution:
grafik

How it looks like in the CF dasboard, tab change set selected:
grafik

Change Set details view in the console:
grafik

Let me know if you need more information.

adding change sets?

Hi elias,
I really like your tool, very handy and saves a lot of time.

Have you thought about adding a feature to handle CloudFormation change sets with clouds?

regards
Uwe

ImportError: No module named parse

Hi,

I am getting the following Error when running 'clouds --help'

~ clouds --help Traceback (most recent call last): File "/home/tux/.local/bin/clouds", line 7, in <module> from clouds_aws import main File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 8, in <module> from .cli import add_parsers File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/cli/__init__.py", line 5, in <module> import clouds_aws.cli.console File "/home/tux/.local/lib/python2.7/site-packages/clouds_aws/cli/console.py", line 5, in <module> from urllib.parse import urlencode ImportError: No module named parse

Thanks in advance.

Create new stacks empty and then apply an update with the actual code

I've seen this approach on stacks generated by the Serverless framework, and I think it's a good idea to protect against stacks that fail to be created and then need to be deleted.

This way an unrecoverable creation failure becomes a successful creation followed by a failed update which is likely to be rolled back and can be iterated on until succeeding, without the need to delete the stack after each failed iteration.

Better errors while formatting multiple stacks

When encountering an error when using clouds format --all the application throws an exception that makes it really hard to figure out where did the error happen. I ran this on a dozen stacks at once, and this is the error:

clouds format --all
Traceback (most recent call last):
  File "/home/magherus/.local/bin/clouds", line 11, in <module>
    sys.exit(main())
  File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 621, in main
    args.func(args)
  File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 451, in reformat
    save_template(stack, load_template(stack))
  File "/home/magherus/.local/lib/python2.7/site-packages/clouds_aws/__init__.py", line 153, in load_template
    return json.load(fp)
  File "/usr/lib/python2.7/json/__init__.py", line 291, in load
    **kw)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 175 column 33 (char 6063)

I would prefer not to get a stack trace at all, but to have a human-friendly error like this one:

Failed parsing stacks/stack_name/template.json, ValueError: Expecting ',' delimiter: line 175 column 33 (char 6063)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.