Skip to content

Move GEP-3792 to Memorandum with API in other GEPs #3894

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 32 additions & 35 deletions geps/gep-3792/index.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
# GEP-3792: Out-of-Cluster Gateways

* Issue: [#3792](https://github.com/kubernetes-sigs/gateway-api/issues/3792)
* Status: Provisional
* Status: Memorandum
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Status: Memorandum
* Status: Deferred


(See [status definitions](../overview.md#gep-states).)

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 ([RFC8174]) when, and
only when, they appear in all capitals, as shown here.

[RFC8174]: https://www.rfc-editor.org/rfc/rfc8174

## User Story

**[Chihiro] and [Ian] want a way for out-of-cluster Gateways to be able to
Expand All @@ -15,12 +22,18 @@ using a Service of type LoadBalancer fronting a Kubernetes pod running a
proxy. This is simple to reason about, easy to manage for sidecar meshes, and
will presumably be an important implementation mechanism for the foreseeable
future. Some cloud providers, though, are moving the proxy outside of the
cluster, for various reasons which are out of the scope of this GEP. Chihiro
and Ian want to be able to use these out-of-cluster proxies effectively and
cluster, for various reasons which are out of the scope of this GEP. [Chihiro]
and [Ian] want to be able to use these out-of-cluster proxies effectively and
safely, though they recognize that this may require additional configuration.

This GEP defines the problems that need to be solved to allow out-of-cluster
Gateways (OCGs) to usefully participate in a GAMMA-compliant in-cluster mesh.
The API to actually solve these problems will be defined in one or more future
GEPs.

[Chihiro]: https://gateway-api.sigs.k8s.io/concepts/roles-and-personas/#chihiro
[Ian]: https://gateway-api.sigs.k8s.io/concepts/roles-and-personas/#ian
[Ana]: https://gateway-api.sigs.k8s.io/concepts/roles-and-personas/#ana

### Nomenclature and Background

Expand Down Expand Up @@ -74,7 +87,7 @@ In this GEP:

## Goals

- Allow Chihiro and Ian to configure an OCG and a mesh such that the OCG can
- Allow [Chihiro] and [Ian] to configure an OCG and a mesh such that the OCG can
usefully participate in the mesh, including:

- The OCG must be able to securely communicate with meshed workloads in
Expand All @@ -91,7 +104,7 @@ In this GEP:
- The OCG must be able to distinguish meshed workloads from non-meshed
workloads, so that it can communicate appropriately with each.

- Allow Ana to develop and operate meshed applications without needing to know
- Allow [Ana] to develop and operate meshed applications without needing to know
whether the Gateway she's using is an OCG or an in-cluster Gateway.

- Define a basic set of requirements for OCGs and meshes that want to
Expand Down Expand Up @@ -162,7 +175,7 @@ configuration.

To allow the OCG to _usefully_ participate in the mesh, we need to solve at
least four significant problems. Thankfully, these are mostly problems for
Chihiro -- if we do our jobs correctly, Ana will never need to know.
[Chihiro] -- if we do our jobs correctly, [Ana] will never need to know.

#### 1. The Trust Problem

Expand Down Expand Up @@ -226,39 +239,23 @@ the same configuration, or you'll need to provide a single Route with multiple

## API

Most of the API work for this GEP is TBD at this point, but there are two
The API for OCG support will be defined in future GEPs, but there are a two
important points to note:

First, Gateway API has never defined a Mesh resource because, to date, it's
never been clear what would go into it. This may be the first configuration
item that causes us to need a Mesh resource.
1. Gateway API has never defined a Mesh resource because, to date, it's never
been clear what would go into it. With the conformance work in progress and
with OCG support desired, we clearly will need a Mesh resource. The Mesh
resource is defined in [GEP-3949](../gep-3949/index.md).

Second, since the API should affect only Gateway API resources, it is not a
good candidate for policy attachment. It is likely to be much more reasonable
to simply provide whatever extra configuration we need inline in the Gateway
or Mesh resources.
2. Since the API should affect only Gateway API resources, it is not a good
candidate for policy attachment. It is likely to be much more reasonable to
simply provide whatever extra configuration we need inline in the Gateway
or Mesh resources.

## Graduation Criteria

In addition to the [general graduation
criteria](../concepts/versioning.md#graduation-criteria), this GEP must also
guarantee that **all four** of the problems listed above need resolutions, and
must have implementation from at least two different Gateways and two
different meshes.

### Gateway for Ingress (North/South)

### Gateway For Mesh (East/West)

## Conformance Details

#### Feature Names

This GEP will use the feature name `MeshOffClusterGateway`, under the
assumption that we will indeed need a Mesh resource.

### Conformance tests

## Alternatives

## References
criteria](../concepts/versioning.md#graduation-criteria), before any GEP
defining an API for OCG support graduates to Standard it MUST also demonstrate
a resolution to **all four** of the problems listed, and it MUST have
implementation from at least two different Gateways and two different meshes.
10 changes: 7 additions & 3 deletions geps/gep-3792/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: internal.gateway.networking.k8s.io/v1alpha1
kind: GEPDetails
number: 3792
name: Out-of-Cluster Gateways
status: Provisional
status: Memorandum
# Any authors who contribute to the GEP in any way should be listed here using
# their GitHub handle.
authors:
Expand All @@ -20,10 +20,14 @@ relationships:
extendedBy: {}
# seeAlso indicates other GEPs that are relevant in some way without being
# covered by an existing relationship.
seeAlso: {}
seeAlso:
- number: 3949
name: Mesh Resource
description: Defines the Mesh resource for managing service mesh configurations.
# references is a list of hyperlinks to relevant external references.
# It's intended to be used for storing GitHub discussions, Google docs, etc.
references: {}
references:
- https://www.rfc-editor.org/rfc/rfc8174
# 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.
# This is the value added to supportedFeatures and the conformance tests, in string form.
Expand Down
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ nav:
- geps/gep-1651/index.md
- geps/gep-2648/index.md
- geps/gep-3779/index.md
- geps/gep-3792/index.md
- Implementable:
- geps/gep-91/index.md
- geps/gep-3567/index.md
Expand Down Expand Up @@ -178,6 +177,7 @@ nav:
- geps/gep-2659/index.md
- geps/gep-2722/index.md
- geps/gep-2907/index.md
- geps/gep-3792/index.md
- Declined:
- geps/gep-735/index.md
- geps/gep-1282/index.md
Expand Down