Datacube Kubernetes EKS
This repository will build and manage a production scale kubernetes cluster using the AWS EKS engine for running Open Data Cube applications.
Supported Features
- EKS cluster with PostgreSQL database
- Multi-factor Authentication enforcement for Admin users
- Scale applications based on usage
- Scale cluster to fit application requirements
- Spot instance support
- Send logs to CloudWatch
- Automatically generated domain wildcard certificate for application load balancer
- Optional CloudFront distribution with automatically generated certificates
- Optional WAF application firewall rules for jupyterhub - OWASP Top 10 security risks protection
- Automatically register route53 DNS records
- Inspect cluster metrics using Prometheus and Grafana
- Modules to create IAM roles and users, used by cluster pods
- Module to create cognito auth user pool for application authentication
Getting started
Follow our Getting Started Guide to deploy your first cluster and learn how to customise your build.
Documentation
- Cluster Access - How to add users and configure access
- Service Account - Creating a service account to build the infrastructure
Repository Layout
- cognito - ODC supporting module that creates AWS Cognito user pool for user authentication
- docs - Out of code documentation as above
- examples - Sample Terraform deployments that can be spun-up and destroyed to test the various modules
- odc_eks - Core components required to run an EKS cluster for ODC
- ods_k8s - Kubernetes service pods required to perform Continuous deployment of applications.
- odc_role - ODC supporting module that creates IAM role for cluster pods
- odc_user - ODC supporting module that creates IAM user for cluster pods
- .circleci - TFLint CI automation