Everything upto the admin.conf uploader has been written. Control plane has been tested and verified, node join has been reworked, but should work. Need to do final testing on IRSA then MVP will be done.
See List
- Tag based AMI search.
- Boot command
- join-nodes
- Calculate Cluster-name, and Node Type
- Fetch cluster info from dynamo (secret-name and cluster address)
- Get token from secrets-manager
- Join node
- join-masters
- Calculate Cluster-name, and Node Type
- Fetch cluster info from dynamo (secret-name and cluster address)
- Check for lock
- Check for Initialized
- api-server-aws-kms
- Join ring
- bootstrap-master
- Calculate Cluster-name, and Node Type
- Fetch cluster info from dynamo (secret-name and cluster address)
- Check for lock in dynamo
- Get lock in dynamo
- check initialized-flag
- upload keys to secrets-manager -> this might be better served as a Daemon on the cluster
- set initialized-flag in dynamo
- kubeadm config template
- kustomize template
- Embed kube client and upload configs
- cilium
- cloud-controller ( should probably pull in PR to fix multi-eni )
- irsa deployment
- api-server-aws-kms
- IRSA Upload
- join-nodes
- Shell Completion
- Util function to calculate subnets
- Embed version at build time
- Create version from git tag
- set metadata in dynamodb
- IP ( auto calculated )
- Service subnet ( Optional )
- Pod subnet ( Optional )
- cluster name ( Optional / Generated )
- elb dns ( Calculated )
- region ( Calculated )
- Cluster Util components ( Create outside of instances )
- Meta
- DynamoDB
- Secrets-Manager
- Node
- Launch Config
- ASG
- Master
- API-Server secrets kms key
- Launch Config
- ASG
- IRSA S3
- IRSA OpenID IAM
- Auth
- Roles
- Meta
- upload admin.conf to secrets-manager, and support fetch to local
- More Kubernetes configs; cilium, psp, servicemonitors, resource requests, metrics-server, network policies
- Cilium to leverage cilium-cli libriaries for deployment
- aws-ebs-csi
- [-] Config options
- existing vpc
- control-plane size
- worker size
- [-] Support automated upgrades, can probably just update the launch config via an on-cluster daemon
- Support Additional User-Set Tags
- autocomplete on remote state search
- structured logging for cri-o and kubernetes
- Split logging into; to file on server and console on workstation
- nat instances per zone
- Better cli ergonomics
- cluster-autoscaler
- aws-node-terminator (deployment on master not daemonset)
- cleanup AMI building, faster, better caching, pipeline based
- Refactor to add concurrency, use directed acyclic graph for dependency mapping?
- fix alpine ami image
- Track state for destruction
- Track global state
- cluster destroy
- Switch from fmt to log (like argonaut)
- Automatically detect availability zones
- upload etcd-healthcheck-client keys
- automated e2e
- Upgrade aws library
- Support metal
- Support OCI?
- move secret and cert management to vault and support bootstraping
- convert nat instances to ASGs
- arm support / graviton2 (not going to bother with user facing CLI, just machine images)
- falco
- Terraform provider
- cluster-api provider and bootstrap
- Edge node VPN access ( voucher + cilium )
- Plugins
- support cilium-etcd and etcd-operator (optional)
- support Multi-Cluster Mesh (optional, requires cilium-etcd)
- support Gitifold (optional)
- support ingress (optional, requires )
- support CI (optional, requires ingress)
- support CD (optional, requires ingress)
- support Monitoring (optional, requires ingess)
- GCP Support