Skip to content

Commit 8675781

Browse files
authored
design document template (#2563)
* updated maintainers * update to the front page * installation paragraph * design doc template * additional process detail * slight updates
1 parent c12da42 commit 8675781

File tree

4 files changed

+129
-3
lines changed

4 files changed

+129
-3
lines changed

CONTRIBUTING.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ You generally only need to submit a CLA once, so if you've already submitted one
1515
(even if it was for a different project), you probably don't need to do it
1616
again.
1717

18+
## Contributing large features
19+
20+
Larger features and all the features that affect the interface (CLI or API) of
21+
kpt need to have a reviewed and merged design document. It is OK to start with
22+
a prototype in your private fork but if you intend for your feature to be
23+
shipped in kpt please create a design document with this
24+
[design template](/docs/design-docs/00-template.md).
25+
26+
You should create a copy of the template and submit a PR for comments and
27+
review by maintainers. Once the PR is merged the design is considered approved.
28+
The actual code change PRs should link to the design documents, even though it
29+
is well understood that the design can drift during implementation.
30+
1831
## Code reviews
1932

2033
All submissions, including submissions by project members, require review. We

MAINTAINERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
Mortent Torkildsen <[email protected]>
2-
Jeffrey Regan <jregan@google.com>
2+
Sunil Arora <sunilarora@google.com>
33
Frank Farzan <[email protected]>
4+
Phani Teja Marupaka <[email protected]>
5+
Mengqi Yu <[email protected]>

README.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,42 @@
11
# kpt
22

3-
- [Documentation for version >= v1.0](https://kpt.dev/)
4-
- [Documentation for version <= v0.39](https://googlecontainertools.github.io/kpt/)
3+
kpt is a git-native, schema-aware, extensible client-side tool for packaging,
4+
customizing, validating, and applying Kubernetes resources.
5+
6+
## Why kpt?
7+
8+
1. kpt allows you to share, use and update packages of Kubernetes resources
9+
using any git repo. No special setup is necessary.
10+
2. kpt allows customization of packages using an editor of your choice. The
11+
resource merge feature of kpt will handle a lot of the scenarios of merging
12+
upstream changes on update.
13+
3. Customization in kpt is done without templates, domain specific languages
14+
and paramters. Any engineer who is familiar with Kubernetes to work on the
15+
infrastructure configuration.
16+
4. kpt apply addresses some of the functional gaps in `kubectl apply` such as
17+
pruning and reconciling status.
18+
19+
The best place to get started and learn about specific features of kpt is
20+
to visit the [kpt website](https://kpt.dev/).
21+
22+
### Install kpt
23+
24+
kpt installation instructions can be found on
25+
[kpt.dev/installation](https://kpt.dev/installation/)
26+
27+
## Roadmap
28+
29+
You can read about the big upcoming features in the
30+
[roadmap doc](/docs/ROADMAP.md).
31+
32+
## Contributing
33+
34+
If you are interested in contributing please start with
35+
[contribution guidelines](CONTRIBUTING.md).
36+
37+
## Contact
38+
39+
We would love to keep in touch:
40+
41+
1. Join our [Slack channel](https://kubernetes.slack.com/channels/kpt)
42+
1. Join our [email list](https://groups.google.com/forum/?oldui=1#!forum/kpt-users)

docs/design-docs/00-template.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Title
2+
3+
* Author(s): \<your name\>, \<your github alias\>
4+
* Approver: \<kpt-maintainer\>
5+
6+
> Every feature will need design sign off an PR approval from a core
7+
> maintainer. If you have not got in touch with anyone yet, you can leave
8+
> this blank and we will try to line someone up for you.
9+
10+
## Why
11+
12+
Please provide a reason to have this feature. For best results a feature should
13+
be addressing a problem that is described in a github issue. Link the issues
14+
in this section. The more user requests are linked here the more likely this
15+
design is going to get prioritized on the roadmap.
16+
17+
It's good to include some background about the problem, but do not use that as a
18+
substitute for real user feedback.
19+
20+
## Design
21+
22+
Please describe your solution. Please list any:
23+
24+
* new config changes
25+
* interface changes
26+
* design assumptions
27+
28+
For a new config change, please mention:
29+
30+
* Is it backwards compatible? If not, what is the migration and deprecation
31+
plan?
32+
33+
34+
## User Guide
35+
36+
This section should be written in the form of a detailed user guide describing
37+
the user journey. It should start from a reasonable initial state, often from
38+
scratch (Instead of starting midway through a convoluted scenario) in order
39+
to provide enough context for the reader and demonstrate possible workflows.
40+
This is a form of DDD (Documentation-Driven-Development), which is an effective
41+
technique to empathize with the user early in the process (As opposed to
42+
late-stage user-empathy sessions).
43+
44+
This section should be as detailed as possible. For example if proposing a CLI
45+
change, provide the exact commands the user needs to run, along with flag
46+
descriptions, and success and failure messages (Failure messages are an
47+
important part of a good UX). This level of detail serves two functions:
48+
49+
It forces the author and the readers to explicitly think about possible friction
50+
points, pitfalls, failure scenarios, and corner cases (“A measure of a good
51+
engineer is not how clever they are, but whether they think about all the
52+
corner cases”). Makes it easier to author the user-facing docs as part of the
53+
development process (Ideally as part of the same PR) as opposed to it being an
54+
afterthought.
55+
56+
## Open Issues/Questions
57+
58+
Please list any open questions here in the following format:
59+
60+
### \<Question\>
61+
62+
Resolution: Please list the resolution if resolved during the design process or
63+
specify __Not Yet Resolved__
64+
65+
## Alternatives Considered
66+
67+
If there is an industry precedent or alternative approaches please list them
68+
here as well as citing *why* you decided not to pursue those paths.
69+
70+
### \<Approach\>
71+
72+
Links and description of the approach, the pros and cons identified during the
73+
design.

0 commit comments

Comments
 (0)