Coder Social home page Coder Social logo

aws-cft-tools's Introduction

GitHub release GitHub license

Minimal Mistakes is a flexible two-column Jekyll theme. Perfect for hosting your personal site, blog, or portfolio on GitHub or self-hosting on your own server. As the name implies --- styling is purposely minimalistic to be enhanced and customized by you 😄.

✨ See what's new in the CHANGELOG.

Minimal Mistakes live preview

layout examples

Notable Features

  • Bundled as a "theme gem" for easier install/upgrading.
  • Compatible with GitHub Pages.
  • Support for Jekyll's built-in Sass/SCSS preprocessor.
  • Seven different skins (color variations).
  • Several responsive layout options (single, archive index, splash, and paginated home page).
  • Optimized for search engines with support for Twitter Cards and Open Graph data
  • Optional header images, custom sidebars, table of contents, galleries, related posts, breadcrumb links, navigation lists, and more.
  • Commenting support (powered by Disqus, Facebook, Google+, Discourse, static-based via Staticman v1, and custom).
  • Google Analytics support.
  • UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Chinese, Danish, Dutch, French (Français), German (Deutsch), Greek, Indonesian, Italian (Italiano), Korean, Nepali (Nepalese), Polish, Russian, Spanish (Español), Swedish, Turkish (Türkçe), and Vietnamese.

Skins (Color Variations)

This theme comes in seven different skins (including the default one).

air contrast dark
air skin contrast skin dark skin
dirt mint sunrise
dirt skin mint skin sunrise skin

Demo Pages

Name Description
Post with Header Image A post with a large header image.
HTML Tags and Formatting Post A variety of common markup showing how the theme styles them.
Syntax Highlighting Post Post displaying highlighted code.
Post with a Gallery A post showing several images wrapped in <figure> elements.
Sample Collection Page Single page from a collection.
Categories Archive Posts grouped by category.
Tags Archive Posts grouped by tag.

Additional sample posts are available under posts archive on the demo site. Source files for these (and the entire demo site) can be found in /docs.

Usage

For detailed instructions on how to configure, customize, add content, and more read the theme's documentation.

Note: Gem version of the theme requires Jekyll v3.3+ and is not currently supported on GitHub Pages. You can still use the theme with GitHub Pages, you'll just need to install using the old "repo fork method".

Quick Start

Add this line to your Jekyll site's Gemfile:

gem "minimal-mistakes-jekyll"

Add this line to your Jekyll site's _config.yml file:

theme: minimal-mistakes-jekyll

Then run Bundler to install the theme gem and dependencies:

bundle install

To update the theme run bundle update.


Contributing

Having trouble working with the theme? Found a typo in the documentation? Interested in adding a feature or fixing a bug? Then by all means submit an issue or pull request. If this is your first pull request, it may be helpful to read up on the GitHub Flow first.

Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or submitting pull requests. If it's not something that most people will use, I probably won't consider it. When in doubt ask.

This goes for author sidebar links and "share button" additions -- I have no intention of merging in every possibly option, the essentials are there to get you started 😄.

Pull Requests

When submitting a pull request:

  1. Clone the repo.
  2. Create a branch off of master and give it a meaningful name (e.g. my-awesome-new-feature).
  3. Open a pull request on GitHub and describe the feature or fix.

Theme documentation and demo pages can be found in the /docs if submitting improvements, typo corrections, etc.

Development

To set up your environment to develop this theme, run bundle install.

To test the theme, run bundle exec rake preview and open your browser at http://localhost:4000/test/. This starts a Jekyll server using content in the test/ directory. As modifications are made to the theme and test site, it will regenerate and you should see the changes in the browser after a refresh.


Credits

Creator

Michael Rose

Icons + Demo Images:

Other:


License

The MIT License (MIT)

Copyright (c) 2017 Michael Rose

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Minimal Mistakes incorporates icons from The Noun Project creators Garrett Knoll, Arthur Shlain, and tracy tam. Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).

Minimal Mistakes incorporates Font Awesome, Copyright (c) 2017 Dave Gandy. Font Awesome is distributed under the terms of the SIL OFL 1.1 and MIT License.

