Skip to content

Commit

Permalink
Merge pull request #1860 from mikemorris/patch-1
Browse files Browse the repository at this point in the history
GEP-1686: Add "Conformance Profile" and "Support Levels" sections
  • Loading branch information
k8s-ci-robot authored Mar 22, 2023
2 parents 5b84ce2 + 473eee8 commit cd1b6f5
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions geps/gep-1686.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,32 @@

## TLDR

This testing plan specifies a new set of tests to define the Mesh [conformance profile](https://github.com/kubernetes-sigs/gateway-api/issues/1709).
A conformance profile is a set of tests that implementations can run to check their conformance to some subset of the Gateway API spec.
The Mesh conformance profile in particular checks whether an implementation follows the GAMMA spec.
This testing plan specifies a new set of tests to define a "Mesh" [conformance profile](https://github.com/kubernetes-sigs/gateway-api/issues/1709).

## Goals

* define a set of test scenarios to capture conformance with the GAMMA spec
* rely on existing tests for non-GAMMA-specific Gateway API conformance
* Define a strategy for segmenting GAMMA tests from the existing conformance test suite
* Define a set of test scenarios to capture conformance with the GAMMA spec
* Rely on existing tests for non-GAMMA-specific Gateway API conformance

## Focus

Currently the GAMMA spec consists of two Gateway API GEPs [defining terminology and goals of Gateway API for service meshes](https://gateway-api.sigs.k8s.io/geps/gep-1324/)
and specifically [how route resources work in a service mesh context](https://gateway-api.sigs.k8s.io/geps/gep-1426/).
The goal of the initial conformance testing is to check the essential behavior as defined by GEP-1426, as it differs from the wider Gateway API spec. This GEP focuses on using a `Service` object as an `xRoute` `parentRef` to control how the GAMMA implementation directs traffic to the endpoints specified by the `Services` in `backendRefs` and how the traffic is filtered and modified.

## Conformance Profile

GAMMA intends to introduce a "Mesh" [conformance profile](https://gateway-api.sigs.k8s.io/geps/gep-1709/) to isolate tests specific to East/West functionality from both existing tests focused on North/South functionality and common Gateway API functionality shared by N/S and E/W implementations. A conformance profile is a set of tests that implementations can run to check their conformance to some subset of the Gateway API spec.

This appropach will enable service meshes to certify that an implementation follows the GAMMA spec without requiring a North/South implementation, and importantly avoid any expectation that North/South Gateway API implementations expand their scope to understand GAMMA and E/W traffic flows.

Leveraging existing tests for common functionality between N/S and E/W implementations will both ensure consistency across Gateway API implementations and help limit the maintence burden for the conformance testing suite.

### Support Levels

Using a conformance profile will enable granular conformance definitions for GAMMA, splitting functionality along the existing Gateway API [support levels](https://gateway-api.sigs.k8s.io/concepts/conformance/?h=conformance+levels#2-support-levels), with required functionality as Core, standardized but optional functionality as Extended, and Implementation-specific for things beyond the current or intended scope of GAMMA configuration. It is expected that some capabilities will begin as Implementation-specific and eventually migrate to Extended or Core conformance as GAMMA matures.

## Tests

Testing GAMMA implementations requires both a new suite of test cases as well as refactoring the existing test framework setup.
Expand Down

0 comments on commit cd1b6f5

Please sign in to comment.