- AWS CLI - required for Terraform and the iam authenticator
- Kubectl - interact with our kubernetes cluster
- AWS IAM Authenticator - manage user access to your cluster
- Helm - We use helm to deploy application templates to our cluster
- Terraform - enables us to deploy repeatable infrastructure using declarative configuration files
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 required to setup an Open Data Cube EKS cluster on AWS platform.
In order to setup ODC infrastructure, you need to create 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, you'll need to adjust the following variables in examples/backend_init/variables.tf
Variable | Description | Default |
---|---|---|
region |
The AWS region to provision resources | "ap-southeast-2" |
owner |
The owner of the environment | "odc-test" |
namespace |
The name used for creation of backend resources like the terraform state bucket | "odc-test" |
environment |
The name of the environment - e.g. dev , stage , prod |
"stage" |
The namespace
and environment
combination needs to be unique for your project.
Run these commands in order 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.