Skip to content
Merged
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
22 changes: 22 additions & 0 deletions api/v1alpha1/envoygateway_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,28 @@ type EnvoyGatewaySpec struct {
//
// +optional
ExtensionAPIs *ExtensionAPISettings `json:"extensionApis,omitempty"`

// RuntimeFlags defines the runtime flags for Envoy Gateway.
// Unlike ExtensionAPIs, these flags are temporary and will be removed in future releases once the related features are stable.
RuntimeFlags *RuntimeFlags `json:"runtimeFlags,omitempty"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

+1

}

// RuntimeFlag defines a runtime flag used to guard breaking changes or risky experimental features in new Envoy Gateway releases.
// A runtime flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.
type RuntimeFlag string
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we add a validation tag here

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Oh sorry I misunderstood your comment - will add it in the implementation PR.


const (
// UseAddressAsListenerName indicates that the listener name should be derived from the address and port.
UseAddressAsListenerName RuntimeFlag = "UseAddressAsListenerName"
)

// RuntimeFlags provide a mechanism to guard breaking changes or risky experimental features in new Envoy Gateway releases.
// Each flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.
// The names of these flags will be included in the release notes alongside an explanation of the change.
// Please note that these flags are temporary and will be removed in future releases once the related features are stable.
type RuntimeFlags struct {
Enabled []RuntimeFlag `json:"enabled,omitempty"`
Disabled []RuntimeFlag `json:"disabled,omitempty"`
}

type KubernetesClient struct {
Expand Down
30 changes: 30 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 36 additions & 0 deletions site/content/en/latest/api/extension_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -1216,6 +1216,7 @@ EnvoyGateway is the schema for the envoygateways API.
| `rateLimit` | _[RateLimit](#ratelimit)_ | false | | RateLimit defines the configuration associated with the Rate Limit service<br />deployed by Envoy Gateway required to implement the Global Rate limiting<br />functionality. The specific rate limit service used here is the reference<br />implementation in Envoy. For more details visit https://github.com/envoyproxy/ratelimit.<br />This configuration is unneeded for "Local" rate limiting. |
| `extensionManager` | _[ExtensionManager](#extensionmanager)_ | false | | ExtensionManager defines an extension manager to register for the Envoy Gateway Control Plane. |
| `extensionApis` | _[ExtensionAPISettings](#extensionapisettings)_ | false | | ExtensionAPIs defines the settings related to specific Gateway API Extensions<br />implemented by Envoy Gateway |
| `runtimeFlags` | _[RuntimeFlags](#runtimeflags)_ | true | | RuntimeFlags defines the runtime flags for Envoy Gateway.<br />Unlike ExtensionAPIs, these flags are temporary and will be removed in future releases once the related features are stable. |


#### EnvoyGatewayAdmin
Expand Down Expand Up @@ -1475,6 +1476,7 @@ _Appears in:_
| `rateLimit` | _[RateLimit](#ratelimit)_ | false | | RateLimit defines the configuration associated with the Rate Limit service<br />deployed by Envoy Gateway required to implement the Global Rate limiting<br />functionality. The specific rate limit service used here is the reference<br />implementation in Envoy. For more details visit https://github.com/envoyproxy/ratelimit.<br />This configuration is unneeded for "Local" rate limiting. |
| `extensionManager` | _[ExtensionManager](#extensionmanager)_ | false | | ExtensionManager defines an extension manager to register for the Envoy Gateway Control Plane. |
| `extensionApis` | _[ExtensionAPISettings](#extensionapisettings)_ | false | | ExtensionAPIs defines the settings related to specific Gateway API Extensions<br />implemented by Envoy Gateway |
| `runtimeFlags` | _[RuntimeFlags](#runtimeflags)_ | true | | RuntimeFlags defines the runtime flags for Envoy Gateway.<br />Unlike ExtensionAPIs, these flags are temporary and will be removed in future releases once the related features are stable. |


#### EnvoyGatewayTelemetry
Expand Down Expand Up @@ -4426,6 +4428,40 @@ _Appears in:_
| `Endpoint` | EndpointRoutingType is the RoutingType for Endpoint routing.<br /> |


#### RuntimeFlag

_Underlying type:_ _string_

RuntimeFlag defines a runtime flag used to guard breaking changes or risky experimental features in new Envoy Gateway releases.
A runtime flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.

_Appears in:_
- [RuntimeFlags](#runtimeflags)

| Value | Description |
| ----- | ----------- |
| `UseAddressAsListenerName` | UseAddressAsListenerName indicates that the listener name should be derived from the address and port.<br /> |


#### RuntimeFlags



RuntimeFlags provide a mechanism to guard breaking changes or risky experimental features in new Envoy Gateway releases.
Each flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.
The names of these flags will be included in the release notes alongside an explanation of the change.
Please note that these flags are temporary and will be removed in future releases once the related features are stable.

_Appears in:_
- [EnvoyGateway](#envoygateway)
- [EnvoyGatewaySpec](#envoygatewayspec)

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `enabled` | _[RuntimeFlag](#runtimeflag) array_ | true | | |
| `disabled` | _[RuntimeFlag](#runtimeflag) array_ | true | | |




#### SecretTranslationConfig
Expand Down