Metal Stack Enhancement Proposals (MEPs)
This section contains proposals which address substantial modifications to metal-stack.
Every proposal has a short name which starts with MEP followed by an incremental, unique number. Proposals should be raised as pull requests in the website repository and can be discussed in Github issues.
The list of proposals and their current state is listed in the table below.
Possible states are:
In Discussion
Accepted
Declined
In Progress
Completed
Aborted
Once a proposal was accepted, an issue should be raised and the implementation should be done in a separate PR.
Name | Description | State |
---|---|---|
MEP-1 | Distributed Control Plane Deployment | Declined |
MEP-2 | Two Factor Authentication | Aborted |
MEP-3 | Machine Re-Installation to preserve local data | Completed |
MEP-4 | Multi-tenancy for the metal-api | In Progress |
MEP-5 | Shared Networks | Completed |
MEP-6 | DMZ Networks | Completed |
MEP-7 | Passing environment variables to machines | Declined |
MEP-8 | Configurable Filesystemlayout | Completed |
MEP-9 | No Open Ports To the Data Center | Completed |
MEP-10 | SONiC Support | Completed |
MEP-11 | Auditing ^of metal-stack resources | Completed |
MEP-12 | Rack Spreading | Completed |
MEP-13 | IPv6 | Completed |
MEP-14 | Independence from external sources | Completed |
MEP-15 | HAL Improvements | In Discussion |
MEP-16 | Firewall Support for Cluster API Provider | In Discussion |
MEP-17 | Global Network View | In Discussion |
MEP-18 | Autonomous Control Plane | In Discussion |
Proposal Process
- Before starting a new proposal, it is advised to have a quick chat with one of the maintainers.
- Create a draft pull request in the website repository with your proposal. Your proposal doesn't have to be finished at this point.
- Share the PR in the metal-stack Slack and invite maintainers to review it.
- The review itself will probably take place in multiple iterations. Don't be discouraged if your proposal is not accepted right away. The goal is to reach consensus.
- Once your proposal is accepted, create an umbrella issue in the relevant repository or when multiple repositories are involved in the releases.
- Other issues should be created in different repositories and linked to the umbrella issue.
- Unless stated otherwise, the proposer is responsible for the implementation of the proposal.
How to Write a Good MEP
In the first section of your MEP, start with the current situation and the motivation for the change. Summarize your proposal briefly.
Next follows the main part: describe your proposal in detail. Which parts of of metal-stack are affected? Are there API changes? If yes, describe them and provide examples here. Try to think of side effects your proposal might have. Try to provide a view on how your proposal affects users of metal-stack. Highlight breaking changes and think of a migration path for existing users. If your proposal affects multiple components, try to describe the interaction between them.
After the main part of your proposal, feel free to add additional sections, e.g. about alternatives that were considered, non-goals or future possibilities.
Depending on the complexity of your proposal, you might want to add a section about the implementation plan or roadmap.
You can have a look at the existing MEPs for inspiration. As you will notice: not every MEP has the same structure. Feel free to structure your MEP in a way that makes sense for your proposal.