A CLI utility for deploying AWS EKS clusters.
Dispatch simplifies secure, scalable and resilient management of ephemeral kubernetes clusters in AWS.
- AWS access to the following AWS managed IAM policies:
AmazonEC2FullAccessAmazonS3FullAccessAmazonSSMFullAccessAmazonVPCFullAccessIAMFullAccess
- IAM policy with
Alloweffect foreks:*andcloudformation:*actions on*resource - AWS CLI
Access to Dispatch provisioned clusters relies on AWS Identity and Access Management (IAM).
The subcommandaws eksis required for initial access to newly provisioned EKS clusters. - kubectl
Authentication is managed using environment variables or AWS credentials file (~/.aws/credentials).
Environment variable settings take precedence over credential file configuration.
To use an AWS profile other than default in your AWS credentials file, set the environment variable AWS_PROFILE to the profile name.
export AWS_PROFILE="my-profile"
The following environment variables must be configured if the AWS credentials file is not used:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN(STS session)
us-east-1 is supplied as the default AWS region. To deploy in a different AWS region, set the environment variable AWS_REGION to the region name
export AWS_REGION="us-west-2"
brew install christiantragesser/tap/dispatch
A dispatch binary is available for the following platforms:
- Linux
- MacOS
Download the binary and place in a directory located in your system $PATH
The container image provides a temporary runtime with all Dispatch dependencies.
Run dispatch to start a provisioning event
$ dispatch
Ephemeral Dispatch runtime using docker
$ docker run --rm -it christiantragesser/dispatch
# export AWS_ACCESS_KEY_ID=....
# export AWS_SECRET_ACCESS_KEY=....
# export AWS_SESSION_TOKEN=....
# dispatch
With Docker using the AWS credentials file
$ docker run --rm -it -v $HOME:/root christiantragesser/dispatch
# dispatch
Providing a local mount to the container's /root directory allows for the persistence of Dispatch event and kubeconfig files.
Events can be configured via CLI subcommands
$ dispatch create -h
Usage of create:
-name string
cluster name
-nodes string
cluster node count (default "2")
-size string
cluster node size (default "small")
-version string
Kubernetes version (default "1.24")
-yes
skip verification prompt for cluster creation
$ dispatch -name my-cluster -nodes 10 -size large -yes
$ dispatch delete -h
Usage of delete:
-name string
cluster name
-yes
skip verification prompt for cluster deletion
$ dispatch delete -name my-cluster