Skip to content

Commit

Permalink
Remove GC and clarify address
Browse files Browse the repository at this point in the history
  • Loading branch information
howardjohn committed Sep 18, 2023
1 parent 4c2ae88 commit 64295f0
Showing 1 changed file with 6 additions and 62 deletions.
68 changes: 6 additions & 62 deletions geps/gep-1762.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,10 @@ This is handled by [GEP-1651](https://github.com/kubernetes-sigs/gateway-api/pul

#### Gateway IP

For setting a specific IP address in a generated `Service`, the `.Spec.Addresses` field can be used.
This section just clarifies and existing part of the spec, how to handle `.spec.addresses` for in-cluster implementations.
Like all other Gateway types, this should impact the address the `Gateway` is reachable at.

For implementations using a `Service`, this means the `clusterIP` or `loadBalancerIP` (depending on the `Service` type).

For example:

Expand All @@ -109,10 +112,6 @@ spec:

This would generate a `Service` with `clusterIP` or `loadBalancerIP`, depending on the Service type.

This follows the same behavior as out-of-cluster Gateway implementations.

Note: this differs from the selection of "manual deployment", which doesn't use `IPAddress` type.
Instead, these Gateways attach to some existing infrastructure (such as Service) which provides an address.

#### Labels and Annotations

Expand Down Expand Up @@ -141,6 +140,8 @@ exclude these from irrelevant resources.
This is intended to clearly identify resources associatd with a specific application, environment, or Gateway.
Additionally, it can be used support integration with the kitchen-sync of Kubernetes extensions which rely on labels and annotations.

Validation will be added to prevent any usage with `gateway.networking.k8s.io/` prefix, to avoid conflicts with `gateway.networking.k8s.io/gateway-name` or other future additions.

#### Arbitrary Customization

GEP-1867 introduces a new `infrastructure` field, which allows customization of some common configurations (version, size, etc)
Expand Down Expand Up @@ -224,74 +225,17 @@ type GatewayInfrastructure struct {
// For implementations creating other Kubernetes objects, this should be the `metadata.labels` field on resources.
// For other implementations, this refers to any relevant (implementation specific) "labels" concepts.
//
// If Labels is set on the GatewayClass as well, the labels are merged with the Gateway's labels taking precedence.
//
// Support: Extended
Labels map[string]string `json:"labels,omitempty"`
// Annotations that should be applied to any resources created in response to this Gateway.
//
// For implementations creating other Kubernetes objects, this should be the `metadata.annotations` field on resources.
// For other implementations, this refers to any relevant (implementation specific) "annotations" concepts.
//
// If Annotations is set on the GatewayClass as well, the labels are merged with the Gateway's labels taking precedence.
//
// Support: Extended
Annotations map[string]string `json:"annotations,omitempty"`
// ParametersRef is a reference to a resource that contains the configuration
// parameters corresponding to the Gateway. This is optional if the
// controller does not require any additional configuration.
//
// ParametersRef can reference a standard Kubernetes resource, i.e. ConfigMap,
// or an implementation-specific custom resource. The resource must be namespace-scoped
// and live in the same namespace.
//
// If ParametersRef is set on both a Gateway and the corresponding GatewayClass, the merging
// behavior between the two are implementation-specific.
//
// Support: Implementation-specific
//
// +optional
ParametersRef *LocalParametersReference `json:"parametersRef,omitempty"`
...
}

type GatewayClassInfrastructure struct {
// Labels that should be applied to any resources created in response to this GatewayClass.
//
// For implementations creating other Kubernetes objects, this should be the `metadata.labels` field on resources.
// For other implementations, this refers to any relevant (implementation specific) "labels" concepts.
//
// If Labels is set on the Gateway as well, the labels are merged with the Gateway's labels taking precedence.
//
// Support: Extended
Labels map[string]string `json:"labels,omitempty"`
// Annotations that should be applied to any resources created in response to this GatewayClass.
//
// For implementations creating other Kubernetes objects, this should be the `metadata.annotations` field on resources.
// For other implementations, this refers to any relevant (implementation specific) "annotations" concepts.
//
// If Annotations is set on the Gateway as well, the labels are merged with the Gateway's annotations taking precedence.
//
// Support: Extended
Annotations map[string]string `json:"annotations,omitempty"`
...
}

// LocalParametersReference identifies an API object containing controller-specific
// configuration resource within the cluster.
type LocalParametersReference struct {
// Group is the group of the referent.
Group Group `json:"group"`

// Kind is kind of the referent.
Kind Kind `json:"kind"`

// Name is the name of the referent.
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
Name string `json:"name"`
}
```

## Future Work
Expand Down

0 comments on commit 64295f0

Please sign in to comment.