All Projects β†’ cfn-sphere β†’ Cfn Sphere

cfn-sphere / Cfn Sphere

Licence: apache-2.0
AWS CloudFormation stack management tool

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cfn Sphere

Infracost
Cloud cost estimates for Terraform in pull requestsπŸ’°πŸ“‰ Love your cloud bill!
Stars: ✭ 4,505 (+5827.63%)
Mutual labels:  aws, cloud, infrastructure-as-code
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way πŸš€
Stars: ✭ 10,887 (+14225%)
Mutual labels:  aws, cloud, infrastructure-as-code
Serverlessbydesign
A visual approach to serverless development. Think. Build. Repeat.
Stars: ✭ 254 (+234.21%)
Mutual labels:  aws, cloud, cloudformation
Pulumi Aws
An Amazon Web Services (AWS) Pulumi resource package, providing multi-language access to AWS
Stars: ✭ 169 (+122.37%)
Mutual labels:  aws, cloud, infrastructure-as-code
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (+494.74%)
Mutual labels:  aws, cloud, infrastructure-as-code
Checkov
Prevent cloud misconfigurations during build-time for Terraform, Cloudformation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.
Stars: ✭ 3,572 (+4600%)
Mutual labels:  aws, cloudformation, infrastructure-as-code
Adapt
ReactJS for your infrastructure. Create and deploy full-stack apps to any infrastructure using the power of React.
Stars: ✭ 317 (+317.11%)
Mutual labels:  aws, cloud, infrastructure-as-code
My Links
Knowledge seeks no man
Stars: ✭ 311 (+309.21%)
Mutual labels:  aws, cloud, infrastructure-as-code
Kube Aws
[EOL] A command-line tool to declaratively manage Kubernetes clusters on AWS
Stars: ✭ 1,146 (+1407.89%)
Mutual labels:  aws, cloudformation, infrastructure-as-code
Howtheyaws
A curated collection of publicly available resources on how technology and tech-savvy organizations around the world use Amazon Web Services (AWS)
Stars: ✭ 389 (+411.84%)
Mutual labels:  aws, cloud, infrastructure-as-code
Kumogata
Kumogata is a tool for AWS CloudFormation. It can define a template in Ruby DSL.
Stars: ✭ 128 (+68.42%)
Mutual labels:  aws, cloudformation, infrastructure-as-code
Sceptre
Build better AWS infrastructure
Stars: ✭ 1,160 (+1426.32%)
Mutual labels:  aws, cloud, cloudformation
Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+12919.74%)
Mutual labels:  aws, cloud, cloudformation
Cluster Lifecycle Manager
Cluster Lifecycle Manager (CLM) to provision and update multiple Kubernetes clusters
Stars: ✭ 200 (+163.16%)
Mutual labels:  aws, cloud, cloudformation
Cloudformation Templates
Common tasks automated by CloudFormation
Stars: ✭ 79 (+3.95%)
Mutual labels:  aws, cloudformation, infrastructure-as-code
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (+406.58%)
Mutual labels:  aws, cloud, infrastructure-as-code
Terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
Stars: ✭ 6,316 (+8210.53%)
Mutual labels:  aws, cloud, infrastructure-as-code
Docker Swarm
🐳🐳🐳 This repository is part of a blog series on Docker Swarm example using VirtualBox, OVH Openstack, Azure and Amazon Web Services AWS
Stars: ✭ 43 (-43.42%)
Mutual labels:  aws, cloud, infrastructure-as-code
Manageiq
ManageIQ Open-Source Management Platform
Stars: ✭ 1,089 (+1332.89%)
Mutual labels:  aws, cloud
Aws Rfdk
The Render Farm Deployment Kit on AWS is a library for use with the AWS Cloud Development Kit that helps you define your render farm cloud infrastructure as code.
Stars: ✭ 54 (-28.95%)
Mutual labels:  aws, infrastructure-as-code

cfn-sphere

A CLI tool intended to simplify AWS CloudFormation handling. Build Status

Features

  • cfn templates in yml or json
  • build for human interaction and automation (run 'cf sync stacks.yml' triggered by a git push if you dare ;-)
  • a source of truth defining cloudformation stacks with their template and parameters
  • cross referencing parameters between stacks (use a stack output as parameter for another stack)
  • automatic stack dependency resolution including circular dependency detection
  • helper features easing the use of cfn functions like Fn::Join, Ref or Fn::GetAtt
  • easy user-data definition for https://github.com/zalando-stups/taupage
  • allow stack parameter values updates in command line interface
  • encrypt/decrypt values with AWS KMS (https://aws.amazon.com/de/kms/)

Documentation

https://github.com/cfn-sphere/cfn-sphere/wiki

Install

As python artifact:

pip install cfn-sphere

Usage

$ cf --help
Usage: cf [OPTIONS] COMMAND [ARGS]...

  This tool manages AWS CloudFormation templates and stacks by providing an
  application scope and useful tooling.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  convert            Convert JSON to YAML or vice versa
  decrypt            Decrypt a given ciphertext with AWS Key
  delete             Delete all stacks in a stack configuration
  encrypt            Encrypt a given string with AWS Key
  render_template    Render template as it would be used to create or update a stack
  sync               Sync AWS resources with stack configuration file
  validate_template  Validate template with CloudFormation API

Getting Started

1. Create Stacks Config

Create a YAML file containing a region and some stacks in a stacks.yml file f.e.:

region: eu-west-1
stacks:
    test-vpc:
        template-url: vpc.yml
    test-stack:
        template-url: app.yml
        parameters:
            vpcID: "|ref|test-vpc.id"
            dockerImageName: myapp
            appVersion: 1

2. Write your CloudFormation templates

Write your templates and configure them in your stacks.yml

3. Sync it

A simple command synchronizes your definition with reality!

cf sync myapp-test.yml

3.1 Update Stack with CLI Parameter

To update parameters of a stack defined within myapp-test.yml without having to modify the templates, simply use the --parameter or -p flag.

cf sync --parameter "test-stack.dockerImageName=mytestapp" --parameter "test-stack.appVersion=234" myapp-test.yml

4. Go further

Read here to see what cfn-sphere can do for you. There are a lot of things that can help you: https://github.com/cfn-sphere/cfn-sphere/wiki

Config Reference

See the wiki to see what you can do in a stack configuration: StackConfig Reference

Template Reference

Cfn-Sphere supports native cloudformation templates written in JSON or YAML, located in local filesystem or s3. There are some improvements like simplified intrinsic functions one can use. See the reference for details: Template Reference

Build

Requirements:

  • python >= 2.6
  • virtualenv
  • pybuilder

Execute:

git clone https://github.com/cfn-sphere/cfn-sphere.git
cd cfn-sphere
virtualenv .venv --python=python2.7
source .venv/bin/activate
pip install pybuilder
pyb install_dependencies
pyb

Contribution

  • Create an issue to discuss the problem and track changes for future releases
  • Create a pull request with your changes (as small as possible to ease code reviews)

License

Copyright Marco Hoyer

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].