Skip to content

clowdhaus/cookiecluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cookiecluster

A CLI to generate EKS cluster definitions in Terraform.

Based on a few inputs, cookiecluster will guide you through the process of configuring a Terraform based EKS cluster definition that fits your requirements using the appropriate values. Once you have provided all the necessary inputs, cookiecluster will generate an eks.tf file containing the cluster definition.

It does not require any AWS credentials; it is merely a glorified templating engine for EKS clusters defined in Terraform. The snapshot tests demonstrate the various different configurations generated by cookiecluster.

cookiecluster demo

Installation

Archives of pre-compiled binaries for cookiecluster are available for Windows, macOS and Linux.

Homebrew (macOS and Linux)

brew install clowdhaus/taps/cookiecluster

Cargo (rust)

cargo install cookiecluster

Source

cookiecluster is written in Rust, so you'll need to grab a Rust installation in order to compile it. cookiecluster compiles with Rust 1.79.0 (stable) or newer. In general, cookiecluster tracks the latest stable release of the Rust compiler.

To build cookiecluster:

git clone https://github.com/clowdhaus/cookiecluster
cd cookiecluster
cargo build --release
./target/release/cookiecluster --version
0.4.0

Local Development

cookiecluster uses Rust stable for production builds, but nightly for local development for formatting and linting. It is not a requirement to use nightly, but if running fmt you may see a few warnings on certain features only being available on nightly.

Build the project to pull down dependencies and ensure everything is setup properly:

cargo build

To format the codebase:

If using nightly to use features defined in rustfmt.toml, run the following:

cargo +nightly fmt --all

If using stable, run the following:

cargo fmt --all

To execute lint checks:

cargo clippy --all-targets --all-features

To run cookiecluster locally for development:

cargo run

Running Tests

To execute the tests provided, run the following from the project root directory:

cargo test --all