okctl
- Opinionated and effortless infrastructure and application management¶
okctl
is a CLI for creating a production environment on Amazon Web Services (AWS) using Elastic Kubernetes Service (EKS) as its foundation, we aim to be:

- Specialised: by tightly integrating with the services provided by Oslo kommune
- Highly opinionated: you will get something that works well that may not be exactly what you want
- Modern: base our decisions on best-practise methodologies for a modern development lifecycle
- Sensible: provide a set of sensible default integrations
Compare and contrast¶
With okctl
we are attempting to solve the production environment setup problem. What we include within the definition of a production environment, we can see below.
Functionality | okctl | eksctl | kubectl | serverless.tf |
---|---|---|---|---|
Provide authentication and authorisation | ✓ | ? | ||
Define a continuous integration pipeline | ? | |||
Assist with creating a deployment pipeline | ✓ | ✓ | ||
Create a Kubernetes cluster (run-time environment) | ✓ | ✓ | ||
Facilitate with application setup and integration | ✓ | ✓ | ✓ | |
Provide integrations with version control system | ✓ | |||
Setup monitoring with metrics, logs and traces | ✓ |
Roadmap¶
We have a basic cluster up and running, and we are currently working on getting the core components of the cluster deployed:
- ExternalSecrets for storing secrets securely
- AWS ALB Ingress Controller creates load balancers for incoming traffic
- ExternalDNS ensures humane DNS hostnames
- Autoscaler for adjusting the size of pods and nodes
- Argo CD gives us continuous delivery
- Kubernetes Prometheus for monitoring
- Amazon Elastic Block Store (EBS) CSI driver for block storage
- Loki for consuming logs
- Jaeger for traces
Inspiration¶
We stand on the shoulders of giants, we have begged, borrowed and stolen from the following great products and teams:
Last update: 2021-02-26