diff --git a/rfcs/README.md b/rfcs/README.md new file mode 100644 index 0000000000..78d7545155 --- /dev/null +++ b/rfcs/README.md @@ -0,0 +1,97 @@ +# Flux RFCs + +In many cases, new features and enhancements are proposed on [flux2/discussions](https://github.com/fluxcd/flux2/discussions). +A proposal is discussed in public by maintainers, contributors, users and other interested parties. +After some form of consensus is reached between participants, the proposed changes go through the +pull request process where the implementation details are reviewed, approved or rejected by maintainers. + +Some proposals may be **substantial**, and for these we ask for a design process to be followed +so that all stakeholders can be confident about the direction Flux is evolving in. + +The "RFC" (request for comments) process is intended to provide a consistent and +controlled path for substantial changes to enter Flux. + +Examples of substantial changes: + +- API additions (new kinds of resources, new relationships between exiting APIs) +- API breaking changes (new required fields, field removals) +- Security related changes (Flux controllers permissions, tenant isolation and impersonation) +- Impactful UX changes (new required inputs to the bootstrap process) +- Drop capabilities (sunset an existing integration with an external service due to security concerns) + +## RCF Template + +```text +# RFC-NNNN Title + + + +## Summary + + + +## Motivation + + + +### Goals + + + +### Non-Goals + + + +## Proposal + + + +### User Stories + + + +## Design Details + + + +## Implementation History + + +``` + +The RFC template is heavily inspired by Rust RFCs and Kubernetes KEPs.