Skip to content

Commit 60bab3a

Browse files
authoredDec 19, 2024··
Adding initial docs infra (#118)
* Adding initial docs infra * Adding additional netlify config
1 parent d075051 commit 60bab3a

28 files changed

+760
-0
lines changed
 

Diff for: ‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,6 @@ go.work.sum
2626
*.swp
2727
*.swo
2828
*~
29+
30+
# generated docs
31+
site

Diff for: ‎Makefile

+17
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,23 @@ build-installer: manifests generate kustomize ## Generate a consolidated YAML wi
150150
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
151151
$(KUSTOMIZE) build config/default > dist/install.yaml
152152

153+
##@ Docs
154+
155+
.PHONY: build-docs
156+
build-docs:
157+
docker build --pull -t gaie/mkdocs hack/mkdocs/image
158+
docker run --rm -v ${PWD}:/docs gaie/mkdocs build
159+
160+
.PHONY: build-docs-netlify
161+
build-docs-netlify:
162+
pip install -r hack/mkdocs/image/requirements.txt
163+
mkdocs build
164+
165+
.PHONY: live-docs
166+
live-docs:
167+
docker build -t gaie/mkdocs hack/mkdocs/image
168+
docker run --rm -it -p 3000:3000 -v ${PWD}:/docs gaie/mkdocs
169+
153170
##@ Deployment
154171

155172
ifndef ignore-not-found

Diff for: ‎hack/mkdocs/image/Dockerfile

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Copyright 2019 The Kubernetes Authors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
FROM python:3.13-alpine
16+
17+
COPY requirements.txt /requirements.txt
18+
RUN pip install -r /requirements.txt
19+
20+
WORKDIR /docs
21+
22+
EXPOSE 3000
23+
24+
COPY entrypoint.sh /
25+
26+
ENTRYPOINT ["/entrypoint.sh"]

Diff for: ‎hack/mkdocs/image/entrypoint.sh

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/bin/sh
2+
3+
# Copyright 2019 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
set -o errexit
18+
set -o pipefail
19+
20+
CMD=$1
21+
22+
if [ "$CMD" == "build" ];
23+
then
24+
mkdocs build
25+
exit 0;
26+
fi
27+
28+
mkdocs serve --dev-addr=0.0.0.0:3000 --livereload

Diff for: ‎hack/mkdocs/image/requirements.txt

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# required for mkdocs-core
2+
jinja2~=3.0
3+
# mkdocs 2.4.1 requires Markdown < 3.4.0
4+
# https://github.com/kubernetes-sigs/gateway-api/pull/1671#issuecomment-1400586465
5+
markdown~=3.7
6+
mkdocs~=1.6
7+
mkdocs-material-extensions~=1.3
8+
pygments~=2.16
9+
pymdown-extensions~=10.2
10+
11+
# Requirements for plugins
12+
babel~=2.10
13+
colorama~=0.4
14+
paginate~=0.5
15+
regex>=2022.4
16+
requests~=2.26
17+
18+
# mkdocs + mkdocs plugins
19+
mkdocs==1.6.1
20+
mkdocs-awesome-pages-plugin==2.9.3
21+
mkdocs-macros-plugin==1.2.0
22+
mkdocs-material==9.5.36
23+
mkdocs-material-extensions==1.3.1
24+
mkdocs-redirects==1.2.1
25+
mkdocs-mermaid2-plugin==1.1.1

Diff for: ‎mkdocs.yml

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
site_name: Kubernetes Gateway API Inference Extension
2+
repo_url: https://github.com/kubernetes-sigs/gateway-api-inference-extension
3+
repo_name: kubernetes-sigs/gateway-api-inference-extension
4+
site_dir: site
5+
docs_dir: site-src
6+
extra_css:
7+
- stylesheets/extra.css
8+
theme:
9+
name: material
10+
icon:
11+
repo: fontawesome/brands/git-alt
12+
logo: images/logo/logo-text-large-horizontal-white.png
13+
favicon: images/k8s-favicon.png
14+
features:
15+
- search.highlight
16+
- navigation.tabs
17+
- navigation.top
18+
- navigation.expand
19+
palette:
20+
primary: custom
21+
custom_dir: site-src/overrides
22+
edit_uri: edit/main/site-src/
23+
plugins:
24+
- search
25+
- awesome-pages
26+
- macros:
27+
include_dir: examples
28+
j2_line_comment_prefix: "#$"
29+
- mermaid2
30+
markdown_extensions:
31+
- admonition
32+
- meta
33+
- pymdownx.emoji:
34+
emoji_index: !!python/name:material.extensions.emoji.twemoji
35+
emoji_generator: !!python/name:materialx.emoji.to_svg
36+
- pymdownx.details
37+
- pymdownx.highlight
38+
- pymdownx.inlinehilite
39+
- pymdownx.superfences:
40+
custom_fences:
41+
- name: mermaid
42+
class: mermaid
43+
format: !!python/name:pymdownx.superfences.fence_code_format
44+
- pymdownx.snippets
45+
- toc:
46+
permalink: true
47+
- tables
48+
nav:
49+
- Overview:
50+
- Introduction: index.md
51+
- Concepts:
52+
API Overview: concepts/api-overview.md
53+
Conformance: concepts/conformance.md
54+
Roles and Personas: concepts/roles-and-personas.md
55+
Use Cases: concepts/use-cases.md
56+
- Implementations: implementations.md
57+
- FAQ: faq.md
58+
- Glossary: concepts/glossary.md
59+
- Guides:
60+
- User Guides:
61+
- Getting started: guides/index.md
62+
- Implementer's Guide: guides/implementers.md
63+
- Reference:
64+
- API Types:
65+
- InferencePool: api-types/inferencepool.md
66+
- InferenceModel: api-types/inferencemodel.md
67+
- API specification: reference/spec.md
68+
- Enhancements:
69+
- Overview: gieps/overview.md
70+
- Contributing:
71+
- How to Get Involved: contributing/index.md
72+
- Developer Guide: contributing/devguide.md

Diff for: ‎netlify.toml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# netlify configuration
2+
[build]
3+
publish = "site"
4+
command = "make build-docs-netlify"
5+
# available here https://github.com/netlify/build-image/blob/focal/included_software.md#languages
6+
environment = { PYTHON_VERSION = "3.8" }

Diff for: ‎site-src/.mkdocs-exclude

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.mkdocs-exclude
2+
.nojekyll
3+
.placeholder
4+
search/search_index.json
5+
sitemap.xml.gz
6+
sitemap.xml

Diff for: ‎site-src/api-types/inferencemodel.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Inference Model
2+
3+
??? example "Alpha since v0.1.0"
4+
5+
The `InferenceModel` resource is alpha and may have breaking changes in
6+
future releases of the API.
7+
8+
## Background
9+
10+
TODO
11+
12+
## Spec
13+
14+
TODO

Diff for: ‎site-src/api-types/inferencepool.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Inference Pool
2+
3+
??? example "Alpha since v0.1.0"
4+
5+
The `InferencePool` resource is alpha and may have breaking changes in
6+
future releases of the API.
7+
8+
## Background
9+
10+
TODO
11+
12+
## Spec
13+
14+
TODO

Diff for: ‎site-src/concepts/api-overview.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# API Overview
2+
3+
TODO

Diff for: ‎site-src/concepts/glossary.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Gateway API Glossary
2+
3+
TODO

Diff for: ‎site-src/concepts/roles-and-personas.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Roles and Personas
2+
3+
TODO

Diff for: ‎site-src/concepts/use-cases.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Use Cases
2+
3+
TODO

Diff for: ‎site-src/contributing/devguide.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Developer Guide
2+
3+
TODO

Diff for: ‎site-src/contributing/index.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# How to Get Involved
2+
3+
TODO

Diff for: ‎site-src/faq.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Frequently Asked Questions (FAQ)
2+
3+
TODO

Diff for: ‎site-src/gieps/giep-116/index.md

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# GIEP-116: GIEP template
2+
3+
* Issue: [#0](https://github.com/kubernetes-sigs/gateway-api-inference-extension/issues/116)
4+
* Status: Provisional|Implementable|Experimental|Standard|Deferred|Rejected|Withdrawn|Replaced
5+
6+
(See status definitions [here](overview.md#status).)
7+
8+
## TLDR
9+
10+
(1-2 sentence summary of the proposal)
11+
12+
## Goals
13+
14+
(Primary goals of this proposal.)
15+
16+
## Non-Goals
17+
18+
(What is out of scope for this proposal.)
19+
20+
## Introduction
21+
22+
(Can link to external doc -- but we should bias towards copying
23+
the content into the GEP as online documents are easier to lose
24+
-- e.g. owner messes up the permissions, accidental deletion)
25+
26+
## API
27+
28+
(... details, can point to PR with changes)
29+
30+
## Conformance Details
31+
32+
(This section describes the names to be used for the feature or
33+
features in conformance tests and profiles.
34+
35+
These should be `CamelCase` names that specify the feature as
36+
precisely as possible, and are particularly important for
37+
Extended features, since they may be surfaced to users.)
38+
39+
## Alternatives
40+
41+
(List other design alternatives and why we did not go in that
42+
direction)
43+
44+
## References
45+
46+
(Add any additional document links. Again, we should try to avoid
47+
too much content not in version control to avoid broken links)

Diff for: ‎site-src/gieps/giep-116/metadata.yaml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
2+
kind: GIEPDetails
3+
number: 116
4+
name: GIEP template
5+
status: Completed
6+
# Any authors who contribute to the GEP in any way should be listed here using
7+
# their Github handle.
8+
authors:
9+
- robscott
10+
relationships:
11+
# obsoletes indicates that a GEP makes the linked GEP obsolete, and completely
12+
# replaces that GEP. The obsoleted GEP MUST have its obsoletedBy field
13+
# set back to this GEP, and MUST be moved to Declined.
14+
obsoletes: {}
15+
obsoletedBy: {}
16+
# extends indicates that a GEP extends the linkned GEP, adding more detail
17+
# or additional implementation. The extended GEP MUST have its extendedBy
18+
# field set back to this GEP.
19+
extends: {}
20+
extendedBy: {}
21+
# seeAlso indicates other GEPs that are relevant in some way without being
22+
# covered by an existing relationship.
23+
seeAlso: {}
24+
# references is a list of hyperlinks to relevant external references.
25+
# It's intended to be used for storing Github discussions, Google docs, etc.
26+
references: {}
27+
# featureNames is a list of the feature names introduced by the GEP, if there
28+
# are any. This will allow us to track which feature was introduced by which GEP.
29+
featureNames: {}
30+
# changelog is a list of hyperlinks to PRs that make changes to the GEP, in
31+
# ascending date order.
32+
changelog: {}

Diff for: ‎site-src/gieps/overview.md

+272
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
# Gateway Inference Enhancement Proposal (GIEP)
2+
3+
Gateway Inference Enhancement Proposals (GIEPs) serve a similar purpose to the
4+
[GIEP](https://gateway-api.sigs.k8s.io/GIEPs/overview/) process for the main
5+
Gateway API project:
6+
7+
1. Ensure that changes to the API follow a known process and discussion in the
8+
OSS community.
9+
1. Make changes and proposals discoverable (current and future).
10+
1. Document design ideas, tradeoffs, decisions that were made for historical
11+
reference.
12+
1. Record the results of larger community discussions.
13+
1. Record changes to the GIEP process itself.
14+
15+
## Process
16+
17+
This diagram shows the state diagram of the GIEP process at a high level, but
18+
the details are below.
19+
20+
<div align="center">
21+
22+
```mermaid
23+
flowchart TD
24+
D([Discuss with<br />the community]) --> C
25+
C([Issue Created]) -------> Memorandum
26+
C([Issue Created]) --> Provisional
27+
Provisional -->|If practical <br /> work needed| Prototyping
28+
Provisional -->|GIEP Doc PR<br />done| Implementable
29+
Prototyping -->|GIEP Doc PR<br />done| Implementable
30+
Implementable -->|Gateway API<br />work completed| Experimental
31+
Experimental -->|Supported in<br />multiple implementations<br />+ Conformance tests| Standard
32+
Standard -->|Entire change is GA or implemented| Completed
33+
```
34+
35+
</div>
36+
37+
## GIEP Definitions
38+
39+
### GIEP States
40+
41+
Each GIEP has a state, which tracks where it is in the GIEP process.
42+
43+
GIEPs can move to some states from any other state:
44+
45+
* **Declined**: The GIEP has been declined and further work will not occur.
46+
* **Deferred:** We do not currently have bandwidth to handle this GIEP, it may
47+
be revisited in the future.
48+
* **Declined:** This proposal was considered by the community but ultimately
49+
rejected.
50+
* **Withdrawn:** This proposal was considered by the community but ultimately
51+
withdrawn by the author.
52+
53+
There is a special state to cover Memorandum GIEPs:
54+
55+
* **Memorandum**: These GIEPs either:
56+
* Document an agreement for further work, creating no spec changes
57+
themselves, or
58+
* Update the GIEP process.
59+
60+
API GIEPs flow through a number of states, which generally correspond to the
61+
level of stability of the change described in the GIEP:
62+
63+
* **Provisional:** The goals described by this GIEP have consensus but
64+
implementation details have not been agreed to yet.
65+
* **Prototyping:** An extension of `Provisional` which can be opted in to in
66+
order to indicate to the community that there are some active practical
67+
tests and experiments going on which are intended to be a part of the
68+
development of this GIEP. This may include APIs or code, but that content
69+
_must_ not be distributed with releases.
70+
* **Implementable:** The goals and implementation details described by this
71+
GIEP have consensus but have not been fully implemented yet.
72+
* **Experimental:** This GIEP has been implemented and is part of the
73+
"Experimental" release channel. Breaking changes are still possible, up to
74+
and including complete removal and moving to `Rejected`.
75+
* **Standard:** This GIEP has been implemented and is part of the "Standard"
76+
release channel. It should be quite stable.
77+
* **Completed**: All implementation work on this API GIEP has been completed.
78+
79+
### Relationships between GIEPs
80+
81+
GIEPs can have relationships between them. At this time, there are three
82+
possible relationships:
83+
84+
* **Obsoletes** and its backreference **ObsoletedBy**: when a GIEP is made
85+
obsolete by another GIEP, and has its functionality completely replaced. The
86+
Obsoleted GIEP is moved to the **Declined** state.
87+
* **Extends** and its backreference **ExtendedBy**: when a GIEP has additional
88+
details or implementation added in another GIEP.
89+
* **SeeAlso**: when a GIEP is relevant to another GIEP, but is not affected in
90+
any other defined way.
91+
92+
Relationships are tracked in the YAML metadata files accompanying each GIEP.
93+
94+
### GIEP metadata file
95+
96+
Each GIEP has a YAML file containing metadata alongside it, please keep it up to
97+
date as changes to the GIEP occur.
98+
99+
In particular, note the `authors`, and `changelog` fields, please keep those up
100+
to date.
101+
102+
## Process
103+
104+
### 1. Discuss with the community
105+
106+
Before creating a GIEP, share your high level idea with the community. There are
107+
several places this may be done:
108+
109+
- A [new GitHub
110+
Discussion](https://github.com/kubernetes-sigs/gateway-api/discussions/new)
111+
- On our [Slack Channel](https://kubernetes.slack.com/archives/CR0H13KGA)
112+
- On one of our [community
113+
meetings](https://gateway-api.sigs.k8s.io/contributing/?h=meetings#meetings)
114+
115+
Please default to GitHub discussions: they work a lot like GitHub issues which
116+
makes them easy to search.
117+
118+
### 2. Create an Issue
119+
[Create a GIEP
120+
issue](https://github.com/kubernetes-sigs/gateway-api/issues/new?assignees=&labels=kind%2Ffeature&template=enhancement.md)
121+
in the repo describing your change. At this point, you should copy the outcome
122+
of any other conversations or documents into this document.
123+
124+
### 3. Agree on the Goals
125+
Although it can be tempting to start writing out all the details of your
126+
proposal, it's important to first ensure we all agree on the goals.
127+
128+
For API GIEPs, the first version of your GIEP should aim for a "Provisional"
129+
status and leave out any implementation details, focusing primarily on "Goals"
130+
and "Non-Goals".
131+
132+
For Memorandum GIEPs, the first version of your GIEP will be the only one, as
133+
Memorandums have only a single stage - `Accepted`.
134+
135+
### 3. Document Implementation Details
136+
Now that everyone agrees on the goals, it is time to start writing out your
137+
proposed implementation details. These implementation details should be very
138+
thorough, including the proposed API spec, and covering any relevant edge cases.
139+
Note that it may be helpful to use a shared doc for part of this phase to enable
140+
faster iteration on potential designs.
141+
142+
It is likely that throughout this process, you will discuss a variety of
143+
alternatives. Be sure to document all of these in the GIEP, and why we decided
144+
against them. At this stage, the GIEP should be targeting the "Implementable"
145+
stage.
146+
147+
### 4. Implement the GIEP as "Experimental"
148+
149+
With the GIEP marked as "Implementable", it is time to actually make those
150+
proposed changes in our API. In some cases, these changes will be documentation
151+
only, but in most cases, some API changes will also be required. It is important
152+
that every new feature of the API is marked as "Experimental" when it is
153+
introduced. Within the API, we use `<gateway:experimental>` tags to denote
154+
experimental fields. Within Golang packages (conformance tests, CLIs, e.t.c.) we
155+
use the `experimental` Golang build tag to denote experimental functionality.
156+
157+
Some other requirements must be met before marking a GIEP `Experimental`:
158+
159+
- the graduation criteria to reach `Standard` MUST be filled out
160+
- a proposed probationary period (see next section) must be included in the GIEP
161+
and approved by maintainers.
162+
163+
Before changes are released they MUST be documented. GIEPs that have not been
164+
both implemented and documented before a release cut off will be excluded from
165+
the release.
166+
167+
#### Probationary Period
168+
169+
Any GIEP in the `Experimental` phase is automatically under a "probationary
170+
period" where it will come up for re-assessment if its graduation criteria are
171+
not met within a given time period. GIEPs that wish to move into `Experimental`
172+
status MUST document a proposed period (6 months is the suggested default) that
173+
MUST be approved by maintainers. Maintainers MAY select an alternative time
174+
duration for a probationary period if deemed appropriate, and will document
175+
their reasoning.
176+
177+
> **Rationale**: This probationary period exists to avoid GIEPs getting "stale"
178+
> and to provide guidance to implementations about how relevant features should
179+
> be used, given that they are not guaranteed to become supported.
180+
181+
At the end of a probationary period if the GIEP has not been able to resolve its
182+
graduation criteria it will move to "Rejected" status. In extenuating
183+
circumstances an extension of that period may be accepted by approval from
184+
maintainers. GIEPs which are `Rejected` in this way are removed from the
185+
experimental CRDs and more or less put on hold. GIEPs may be allowed to move
186+
back into `Experimental` status from `Rejected` for another probationary period
187+
if a new strategy for achieving their graduation criteria can be established.
188+
Any such plan to take a GIEP "off the shelf" must be reviewed and accepted by
189+
the maintainers.
190+
191+
> **Warning**: It is extremely important** that projects which implement
192+
> `Experimental` features clearly document that these features may be removed in
193+
> future releases.
194+
195+
### 5. Graduate the GIEP to "Standard"
196+
197+
Once this feature has met the [graduation
198+
criteria](/concepts/versioning/#graduation-criteria), it is time to graduate it
199+
to the "Standard" channel of the API. Depending on the feature, this may include
200+
any of the following:
201+
202+
1. Graduating the resource to beta
203+
2. Graduating fields to "standard" by removing `<gateway:experimental>` tags
204+
3. Graduating a concept to "standard" by updating documentation
205+
206+
### 6. Close out the GIEP issue
207+
208+
The GIEP issue should only be closed once the feature has:
209+
- Moved to the standard channel for distribution (if necessary)
210+
- Moved to a "v1" `apiVersion` for CRDs
211+
- been completely implemented and has wide acceptance (for process changes).
212+
213+
In short, the GIEP issue should only be closed when the work is "done" (whatever
214+
that means for that GIEP).
215+
216+
## Format
217+
218+
GIEPs should match the format of the template found in
219+
[GIEP-696](/GIEPs/GIEP-696).
220+
221+
## Out of scope
222+
223+
What is out of scope: see [text from KEP][kep-when-to-use]. Examples:
224+
225+
* Bug fixes
226+
* Small changes (API validation, documentation, fixups). It is always possible
227+
that the reviewers will determine a "small" change ends up requiring a GIEP.
228+
229+
## FAQ
230+
231+
#### Why is it named GIEP?
232+
To avoid potential confusion if people start following the cross references to
233+
the full GEP or KEP process.
234+
235+
#### Why have a different process than mainline?
236+
Gateway API has some differences with most upstream KEPs. Notably Gateway API
237+
intentionally avoids including any implementation with the project, so this
238+
process is focused entirely on the substance of the API. As this project is
239+
based on CRDs it also has an entirely separately release process, and has
240+
developed concepts like "release channels" that do not exist in upstream.
241+
242+
#### Is it ok to discuss using shared docs, scratch docs etc?
243+
Yes, this can be a helpful intermediate step when iterating on design details.
244+
It is important that all major feedback, discussions, and alternatives
245+
considered in that step are represented in the GIEP though. A key goal of GIEPs
246+
is to show why we made a decision and which alternatives were considered. If
247+
separate docs are used, it's important that we can still see all relevant
248+
context and decisions in the final GIEP.
249+
250+
#### When should I mark a GIEP as `Prototyping` as opposed to `Provisional`?
251+
The `Prototyping` status carries the same base meaning as `Provisional` in that
252+
consensus is not complete between stakeholders and we're not ready to move
253+
toward releasing content yet. You should use `Prototyping` to indicate to your
254+
fellow community members that we're in a state of active practical tests and
255+
experiments which are intended to help us learn and iterate on the GIEP. These
256+
can include distributing content, but not under any release channel.
257+
258+
#### Should I implement support for `Experimental` channel features?
259+
Ultimately one of the main ways to get something into `Standard` is for it to
260+
mature through the `Experimental` phase, so we really _need_ people to implement
261+
these features and provide feedback in order to have progress. That said, the
262+
graduation of a feature past `Experimental` is not a forgone conclusion. Before
263+
implementing an experimental feature, you should:
264+
265+
* Clearly document that support for the feature is experimental and may
266+
disappear in the future.
267+
* Have a plan in place for how you would handle the removal of this feature from
268+
the API.
269+
270+
[kep]: https://github.com/kubernetes/enhancements
271+
[kep-when-to-use]:
272+
https://github.com/kubernetes/enhancements/tree/master/keps#do-i-have-to-use-the-kep-process

Diff for: ‎site-src/guides/implementers.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Implementer's Guide
2+
3+
TODO

Diff for: ‎site-src/guides/index.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Getting started with Gateway API Inference Extension
2+
3+
TODO
10.3 KB
Loading

Diff for: ‎site-src/implementations.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Implementations
2+
3+
TODO

Diff for: ‎site-src/index.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Introduction
2+
3+
TODO

Diff for: ‎site-src/overrides/partials/header.html

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<!--
2+
Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
3+
4+
Permission is hereby granted, free of charge, to any person obtaining a copy
5+
of this software and associated documentation files (the "Software"), to
6+
deal in the Software without restriction, including without limitation the
7+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8+
sell copies of the Software, and to permit persons to whom the Software is
9+
furnished to do so, subject to the following conditions:
10+
11+
The above copyright notice and this permission notice shall be included in
12+
all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
17+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20+
IN THE SOFTWARE.
21+
-->
22+
23+
<!-- Determine classes -->
24+
{% set class = "md-header" %}
25+
{% if "navigation.tabs.sticky" in features %}
26+
{% set class = class ~ " md-header--shadow md-header--lifted" %}
27+
{% elif "navigation.tabs" not in features %}
28+
{% set class = class ~ " md-header--shadow" %}
29+
{% endif %}
30+
31+
<!-- Header -->
32+
<header class="{{ class }}" data-md-component="header">
33+
<nav
34+
class="md-header__inner md-grid"
35+
aria-label="{{ lang.t('header') }}"
36+
>
37+
38+
<!-- Button to open drawer -->
39+
<label class="md-header__button md-icon" for="__drawer">
40+
{% set icon = config.theme.icon.menu or "material/menu" %}
41+
{% include ".icons/" ~ icon ~ ".svg" %}
42+
</label>
43+
44+
<!-- Link to home -->
45+
<a
46+
href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}"
47+
title="{{ config.site_name | e }}"
48+
class="md-header__button md-logo"
49+
aria-label="{{ config.site_name }}"
50+
data-md-component="logo"
51+
>
52+
{% include "partials/logo.html" %}
53+
</a>
54+
55+
<!-- Header title -->
56+
<div class="md-header__title" data-md-component="header-title">
57+
<div class="md-header__ellipsis">
58+
<div class="md-header__topic">
59+
<span class="md-ellipsis">
60+
{{ config.site_name }}
61+
</span>
62+
</div>
63+
<div class="md-header__topic" data-md-component="header-topic">
64+
<span class="md-ellipsis">
65+
{% if page.meta and page.meta.title %}
66+
{{ page.meta.title }}
67+
{% else %}
68+
{{ page.title }}
69+
{% endif %}
70+
</span>
71+
</div>
72+
</div>
73+
</div>
74+
75+
<!-- Color palette toggle -->
76+
{% if config.theme.palette %}
77+
{% if not config.theme.palette is mapping %}
78+
{% include "partials/palette.html" %}
79+
{% endif %}
80+
{% endif %}
81+
82+
<!-- User preference: color palette -->
83+
{% if not config.theme.palette is mapping %}
84+
{% include "partials/javascripts/palette.html" %}
85+
{% endif %}
86+
87+
<!-- Site language selector -->
88+
{% if config.extra.alternate %}
89+
{% include "partials/alternate.html" %}
90+
{% endif %}
91+
92+
<!-- Button to open search modal -->
93+
{% if "material/search" in config.plugins %}
94+
<label class="md-header__button md-icon" for="__search">
95+
{% set icon = config.theme.icon.search or "material/magnify" %}
96+
{% include ".icons/" ~ icon ~ ".svg" %}
97+
</label>
98+
99+
<!-- Search interface -->
100+
{% include "partials/search.html" %}
101+
{% endif %}
102+
103+
<!-- Repository information -->
104+
{% if config.repo_url %}
105+
<div class="md-header__source">
106+
{% include "partials/source.html" %}
107+
</div>
108+
{% endif %}
109+
</nav>
110+
111+
<!-- Navigation tabs (sticky) -->
112+
{% if "navigation.tabs.sticky" in features %}
113+
{% if "navigation.tabs" in features %}
114+
{% include "partials/tabs.html" %}
115+
{% endif %}
116+
{% endif %}
117+
</header>

Diff for: ‎site-src/reference/spec.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# API Specification
2+
3+
This page contains the API field specification for Gateway API.
4+
5+
REPLACE_WITH_GENERATED_CONTENT

Diff for: ‎site-src/stylesheets/extra.css

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/* Hide title in favor of logo */
2+
.md-header__topic {
3+
display: none;
4+
}
5+
6+
/* Use Kubernetes color as primary */
7+
:root {
8+
--md-primary-fg-color: #326ce5;
9+
}
10+
11+
/* Increase size of logo */
12+
.md-header__button.md-logo img, .md-header__button.md-logo svg {
13+
height: 1.8rem;
14+
}
15+
16+
/* Always show tabs, even on smaller screens */
17+
@media screen and (max-width: 76.234375em) {
18+
.md-header__button.md-logo {
19+
display: block;
20+
}
21+
.md-tabs {
22+
display: block;
23+
}
24+
}
25+
26+
/* Rounded search box + results */
27+
.md-search__form {
28+
border-radius: .5rem;
29+
}
30+
31+
[data-md-toggle=search]:checked~.md-header .md-search__form {
32+
border-radius: .5rem .5rem 0 0;
33+
}
34+
[dir=ltr] .md-search__output {
35+
border-radius: 0 0 .5rem .5rem;
36+
}
37+
38+
/* Center images */
39+
img.center {
40+
display: block;
41+
margin: 20px auto;
42+
width: 550px;
43+
}

0 commit comments

Comments
 (0)
Please sign in to comment.