Minimal Mistakes incorporates photographs from Unsplash.

Minimal Mistakes incorporates Susy, Copyright (c) 2017, Miriam Eric Suzanne. Susy is distributed under the terms of the BSD 3-clause "New" or "Revised" License.

Minimal Mistakes incorporates Breakpoint. Breakpoint is distributed under the terms of the MIT/GPL Licenses.

Minimal Mistakes incorporates FitVids.js, Copyright (c) 2013 Dave Rubert and Chris Coyier. FitVids is distributed under the terms of the WTFPL License.

Minimal Mistakes incorporates Magnific Popup, Copyright (c) 2014-2016 Dmitry Semenov, http://dimsemenov.com. Magnific Popup is distributed under the terms of the MIT License.

Minimal Mistakes incorporates jQuery Smooth Scroll, Copyright (c) 2017 Karl Swedberg. jQuery Smooth Scroll is distributed under the terms of the MIT License.

Minimal Mistakes incorporates GreedyNav.js, Copyright (c) 2015 Luke Jackson. GreedyNav.js is distributed under the terms of the MIT License.

Minimal Mistakes incorporates Jekyll Group-By-Array, Copyright (c) 2015 Max White [email protected]. Jekyll Group-By-Array is distributed under the terms of the MIT License.

aws-cft-tools's People

Contributors

agilecreativity avatar bushong1 avatar jgsmith-usds avatar mattjorg avatar rebel-one avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-cft-tools's Issues

Support for individual devops environments

We want to be able to test out changes before we submit a PR, but we don't want to have to create a complete set of explicit environments for each infrastructure developer. We need a way to stand up an environment that has all the right things, but doesn't require us editing every template just to add our personal development environment.

The main thing is that as an infrastructure developer, I should be able to deploy my proposed changes to the templates without impacting anyone else, and without anyone else impacting me.

Some options:

  1. require personal AWS accounts so a single "developer" environment can be deployed
  2. support regex restrictions on environment values rather than just a list of acceptable values

Option (1) may require additional infrastructure in each AWS account, and keeping that additional infrastructure in sync is a separate problem, but tractable if we're using "infrastructure as code" techniques. This option allows "many" infrastructure developers to manage template development while restricting access to anything that is considered close to production. Similar to lower/upper, but with an addition tier below "lower."

Option (2) may require individual CIDRs if VPCs are peered. How would that be managed in a scalable, easy manner?

Feature Request: Run multiple roles from CLI

When running aws-cft commands, I often find myself chaining multiple commands together:

aws-cft -e dev -r foo
aws-cft -e dev -r bar
aws-cft -e dev -r baz

It would be great if we could have multiple roles in a single command:

aws-cft -e dev -r foo -r bar -r baz

Create diagram of resources

This would be a runbook that would create a diagram, perhaps with something like PlanetUML, illustrating the resources and their relationships.

This could be constrained by environment and/or role.

Add generators for common sets of templates

As someone managing templates for new services, I'd like to generate consistent sets of templates. For example, when standing up a web application with an ASG and an ALB, with RDS, I'd like to create a set of template skeletons with a common theme that cover security groups, RDS, the ASG, and ALB.

Some possible targets:

  • web applications (public ALB, ASG, EC2, RDS, security groups)
  • micro-service (private shared ALB, ASG, EC2, RDS, security groups)
  • bastion (EC2, security groups)
  • application-specific, such as drupal, wordpress, or other applications that might use ECR, ECS, and EFS.

Feature Request: Multiple roles within Template Metadata; tags?

There are times where I find myself wanting to update only narrow sets of stacks, and there are other times where I find myself wanting to update broad sets of stacks. If we could have optional arrays for Roles, it would give more options for deployment breadth, and help avoid some specialized stacks getting stale.

Current:

Description: ECS Foo Report Service
Metadata:
  Role: foo-report

Suggested:

Description: ECS Foo Report Service
Metadata:
  Role:
  - ecs
  - foo
  - foo-report

aws-cft diff - always reports changes with our elb files

I haven't been able to narrow down what resource type (if any one specific) is causing it, but it uses these resources:

    Type: AWS::EC2::SecurityGroup
    Type: AWS::EC2::SecurityGroupIngress
    Type: AWS::ElasticLoadBalancingV2::Listener
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Type: AWS::Route53::RecordSet

