Skip to content

Commit

Permalink
Change Memorandum to a status and remove GEP type
Browse files Browse the repository at this point in the history
Signed-off-by: Nick Young <[email protected]>
  • Loading branch information
youngnick committed Dec 20, 2023
1 parent 1bc5fdb commit 4e35a32
Show file tree
Hide file tree
Showing 41 changed files with 182 additions and 271 deletions.
2 changes: 1 addition & 1 deletion geps/gep-1016.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1016
name: GRPCRoute
Expand Down
14 changes: 7 additions & 7 deletions geps/gep-1282.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1282
name: Describing Backend Properties
Expand All @@ -8,9 +8,9 @@ authors:
- youngnick
relationships:
obsoletedBy:
- number: 1897
name: BackendTLSPolicy - Explicit Backend TLS Connection Configuration
description: Implements just part of the Backend Properties GEP.
- number: 1911
name: Backend Protocol Selection
description: Protocol selection was one of the Backend Properties.
- number: 1897
name: BackendTLSPolicy - Explicit Backend TLS Connection Configuration
description: Implements just part of the Backend Properties GEP.
- number: 1911
name: Backend Protocol Selection
description: Protocol selection was one of the Backend Properties.
2 changes: 1 addition & 1 deletion geps/gep-1323.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1323
name: Response Header Filter
Expand Down
3 changes: 1 addition & 2 deletions geps/gep-1324.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# GEP-1324: Service Mesh in Gateway API

