New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2019 minikube roadmap! #3488
Merged
Merged
2019 minikube roadmap! #3488
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
eebfdc7
Update roadmap for 2019
tstromberg 945f893
Address review comments
tstromberg 733e13c
Fix merge conflict
tstromberg 7b2797c
Mention CI
tstromberg cf8f51d
Merge branch 'master' into roadmap
tstromberg 25961e2
Merge branch 'master' into roadmap
tstromberg 0697400
Attempt to align the roadmap to our princples.
tstromberg 3aa5fac
Add 'for'
tstromberg c967347
Update docs/contributors/roadmap.md
balopat 72d0dad
Update docs/contributors/principles.md
balopat 66bdf93
Remove machine-driver replacement and boot2docker deprecation items
tstromberg 9d5cee8
Merge branch 'master' into roadmap
tstromberg 083695c
Merge branch 'roadmap' of github.com:tstromberg/minikube into roadmap
tstromberg File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 :) | ||
|
||
## 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 | ||
|
||
## 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. | ||
|
||
## Priorities | ||
This section contains the overall priorities of the minikube project, in rough order. | ||
|
||
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. | ||
|
||
## 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. | ||
|
||
### Q1 2017 | ||
|
||
* 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 | ||
tstromberg marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* Native drivers are made default and packaged with minikube | ||
* Improve minikube start time by 30% | ||
* Add a no-vm driver for linux CI environments | ||
# minikube roadmap (2019) | ||
|
||
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] | ||
|
||
Please send a PR to suggest any improvements to it. | ||
|
||
## (#1) User-friendly and accessible | ||
|
||
- 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 | ||
|
||
## (#2) Inclusive and community-driven | ||
|
||
- Increase community involvement in planning and decision making | ||
- Make the continuous integration and release infrastructure publicly available | ||
- Double the number of active maintainers | ||
|
||
## (#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) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this goal removed ? It would be good if libmachine could be made more engine-agnostic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, at least for 2019. I'm not convinced that there is much merit in adding another layer of abstraction here, unless it's a migration path to something better.
In 2018, we changed our upstream project to machine-drivers, though I'm not yet convinced of that projects long-term viability unless activity picks up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Machine drivers organisation was mostly created to host drivers blocked by upstream, such as the KVM driver (forked and used by minikube). Its possibility to develop API seems questionable...
At this point in time, there is no difference to
libmachine
itself. So the change is mostly superficial, the bigger issue what is going to happen with the two libvirt machine drivers used by minikube ?