2021-06-08 19:47:43 +07:00
|
|
|
# Roadmap
|
|
|
|
|
2021-12-25 15:23:03 +07:00
|
|
|
> Current status: **Alpha**
|
|
|
|
|
|
|
|
## Alpha requirements
|
|
|
|
|
2022-02-09 00:38:51 +07:00
|
|
|
Literally anything that works.
|
2021-07-17 00:02:28 +07:00
|
|
|
|
|
|
|
## Beta requirements
|
|
|
|
|
2022-02-09 00:38:51 +07:00
|
|
|
Good enough for tinkering and personal usage, and reasonably secure.
|
2021-07-17 00:02:28 +07:00
|
|
|
|
|
|
|
- [x] Automated bare metal provisioning
|
|
|
|
- [x] Controller set up (Docker)
|
|
|
|
- [x] OS installation (PXE boot)
|
2021-10-02 15:11:08 +07:00
|
|
|
- [x] Automated cluster creation (k3s)
|
2021-07-17 00:02:28 +07:00
|
|
|
- [x] Automated application deployment (ArgoCD)
|
2021-12-25 15:23:03 +07:00
|
|
|
- [x] Automated DNS management
|
|
|
|
- [x] Initialize GitOps repository on Gitea automatically
|
|
|
|
- [x] Observability
|
|
|
|
- [x] Monitoring
|
|
|
|
- [x] Logging
|
2022-01-04 22:36:29 +07:00
|
|
|
- [ ] Alerting
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] SSO
|
|
|
|
- [ ] Reasonably secure
|
|
|
|
- [x] Automated certificate management
|
|
|
|
- [ ] Declarative secrets management
|
|
|
|
- [ ] Replace all default passwords with randomly generated ones
|
|
|
|
- [x] Expose services to the internet securely with Cloudflare Tunnel
|
2021-12-25 15:23:03 +07:00
|
|
|
- [x] Only use open-source technologies (except external managed services in `./external`)
|
|
|
|
- [x] Everything is defined as code
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] Backup solution (3 copies, 2 seperate devices, 1 offsite)
|
|
|
|
- [ ] 70% availability (might break in the weekend due to new experimentation)
|
|
|
|
- [x] Core applications
|
|
|
|
- [x] Gitea
|
|
|
|
- [x] Tekton
|
|
|
|
- [x] Vault
|
|
|
|
- [x] Private container registry
|
|
|
|
- [x] Homepage
|
2021-07-17 00:02:28 +07:00
|
|
|
|
|
|
|
## Stable requirements
|
|
|
|
|
2022-02-09 00:38:51 +07:00
|
|
|
Can be used in "production" (for family or even small scale businesses).
|
2021-07-17 00:02:28 +07:00
|
|
|
|
|
|
|
- [x] A single command to deploy everything
|
2022-02-09 00:38:51 +07:00
|
|
|
- [x] Fast deployment time (from empty hard drive to running services in under 1 hour)
|
2021-07-17 00:02:28 +07:00
|
|
|
- [ ] Fully _automatic_, not just _automated_
|
2022-02-25 09:32:15 +07:00
|
|
|
- [x] Bare-metal OS rolling upgrade
|
|
|
|
- [x] Kubernetes version rolling upgrade
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] Application version upgrade
|
|
|
|
- [ ] Encrypted backups
|
|
|
|
- [ ] Secrets rotation
|
|
|
|
- [x] Self healing
|
2021-07-17 00:02:28 +07:00
|
|
|
- [ ] Secure by default
|
2021-12-25 15:23:03 +07:00
|
|
|
- [ ] SELinux
|
|
|
|
- [ ] Network policy
|
2021-07-17 00:02:28 +07:00
|
|
|
- [ ] Static code analysis
|
2021-12-25 15:23:03 +07:00
|
|
|
- [ ] Chaos testing
|
2021-07-17 00:02:28 +07:00
|
|
|
- [ ] Minimal dependency on external services
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] Complete documentation
|
|
|
|
- [x] Diagram as code
|
2021-12-05 12:34:25 +07:00
|
|
|
- [x] Book (this book)
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] Walkthrough tutorial and feature demo (video)
|
|
|
|
- [x] Configuration script for new users
|
|
|
|
- [ ] 99,9% availability (less than 9 hours of downtime per year)
|
|
|
|
- [ ] 99,99% data durability
|
|
|
|
- [ ] Additional applications
|
|
|
|
- [ ] Matrix with bridges
|
|
|
|
- [ ] VPN server
|
|
|
|
- [ ] PeerTube
|
|
|
|
- [x] Seafile
|
|
|
|
- [x] Blog
|
|
|
|
- [ ] [Development dashboard](https://github.com/khuedoan/homelab-backstage)
|
2021-07-17 00:02:28 +07:00
|
|
|
|
|
|
|
## Unplanned
|
|
|
|
|
|
|
|
Nice to have
|
|
|
|
|
2022-02-09 00:38:51 +07:00
|
|
|
- [ ] Addition applications
|
2021-12-25 15:23:03 +07:00
|
|
|
- [ ] Mail server
|
2021-07-17 00:02:28 +07:00
|
|
|
- [ ] Air-gap install
|
|
|
|
- [ ] Automated testing
|
|
|
|
- [ ] Security audit
|
2021-12-05 12:34:25 +07:00
|
|
|
- [ ] Serverless (Knative)
|
2021-07-25 12:30:15 +07:00
|
|
|
- [ ] Cluster API (https://github.com/khuedoan/homelab/pull/2)
|
2022-01-04 22:36:29 +07:00
|
|
|
- [ ] Split DNS (requires a better router)
|