Stack retraction with Export dependency will hang

Given this situation:

  • Stack A exports X
  • Stack B Imports X from stack A
  • Stack A and Stack B are in different Metadata Roles

Retracting the role for Stack A will only attempt to delete Stack A (a different problem), and this will result in a hung aws-cft command. I believe this is because when a stack is attempted to be deleted, but there is an export in use, CloudFormation will not report DELETE_FAILED, but instead will show whatever status the stack had before (UPDATE_COMPLETE or CREATE_COMPLETE).

Rate Limiting with `-j 3`

When i run with -j 3 to allow 3 concurrent jobs, I typically hit an AWS Rate Limiting barrier:

.rvm/gems/ruby-2.4.1/gems/aws-sdk-core-2.9.44/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': Rate exceeded (Aws::CloudFormation::Errors::Throttling)

I'm curious if it's possible to self-limit or backoff/retry in the case of a Throttling error.

Create an example set of templates and parameters

The example set should demonstrate a fairly complete deployment of a web application with accompanying ALB, RDS resource, and a micro-service that is not exposed to the public Internet. The example should also demonstrate the capabilities of aws-cft-tools to manage parameters and template dependencies.

Can't retract, "not marked for removal"

I'm having an issue where I can't retract based on roles. It's currently telling me that a dependency hasn't been marked for removal, but that dependency is definitely in the wordpress role. Any suggestions?

$ aws-cft retract -p newgov -e stge -r wordpress
*** Unable to remove templates.
The following templates are dependencies for templates not marked for removal: 
wordpress/security.yml
$ head cloudformation/templates/wordpress/security.yml 
AWSTemplateFormatVersion: "2010-09-09"
Description: "Security Groups and Ingress Rules for the WordPress stack"
Metadata:
  Role: wordpress
Parameters:
  Environment:
    Type: String
    AllowedValues:
    - stge
    - prod

Collaboration conflicts with two people in the same Environment

One issue we have been having lately is when two people are working in the same Environment, there can be conflicts. Usually these conflicts can be avoided by using the "role" feature. The problem arises when a change is made to a base layer stack, such as adding a new Export value. Because the role feature deploys all dependent stacks as well as the role-specific stacks, adding an Export to the VPC (for example), can be exceedingly difficult to time.

One solution to this problem would be to add a feature that takes the role based deployment and only deploys the stacks tagged with that specific role name. Any thoughts?

Subcommand retract fails to work due to mis-interpretation of dependencies

Symptoms:
with options to delete all stacks of a given environement and role, retract aborts request due to dependencies on templates that are within the set of stacks to delete.
Example:
[app@ip-10-105-2-204 aws-cft]$ aws-cft retract -e poc -r Role1 -c
*** Unable to remove templates.
The following templates are dependencies for templates not marked for removal:
applications/xxx-webapp.yaml
applications/xxx-batchapp.yaml

Results of stacks shows these stacks are within result set of stacks to delete:
[app@ip-10-105-2-204 aws-cft]$ aws-cft stacks -e poc

ROLE FILENAME CREATED_AT NAME STATE
Role1 vpcs/base.yaml 2017-12-05 21:20:19 poc-xxx-batchapp CREATE_COMPLETE
Role1 applications/xxx-webapp... 2017-12-06 15:41:32 poc-xxx-webapp-applicat... CREATE_COMPLETE

Create ability to "clone" an environment

We want to be able to quickly get most of the work done for adding an environment to the templates. This could be along the lines of making a new environment foo that looks like environment bar. Remaining editing would be to tweak anything that has to be different for different environments.

"Updating" output seems to be delayed

When using v0.1.0, i'm seeing some odd behavior regarding the current stack it says its updating. For example:

image

This output seems to imply that "demo-vpc-networks" had a failure. However, looking at "demo-vpc-networks" stack:

image

The latest update was from last month. After investigating further, I found a rolled back stack elsewhere that had a legitimate failure, but that name never came up...

This wasn't a problem in the pre-release 0.1.0, but something seems to have changed.

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.