scaf provides developers and DevOps engineers with a complete blueprint for a new project and streamlines the development experience with Tilt.
scaf generates a new project structure with Kubernetes manifests in three Kustomize layers for dev, sandbox, and production. A new project contains the following:
Installation is supported on Linux and macOS:
curl -sSL https://raw.githubusercontent.com/sixfeetup/scaf/main/install.sh | sh
The installation script will install kubectl, kind, and Tilt if it can't be found on your system.
Run scaf myproject
, answer all the questions, and you'll have your new project!
Inside myproject/README.md
, you will have more
documentation explaining how to use and configure your newly created project.
To deploy your project using Terraform and AWS, you can follow the instructions in terraform/README.md.
Note that you will need:
OrganizationAccountAccessRole
Scaf provides a Nix Flake to install all the required packages for development. The Nix Flake ensures all developers are using the same versions of all packages to develop on Scaf in an isolated environment.
Follow the instructions to install Nix for your OS.
Nix Flakes are a feature that comes with Nix, but they are considered experimental and are not enabled by default in stable releases of Nix. To use Nix Flakes, you need to enable them by configuring your Nix installation to allow experimental features.
Nix Flakes are available in recent versions of Nix. You can check your Nix version using:
nix --version
If you need to install or update Nix, you can follow the instructions on the Nix installation page.
You need to enable the experimental features in your Nix configuration. To do this, add the following lines to your ~/.config/nix/nix.conf file. If the file doesn't exist, you can create it:
experimental-features = nix-command flakes
Once you have enabled the experimental features, you can use Nix Flakes with the nix command. For example:
nix flake show
This command will display information about the flake in the current directory if you have a flake.nix file.
Finally, install Direnv and run direnv allow
. The
direnv configuration in .envrc
will use the flake to install the required
packages.
When making changes to scaf, keep the following in mind: