The AWS cli is required for using Terraform and the iam authenticator, it's good to have around anyway! AWS CLI
In order to interact with our kubernetes cluster we'll need to install the Kubectl CLI tool
You should also install the amazon authenticator to manage user access to your cluster aws-iam-authenticator
We use helm to deploy application templates to our cluster Helm
Terraform enables us to deploy repeatable infrastructure using declarative configuration files Terraform
In order to create the infrastructure you'll need to configure your aws cli to have security credentials to access to your account. This can be done using the Configuring the AWS CLI Guide
You'll also need a public Route53 zone so your applications can be accessed externally. This can be configured using the following guide A Public Route53 Hosted Zone
This repo provides odc terraform modules require to setup an Open Data Cube EKS cluster on AWS platform.
In order to setup odc infrastructure, you need to create a your own live repo showed in examples/
that contains examples/backend_init
and examples/stage
.
We store the current state of the infrastructure on an AWS S3 bucket to ensure terraform knows what infrastructure it has created, even if something happens to the machine. We also use a simple dynamodb table as a lock to ensure multiple people can't make a deployment at the same time.
To set up this infrastructure, if you'll need to adjust this variables - region
, owner
, namespace
and environment
. The backend id will need to be unique to your project.
Run this command to create the required infrastructure to store terraform state:
cd examples/backend_init
terraform init
terraform plan
terraform apply
Terraform will create the required resources, at the end you'll see:
Apply complete!
tf-state-bucket="${namespace}-${environment}-backend-tfstate"
dynamodb_table="${namespace}-${environment}-backend-terraform-lock"
Congratulations you're all setup and ready to build your first cluster!
Refer to the document under examples/README.md
here to setup a new ODC cluster environment.