Skip to content

Commit 6dda956

Browse files
committed
Update SIG Docs KEP (3rd party content)
1 parent 397f701 commit 6dda956

File tree

2 files changed

+56
-41
lines changed

2 files changed

+56
-41
lines changed

keps/sig-docs/1326-third-party-content-in-docs/README.md

Lines changed: 51 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
- [Implementation Details/Notes/Constraints](#implementation-detailsnotesconstraints)
2020
- [Risks and Mitigations](#risks-and-mitigations)
2121
- [Design Details](#design-details)
22-
- [Graduation Criteria](#graduation-criteria)
2322
- [Drawbacks](#drawbacks)
2423
- [Alternatives](#alternatives)
2524
<!-- /toc -->
@@ -29,17 +28,18 @@ release process for website content.
2928

3029
## Summary
3130

32-
This KEP seeks consensus on how Kubernetes docs handle two types of content:
31+
This KEP defines the Kubernetes project consensus on how in-project documentation
32+
should handle two types of content:
3333

3434
1. Content from or about third-party providers ("third-party content")
3535

36-
Minimize and eliminate third-party content except when necessary for Kubernetes
37-
to function in-project.
36+
Minimize and eliminate third-party content except when necessary for Kubernetes
37+
to function in-project.
3838

3939
2. Content hosted on multiple sites ("dual-sourced content")
4040

41-
Minimize and eliminate dual-sourced content except when necessary for Kubernetes
42-
to function in-project.
41+
Minimize and eliminate dual-sourced content except when necessary for Kubernetes
42+
to function in-project.
4343

4444
**Note:** This KEP defines "in project" to mean projects in the Kubernetes org,
4545
which includes the [kubernetes](https://github.com/kubernetes) and
@@ -61,17 +61,15 @@ project docs is to host single-sourced content only, and to provide
6161
links to other providers’ single-sourced content. This simplifies
6262
version management and reduces the work required to maintain content.
6363

64-
This KEP defines how to handle third-party and dual-sourced content in
65-
documentation, so that authors can
66-
judge what is appropriate to propose and so that PR approvers can make
67-
consistent, fair decisions during the review process.
64+
This KEP defines how to handle third-party and dual-sourced content in
65+
documentation, so that authors can judge what is appropriate to propose and so that PR
66+
approvers can make consistent, fair decisions during the review process.
6867

6968
## Motivation
7069

71-
SIG Docs publishes Kubernetes
72-
documentation on kubernetes.io in line with its
70+
SIG Docs publishes Kubernetes documentation on kubernetes.io in line with its
7371
[charter](https://github.com/kubernetes/community/blob/master/sig-docs/charter.md#scope)
74-
and sets standards for website content. Prior to this KEP, there are no
72+
and sets standards for website content. Prior to this KEP, there were no
7573
clear guidelines or standards for third-party and dual-sourced content.
7674

7775
The Kubernetes documentation is currently a mix of both 1) documentation
@@ -80,11 +78,17 @@ how to install or use Kubernetes on several third party Kubernetes
8078
offerings.
8179

8280
Some third party content is necessary in order for Kubernetes to
83-
function. For example: container runtimes (containerd, CRI-o, Docker),
84-
networking policy (CNI plugins), Ingress controllers, and logging all require
85-
third party components. Pages like [Logging Using Stackdriver](https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/)
86-
are highly specific to a third party offering and seem more like third party
87-
product documentation than Kubernetes open source documentation.
81+
function. For example: you need an operating system. You also typically
82+
need or want: container runtimes (such as containerd or CRI-O),
83+
NetworkPolicy (CNI plugins), Ingress or Gateway controllers, and logging.
84+
Those listed outcomes all require third party components.
85+
86+
Before this KEP, the docs had several pages that explained how to do a relevant task,
87+
but in a way that was too narrow in scope and too tied to details outside of Kubernetes
88+
(such as explaining how to ship logs to a particular vendor solution). Contributors
89+
struggled to maintain these pages and vendors hoping to add explanations of integration
90+
with rival offerings may have felt there was an advantage to the docs that happened to
91+
have landed first.
8892

8993
### Goals
9094

@@ -174,35 +178,49 @@ Third-party content should be linked instead of hosted whenever possible.
174178

175179
### Non-Goals
176180

177-
1. Outright removal of all content relating to vendors and projects outside the
178-
Kubernetes project.
181+
* Outright removal of all content relating to vendors and projects outside the
182+
Kubernetes project.
179183

180184
## Proposal
181185

182-
1. Revise the [content guide](https://github.com/kubernetes/website/blob/master/content/en/docs/contribute/style/content-guide.md#contributing-content) to achieve the KEP goal:
186+
Clearly define what documentation is required so that readers understand
187+
how to deploy, operate and consume Kubernetes clusters using features from
188+
in-project code and its mandatory dependencies.
189+
190+
1. Revise the [content guide](https://kubernetes.io/docs/contribute/style/content-guide/) to achieve the KEP goal:
183191

184192
- Specify that Kubernetes docs are limited to content required for Kubernetes to
185-
function in-project. Docs may include third-party OSS content for components that
186-
require a third-party solution to function. Docs may include content for
193+
function in-project. Docs may include third-party OSS content for components that
194+
require a third-party solution to function. Docs may include content for
187195
other projects in the Kubernetes org, and content from other OSS projects that
188-
are necessary for Kubernetes to function. Third-party content must be linked
196+
are necessary for Kubernetes to function. Third-party content must be linked
189197
whenever possible, rather than duplicated or hosted in k/website.
190198

199+
- capture equivalent policies for subprojects, with the aim of ensuring that
200+
Kubernetes components have maintainable docs that avoid vendor pitches and
201+
that are relevant to end users. Third party content must be linked whenever
202+
possible.
203+
204+
For integration components, such as in-project code for integrating with a
205+
specific cloud provider, each component **SHOULD** decide on one canonical location
206+
for the documentation (either within the Kubernetes project, or hosted with that
207+
provider, but not both).
208+
191209
2. Revise the documentation when the KEP is approved:
192210

193-
- **Third-party content:** Notify stakeholders of all affected content via
211+
- **Third-party content:** Notify stakeholders of all affected content via
194212
GitHub issues and via a single message containing a summary of all affected
195-
content to [email protected] that non-conforming content will be
213+
content to [email protected] that non-conforming content will be
196214
removed after 90 days.
197215

198-
This limits the impact to out-of-project content and gives current stakeholders
199-
approximately one Kubernetes release cycle to migrate
200-
third-party content to an alternate platform before removing content from
216+
This limits the impact to out-of-project content and gives current stakeholders
217+
approximately one Kubernetes release cycle to migrate
218+
third-party content to an alternate platform before removing content from
201219
Kubernetes docs.
202220

203221
- **Dual-sourced content:** Where sourcing is obvious, replace dual-sourced
204222
content with links to an authoritative single source. Where sourcing is unclear,
205-
notify stakeholders via GitHub issues in k/website and via a single message
223+
notify stakeholders via GitHub issues in k/website and via a single message
206224
containing a summary of all affected content to [email protected]
207225
that non-conforming content will be removed after 90 days.
208226

@@ -268,10 +286,10 @@ As [hyperkube transitions to third-party maintenance](https://github.com/kuberne
268286

269287
### Implementation Details/Notes/Constraints
270288

271-
This KEP originally included language around considering intent of contributors.
289+
_This KEP originally included language around considering intent of contributors.
272290
Because intent is effectively impossible to judge (and because contributions
273-
are nearly always made with the best intent), this KEP now specifies that
274-
third-party content is limited to what's required for in-project functionality.
291+
are nearly always made with the best intent), this KEP now specifies that
292+
third-party content is limited to what's required for in-project functionality._
275293

276294
SIG Docs may add its own guidelines for writing and reviewing ambiguous content.
277295

@@ -306,10 +324,6 @@ None known
306324

307325
## Design Details
308326

309-
### Graduation Criteria
310-
311-
**Note:** *this KEP does not target any release*
312-
313327
Once the community have reached consensus, prepare a PR to update the
314328
existing [content guide](https://github.com/kubernetes/website/blob/master/content/en/docs/contribute/style/content-guide.md#contributing-content).
315329

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
title: doc-policies-for-third-party-content
1+
title: Doc policies for third party content
22
kep-number: 1326
33
authors:
44
- "@aimeeu"
@@ -7,13 +7,14 @@ authors:
77
- "@zacharysarah"
88
owning-sig: sig-docs
99
reviewers:
10-
- "@jaredbhatti"
11-
- "@kbarnard10"
10+
- "@katcosgrove"
11+
- "@salaxander"
12+
- "@tengqm"
1213
approvers:
1314
- "@cblecker"
1415
- "@derekwaynecarr"
1516
- "@dims"
1617
editor: "@zacharysarah"
1718
creation-date: 2019-10-20
18-
last-updated: 2019-10-20
19+
last-updated: 2025-09-16
1920
status: provisional

0 commit comments

Comments
 (0)