From 4ccf04727619f09f0c27fb125aa4eed9e4c1f12f Mon Sep 17 00:00:00 2001 From: tstromberg Date: Tue, 24 Sep 2019 15:46:40 -0700 Subject: [PATCH] Update roadmap & principles for 2020 --- .../content/en/docs/Concepts/principles.en.md | 15 ++- .../en/docs/Contributing/roadmap.en.md | 96 ++++++++++++++----- 2 files changed, 78 insertions(+), 33 deletions(-) diff --git a/site/content/en/docs/Concepts/principles.en.md b/site/content/en/docs/Concepts/principles.en.md index 45e574b90a..7ba4e884ed 100644 --- a/site/content/en/docs/Concepts/principles.en.md +++ b/site/content/en/docs/Concepts/principles.en.md @@ -5,14 +5,13 @@ date: 2019-06-18T15:31:58+08:00 The primary goal of minikube is to make it simple to run Kubernetes locally, for day-to-day development workflows and learning purposes. Here are the guiding principles for minikube, in rough priority order: -1. User-friendly and accessible -2. Inclusive and community-driven -3. Cross-platform -4. Support all Kubernetes features -5. High-fidelity -6. Compatible with all supported Kubernetes releases -7. Support for all Kubernetes-friendly container runtimes -8. Stable and easy to debug +1. Inclusive and community-driven +1. User-friendly +1. Support all Kubernetes features +1. Cross-platform +1. Reliable +1. High Performance +1. Developer Focused Here are some specific minikube features that align with our goal: diff --git a/site/content/en/docs/Contributing/roadmap.en.md b/site/content/en/docs/Contributing/roadmap.en.md index af4ae9138f..2a7cf439af 100644 --- a/site/content/en/docs/Contributing/roadmap.en.md +++ b/site/content/en/docs/Contributing/roadmap.en.md @@ -3,54 +3,100 @@ title: "Roadmap" date: 2019-07-31 weight: 4 description: > - 2019 Development Roadmap + Development Roadmap --- This roadmap is a living document outlining the major technical improvements which we would like to see in minikube during 2019, divided by how they apply to our [guiding principles](principles.md) Please send a PR to suggest any improvements to it. -## (#1) User-friendly and accessible +# 2019 -- [x] Creation of a user-centric minikube website for installation & documentation -- [ ] Localized output to 5+ written languages -- [x] Make minikube usable in environments with challenging connectivity requirements -- [ ] Support lightweight deployment methods for environments where VM's are impractical -- [x] Add offline support - -## (#2) Inclusive and community-driven +## (#1) Inclusive and community-driven - [x] Increase community involvement in planning and decision making -- [ ] Make the continuous integration and release infrastructure publicly available - [x] Double the number of active maintainers +- [ ] Make the continuous integration and release infrastructure publicly available -## (#3) Cross-platform +## (#2) User-friendly and accessible + +- [x] Creation of a user-centric minikube website for installation & documentation +- [x] Make minikube usable in environments with challenging connectivity requirements +- [ ] Localized output to 5+ written languages + +## (#3) Support all Kubernetes features + +- [x] Continuous Integration testing across all supported Kubernetes releases +- [x] Run all integration tests across all supported container runtimes +- [ ] Add multi-node support +- [ ] Automatic PR generation for updating the default Kubernetes release minikube uses + +## (#4) Cross-platform - [x] Simplified installation process across all supported platforms - [x] Users should never need to separately install supporting binaries +- [ ] Support lightweight deployment methods for environments where VM's are impractical -## (#4) Support all Kubernetes features +## (#5) Reliable -- [ ] Add multi-node support +- [x] Pre-flight error checks for common connectivity and configuration errors +- [x] Stabilize and improve profiles support (AKA multi-cluster) +- [ ] Improve the `minikube status` command so that it can diagnose common issues -## (#5) High-fidelity +## (#6) High Performance - [ ] Reduce guest VM overhead by 50% - [x] Disable swap in the guest VM -## (#6) Compatible with all supported Kubernetes releases +## (#7) Developer focused -- [x] Continuous Integration testing across all supported Kubernetes releases -- [ ] Automatic PR generation for updating the default Kubernetes release minikube uses +- [x] Add offline support -## (#7) Support for all Kubernetes-friendly container runtimes -- [x] Run all integration tests across all supported container runtimes -- [ ] Support for Kata Containers (help wanted!) +# 2020 (draft) -## (#8) Stable and easy to debug +## (#1) Inclusive and community-driven -- [x] Pre-flight error checks for common connectivity and configuration errors -- [ ] Improve the `minikube status` command so that it can diagnose common issues -- [ ] Mark all features not covered by continuous integration as `experimental` -- [x] Stabilize and improve profiles support (AKA multi-cluster) +- [ ] Maintainers from 4 countries, 4 companies +- [ ] Installation documentation in 5+ written languages +- [ ] Enhancements approved by a community-driven process + +## (#2) User-friendly + +- [ ] Automatic installation of hypervisor dependencies +- [ ] Graphical User Interface +- [ ] Built-in 3rd Party ecosystem with 50+ entries + +## (#3) Support all Kubernetes features + +- [ ] Multi-node +- [ ] IPv6 +- [ ] Usage documentation for 3 leading CNI providers +- [ ] Automatically publish conformance test results after a release +- [ ] Modernize the local path provisioner + +## (#4) Cross-platform + +- [ ] Windows as a first-class citizen +- [ ] VM-free deployment to Docker +- [ ] VM-free deployment to Podman +- [ ] WSL2 support +- [ ] Firecracker VM support + +## (#5) Reliable + +- [ ] Resource alerts +- [ ] Time synchronization on HyperKit +- [ ] Consistent IP across restarts +- [ ] Investigate replacing libmachine with a maintained alternative + +## (#6) High Performance + +- [ ] Startup latency under 30s +- [ ] Kernel-assisted mounts (CIFS, NFS) by default +- [ ] Suspend and Resume +- [ ] <25% CPU overhead on a single core + +## (#7) Developer Focused + +- [ ] Container build integration