Update documentation

- Split changelog and roadmap
- Add missing sections on README based on template
This commit is contained in:
Khue Doan 2021-06-08 19:47:43 +07:00
parent 60f1ba4e41
commit f7a02d99b3
3 changed files with 79 additions and 52 deletions

View File

@ -60,7 +60,7 @@
| 1 | [infra](./infra) | Kubernetes clusters | Terraform, Helm |
| 2 | [apps](./apps) | Gitea, Vault and more in the future | Argo |
## Usage
## Get Started
### Prerequisite
@ -72,15 +72,18 @@ For the controller (to run Ansible, stateless PXE server, Terraform...):
For bare metal nodes:
- PXE IPv4 enabled
- Wake-on-LAN enabled
- Wake-on-LAN enabled and boot to network mode by default if turned on via Wake-on-LAN
- Secure boot disabled (optional, depending on the OS)
- Note their MAC addresses
### Configurations
Change these configuration files to match your hardware and network setup:
- [Bare metal nodes settings](./metal/hosts.yaml) (IP, MAC...)
- [OS settings](./metal/group_vars/all.yml) (PXE, network...)
### Building
### Build
Open the tools container:
@ -93,3 +96,20 @@ Then build the homelab:
```sh
make
```
## Roadmap
See [roadmap](./docs/roadmap.md) and [open issues](https://github.com/khuedoan/homelab/issues) for a list of proposed features and known issues.
## Contributing
Any contributions you make are greatly appreciated (feature, bug fixes, documentation, grammar or typo fix...).
## License
Distributed under the GPLv3 License. See `LICENSE` for more information.
## Acknowledgements
- ArgoCD usage in [my coworker's homelab](https://github.com/locmai/humble)
- [README template](https://github.com/othneildrew/Best-README-Template)

View File

@ -1,51 +1,10 @@
# Changelog
- [x] `0.0.1-alpha`:
- [x] Bare metal provisioning with PXE
- [x] LXD cluster
- [x] Terraform state backend (etcd)
- [x] RKE cluster
- [x] Core services (Vault, Gitea, ArgoCD,...)
- [x] Public services to the internet (via port forwarding or Cloudflare Tunnel)
- [ ] `0.0.2-alpha`:
- [x] Ensure idempotency for bare metal provisioning
- [x] Extract instead of mounting the OS ISO file
- [x] Easy initial controller setup (with only Docker)
- [x] Switch to Fedora
- [x] Remove LXD
- [ ] VPN (Wireguard)
- [ ] Access the lab from the internet via VPN
- [ ] Container registry
- [ ] `0.1.0-beta`:
- [ ] Automated metal secrets generation and management
- [ ] Automated `./infra` authentication from `./metal` (Terraform backend and provider)
- [ ] Metal node automatic patching
- [ ] Local DNS (PiHole?)
- [ ] Self managed infrastucture
- [ ] Mirror all git repositories from GitHub automatically (with git hook for faster sync?)
- [ ] Monitoring and alerting
- [ ] Addition services (NextCloud, PeerTube, mailcow, Mattermost/Rocket Chat,...)
- [ ] Dashboard for services
- [ ] SSO
- [ ] Backup solution (3 copies, 2 seperate devices, 1 offsite)
- [ ] Automatic release
- [ ] `1.0.0`:
- [ ] 100% automated
- [ ] Bare-metal OS patching
- [ ] Kubernetes nodes OS patching
- [ ] Backups
- [ ] Secrets management
- [ ] Backup encrytion
- [ ] Secure by default
- [ ] DRY
- [ ] Complete documentation and architecture diagram (automated update if possible)
- [ ] `1.0.1`:
- [ ] Bug fixes (TBD)
- [ ] `1.1.0`:
- [ ] Addition services (TBD)
- [ ] Backlog:
- [ ] Automated testing
- [ ] Security review/audit
- [ ] Migrate to RKE2 (new Terraform provider for RKE2 is not release yet)
- [ ] HA for everything
- [ ] Walkthrough building tutorial and feature demo
## 0.0.1-alpha
- Bare metal provisioning with PXE
- LXD cluster
- Terraform state backend (etcd)
- RKE cluster
- Core services (Vault, Gitea, ArgoCD,...)
- Public services to the internet (via port forwarding or Cloudflare Tunnel)

48
docs/roadmap.md Normal file
View File

@ -0,0 +1,48 @@
# Roadmap
- [ ] `0.0.2-alpha`:
- [x] Ensure idempotency for bare metal provisioning
- [x] Extract instead of mounting the OS ISO file
- [x] Easy initial controller setup (with only Docker)
- [x] Switch to Fedora
- [x] Remove LXD
- [ ] Move etcd (Terraform state backend) back to Docker
- [ ] `0.0.3-alpha`:
- [ ] Better PXE boot tooling
- [ ] Switch to CoreOS
- [ ] VPN (Wireguard)
- [ ] Access the lab from the internet via VPN
- [ ] Container registry
- [ ] `0.1.0-beta`:
- [ ] Automated metal secrets generation and management
- [ ] Automated `./infra` authentication from `./metal` (Terraform backend and provider)
- [ ] Metal node automatic patching
- [ ] Local DNS (PiHole?)
- [ ] Self managed infrastucture
- [ ] Mirror all git repositories from GitHub automatically (with git hook for faster sync?)
- [ ] Monitoring and alerting
- [ ] Addition services (NextCloud, PeerTube, mailcow, Mattermost/Rocket Chat,...)
- [ ] Dashboard for services
- [ ] SSO
- [ ] Backup solution (3 copies, 2 seperate devices, 1 offsite)
- [ ] Automatic release
- [ ] `1.0.0`:
- [ ] 100% automated
- [ ] Bare-metal OS patching
- [ ] Kubernetes nodes OS patching
- [ ] Backups
- [ ] Secrets management
- [ ] Backup encrytion
- [ ] Secure by default
- [ ] DRY
- [ ] Complete documentation and architecture diagram (automated update if possible)
- [ ] `1.0.1`:
- [ ] Bug fixes (TBD)
- [ ] `1.1.0`:
- [ ] Addition services (TBD)
- [ ] Backlog:
- [ ] Automated testing
- [ ] Security review/audit
- [ ] Migrate to RKE2 (new Terraform provider for RKE2 is not release yet)
- [ ] HA for everything
- [ ] Walkthrough building tutorial and feature demo