* Issue: [#1324](https://github.com/kubernetes-sigs/gateway-api/issues/1324)
* Type: Memorandum
* Status: Accepted
* Status: Memorandum

> **Note**: This GEP is exempt from the [Probationary Period][expprob] rules
> of our GEP overview as it existed before those rules did, and so it has been
Expand Down
17 changes: 8 additions & 9 deletions geps/gep-1324.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1324
name: Service Mesh in Gateway API
type: Memorandum
status: Accepted
status: Memorandum
authors:
- keithmattix
- markmc
- kflynn
relationships:
updatedBy:
- number: 1426
name: xRoutes Mesh Binding
description: Adds initial Service binding proposal
- number: 1686
name: Mesh conformance testing plan
description: Adds initial Mesh conformance testing plan
- number: 1426
name: xRoutes Mesh Binding
description: Adds initial Service binding proposal
- number: 1686
name: Mesh conformance testing plan
description: Adds initial Mesh conformance testing plan
2 changes: 1 addition & 1 deletion geps/gep-1364.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1364
name: Status and Conditions Update
Expand Down
8 changes: 4 additions & 4 deletions geps/gep-1426.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1426
name: xRoutes Mesh Binding
Expand All @@ -10,6 +10,6 @@ authors:
- keithmattix
relationships:
updates:
- number: 1324
name: Service Mesh in Gateway API
description: Adds initial Service binding proposal
- number: 1324
name: Service Mesh in Gateway API
description: Adds initial Service binding proposal
2 changes: 1 addition & 1 deletion geps/gep-1619.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1619
name: Session Persistence
Expand Down
2 changes: 1 addition & 1 deletion geps/gep-1651.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1651
name: Gateway Routability
Expand Down
8 changes: 4 additions & 4 deletions geps/gep-1686.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1686
name: Mesh conformance testing plan
Expand All @@ -11,6 +11,6 @@ authors:
- kflynn
relationships:
updates:
- number: 1324
name: Service Mesh in Gateway API
description: Adds initial Mesh conformance testing plan
- number: 1324
name: Service Mesh in Gateway API
description: Adds initial Mesh conformance testing plan
2 changes: 1 addition & 1 deletion geps/gep-1709.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1709
name: Conformance Profiles
Expand Down
8 changes: 4 additions & 4 deletions geps/gep-1742.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1742
name: HTTPRoute Timeouts
Expand All @@ -14,6 +14,6 @@ authors:
- sjberman
relationships:
updatedBy:
- number: 2257
name: Gateway API Duration Format
description: Adds a duration format for us in timeouts.
- number: 2257
name: Gateway API Duration Format
description: Adds a duration format for us in timeouts.
2 changes: 1 addition & 1 deletion geps/gep-1748.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1748
name: Gateway API Interaction with Multi-Cluster Services
Expand Down
6 changes: 3 additions & 3 deletions geps/gep-1762.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1762
name: In Cluster Gateway Deployments
Expand All @@ -9,5 +9,5 @@ authors:
- frakbu
relationships:
updatedBy:
- number: 1867
name: Per-Gateway Infrastructure
- number: 1867
name: Per-Gateway Infrastructure
6 changes: 3 additions & 3 deletions geps/gep-1867.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1867
name: Per-Gateway Infrastructure
Expand All @@ -8,5 +8,5 @@ authors:
- howardjohn
relationships:
updates:
- number: 1762
name: In Cluster Gateway Deployments
- number: 1762
name: In Cluster Gateway Deployments
8 changes: 4 additions & 4 deletions geps/gep-1897.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1897
name: BackendTLSPolicy - Explicit Backend TLS Connection Configuration
Expand All @@ -11,6 +11,6 @@ authors:
- youngnick
relationships:
obsoletes:
- number: 1282
name: Describing Backend Properties
description: Implements just part of the Backend Properties GEP.
- number: 1282
name: Describing Backend Properties
description: Implements just part of the Backend Properties GEP.
8 changes: 4 additions & 4 deletions geps/gep-1911.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 1911
name: Backend Protocol Selection
Expand All @@ -10,6 +10,6 @@ authors:
- frankbu
relationships:
obsoletes:
- number: 1282
name: Describing Backend Properties
description: Protocol selection was one of the Backend Properties.
- number: 1282
name: Describing Backend Properties
description: Protocol selection was one of the Backend Properties.
2 changes: 1 addition & 1 deletion geps/gep-2162.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 2162
name: Supported features in GatewayClass Status
Expand Down
11 changes: 5 additions & 6 deletions geps/gep-2257.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 2257
name: Gateway API Duration Format
type: API
status: Experimental
authors:
-
- kflynn
relationships:
updates:
- number: 1742
name: HTTPRoute Timeouts
description: Adds a duration format for us in timeouts.

- number: 1742
name: HTTPRoute Timeouts
description: Adds a duration format for us in timeouts.
68 changes: 17 additions & 51 deletions geps/gep-2659.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,18 @@

## TLDR

This GEP clarifies some details about GEPs, and adds relationships and new
status types.
This GEP clarifies some details about GEPs, and adds relationships and a new
status.


## Goals

- Enumerate how we should use RFC2119 language
- Add relationships between GEPs
- Add a metadata YAML schema for GEPs, including the new relationships
- Add some new status types to cover some only recently noticed cases
- Add a new status to cover some only recently noticed cases
- Update existing documentation outside this GEP to support the new material


## Non-Goals

- Update all existing GEPs with relationships or other statuses. These will be
done later (for existing GEPs) or as they are created (for new GEPs).

## Introduction

As part of preparing for work to split up GEP-713, we (the Gateway API and GAMMA
Expand Down Expand Up @@ -54,7 +48,7 @@ to what the KEP process uses, seems like it is increasingly necessary. This GEP
introduces a schema, which will be detailed in `.go` files rather than completely
in this document.

Lastly, I think that we should clarify our use of [RFC2119](https://www.rfc-editor.org/rfc/rfc2119.txt)
Lastly, we should clarify our use of [RFC2119](https://www.rfc-editor.org/rfc/rfc2119.txt)
language - we use MUST, SHOULD, MAY and so on as per that RFC in general,
but there is an extension in [RFC8174](https://www.rfc-editor.org/rfc/rfc8174.txt)
that adds that these words are only to be interpreted per the RFC when they are
Expand All @@ -69,42 +63,12 @@ a _very_ good idea to adopt to me.
RFC8174 clarifies that the reserved words MUST be in all-caps to have their
assigned meaning. This should make the spec clearer over time as we migrate.

### Addition of the concept of GEP "types", and a new GEP Type

We will introduce the concept of GEP types.

#### Types of GEP
There will be two types of GEP. The existing type will be called `API` GEPs, and
a new type `Memorandum` (after "Memorandum of Understanding") will be created.

##### API GEPs

GEPs that do not have an assigned type will be considered `API` GEPs. (For
legacy GEPs). New GEPs created after this GEP is merged will default to the `API`
type.
### Addition of a new GEP status

As they do currently, these GEPs lay out a problem the API needs to address,
along with a rationale and a solution for that problem.

This also uses the existing GEP process and phases:

1. Discuss
1. Provisional
1. (optional) Prototyping
1. Implementable
1. Experimental
1. Standard
1. Completed

As part of the addition of relationships, we will extend these phases, but see
the "Addition of GEP relationships" section for details, but in short, when an
API GEP has been Obsoleted, it will be moved to a new "Obsolete" phase (which
is functionally the same as "Declined").

##### Memorandum GEPs

These GEPs record an agreement on either the definition of a problem, its scope
We will introduce a new GEP status, `Memorandum`, that marks a GEP as recording
an agreement on either the definition of a problem, its scope
and a common language, or further process changes to the GEP process itself.

The defining characteristic here is that the GEP MUST NOT result in any changes
to the Gateway API spec, and SHOULD result in further GEPs to further clarify.
For GEPs that _do_ make changes to the API, but also require further GEPs to
Expand All @@ -114,10 +78,7 @@ Memorandum GEPs should be used sparingly, and should form the umbrella for a
significant amount of work, particularly work that may have parts that can
move through the GEP phases at different speeds.

The process for Memorandum GEPs is much more simple, and has really only one
main phase - "Accepted".

This phase is reached when a Memorandum GEP is merged, although as we will document
The status is reached when a Memorandum GEP is merged, although as we will document
in the "Addition of GEP relationships" section, it can still be Updated
or Obsoleted.

Expand All @@ -144,12 +105,11 @@ in this repository.
With that said, here's a rough sample of what a GEPMetadata object will look like:

```yaml
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 2659
name: Document and improve the GEP process
type: Memorandum
status: Accepted
status: Memorandum
relationships:
# Normally, these will be omitted, because `omitempty`.
# They are included here for clarity.
Expand All @@ -170,6 +130,12 @@ latestRelease: v1.1
# references is a list of hyperlinks to relevant external references.
# It's intended to be used for storing Github discussions, Google docs, etc.
references: {}
# featureNames is a list of the feature names introduced by the GEP, if there
# are any. This will allow us to track which feature was introduced by which GEP.
featureNames: {}
# changelog is a list of hyperlinks to PRs that make changes to the GEP, in
# ascending date order.
changelog: {}
```
### Addition of GEP relationships
Expand Down
20 changes: 10 additions & 10 deletions geps/gep-2659.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 2659
name: Document and improve the GEP process
type: Memorandum
status: Accepted
relationships:
seeAlso:
- number: 917
name: Gateway API Conformance Testing
description: GEP is Memorandum type
- number: 922
name: Gateway API Versioning
description: GEP is Memorandum type
- number: 1324
name: Service Mesh in Gateway API
description: GEP is Memorandum type
- number: 917
name: Gateway API Conformance Testing
description: GEP is Memorandum type
- number: 922
name: Gateway API Versioning
description: GEP is Memorandum type
- number: 1324
name: Service Mesh in Gateway API
description: GEP is Memorandum type
authors:
- youngnick
latestRelease: v1.1
2 changes: 1 addition & 1 deletion geps/gep-696.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: gateway.networking.k8s.io/v1alpha1
apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 696
name: GEP template
Expand Down
Loading

0 comments on commit 4e35a32

Please sign in to comment.