Merge pull request #3488 from tstromberg/roadmap

2019 minikube roadmap!
pull/3596/head
Thomas Strömberg 2019-01-28 11:06:41 -08:00 committed by GitHub
commit 141133f986
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 69 additions and 41 deletions

View File

@ -0,0 +1,26 @@
# Principles of Minikube
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
Here are some specific minikube features that align with our goal:
* Single command setup and teardown UX
* Support for local storage, networking, auto-scaling, load balancing, etc.
* Unified UX across operating systems
* Minimal dependencies on third party software
* Minimal resource overhead
## Non-Goals
* Simplifying Kubernetes production deployment experience
* Supporting all possible deployment configurations of Kubernetes like various types of storage, networking, etc.

View File

@ -1,48 +1,50 @@
# Minikube Roadmap
This document contains the goals, plans, and priorities for the minikube project.
Note that these priorities are not set in stone. Please file an issue if you'd like to discuss adding or reordering these :)
# minikube roadmap (2019)
## Goals
The primary goal of minikube is to make it simple to run Kubernetes on your local machine, both for getting started and day-to-day development workflows.
Here are some specific features that align with our goal:
* Single command setup and teardown UX.
* Support most portable Kubernetes core features (local storage, networking, auto-scaling, loadbalancing, etc.)
* Unified UX across OSes.
* Minimal dependencies on third party software.
* Minimal resource overhead.
* Becoming the default local-cluster setup for Kubernetes
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 the minikube [(guiding principles)[principles.md]
## Non-Goals
* Simplifying Kubernetes production deployment experience. Kube-deploy is attempting to tackle this problem.
* Supporting all possible deployment configurations of Kubernetes like various types of storage, networking, etc.
Please send a PR to suggest any improvements to it.
## Priorities
This section contains the overall priorities of the minikube project, in rough order.
## (#1) User-friendly and accessible
1. Setting up a well-tested, secure and complete Kubernetes cluster locally.
2. Cross Platform support (macOS, Linux, Windows)
3. Supporting existing Kubernetes features:
* Load Balancer support.
* Persistent disks.
4. Keeping up with new Kubernetes releases and features.
5. Development-focused features like:
* Mounting host directories.
* VPN/proxy networking.
6. Native hypervisor integration.
7. Support for alternative Kubernetes runtimes, like rkt.
8. Removing the VirtualBox dependency and replacing it with Hypervisor.framework/Hyper-V.
- Creation of a user-centric minikube website for installation & documentation
- Localized output to 5+ written languages
- Make minikube usable in environments with challenging connectivity requirements
- Support lightweight deployment methods for environments where VM's are impractical
- Add offline support
## Timelines
Minikube will release much faster than this, so this section is fairly speculative.
This section is subject to change based on feedback and staffing.
## (#2) Inclusive and community-driven
### Q1 2017
- Increase community involvement in planning and decision making
- Make the continuous integration and release infrastructure publicly available
- Double the number of active maintainers
* Release Kubernetes 1.6.0 alpha and beta releases packaged with minikube
* Release Kubernetes 1.6.0 packaged with minikube within two days of GA upstream build
* Run local e2e Kubernetes tests with minikube
* Minikube no longer depends on libmachine
* Minikube no longer depends on existing KVM driver
* Native drivers are made default and packaged with minikube
* Improve minikube start time by 30%
* Add a no-vm driver for linux CI environments
## (#3) Cross-platform
- Simplified installation process across all supported platforms
- Users should never need to separately install supporting binaries
## (#4) Support all Kubernetes features
- Add multi-node support
## (#5) High-fidelity
- Reduce guest VM overhead by 50%
- Disable swap in the guest VM
## (#6) Compatible with all supported Kubernetes releases
- Continuous Integration testing across all supported Kubernetes releases
- Automatic PR generation for updating the default Kubernetes release minikube uses
## (#7) Support for all Kubernetes-friendly container runtimes
- Run all integration tests across all supported container runtimes
- Support for Kata Containers (help wanted!)
## (#8) Stable and easy to debug
- 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`
- Stabilize and improve profiles support (AKA multi-cluster)