Merge pull request #26723 from hbagdi/ingress-class-namespaced-params

Ingress class namespaced params
This commit is contained in:
Kubernetes Prow Robot
2021-03-29 11:23:57 -07:00
committed by GitHub
3 changed files with 29 additions and 1 deletions
@@ -220,7 +220,19 @@ of the controller that should implement the class.
{{< codenew file="service/networking/external-lb.yaml" >}} {{< codenew file="service/networking/external-lb.yaml" >}}
IngressClass resources contain an optional parameters field. This can be used to IngressClass resources contain an optional parameters field. This can be used to
reference additional configuration for this class. reference additional implementation-specific configuration for this class.
#### Namespace-scoped parameters
{{< feature-state for_k8s_version="v1.21" state="alpha" >}}
`Parameters` field has a `scope` and `namespace` field that can be used to
reference a namespace-specific resource for configuration of an Ingress class.
`Scope` field defaults to `Cluster`, meaning, the default is cluster-scoped
resource. Setting `Scope` to `Namespace` and setting the `Namespace` field
will reference a paramters resource in a specific namespace:
{{< codenew file="service/networking/namespaced-params.yaml" >}}
### Deprecated annotation ### Deprecated annotation
@@ -129,6 +129,7 @@ different Kubernetes components.
| `HPAScaleToZero` | `false` | Alpha | 1.16 | | | `HPAScaleToZero` | `false` | Alpha | 1.16 | |
| `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 | | `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 |
| `HugePageStorageMediumSize` | `true` | Beta | 1.19 | | | `HugePageStorageMediumSize` | `true` | Beta | 1.19 | |
| `IngressClassNamespacedParams` | `false` | Alpha | 1.21 | |
| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 | | `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 |
| `IPv6DualStack` | `true` | Beta | 1.21 | | | `IPv6DualStack` | `true` | Beta | 1.21 | |
| `KubeletCredentialProviders` | `false` | Alpha | 1.20 | | | `KubeletCredentialProviders` | `false` | Alpha | 1.20 | |
@@ -653,6 +654,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
immutable for better safety and performance. immutable for better safety and performance.
- `IndexedJob`: Allows the [Job](/docs/concepts/workloads/controllers/job/) - `IndexedJob`: Allows the [Job](/docs/concepts/workloads/controllers/job/)
controller to manage Pod completions per completion index. controller to manage Pod completions per completion index.
- `IngressClassNamespacedParams`: Allow namespace-scoped parameters reference in
`IngressClass` resouce. This feature adds two fields - `Scope` and `Namespace`
to `IngressClass.spec.parameters`.
- `IPv6DualStack`: Enable [dual stack](/docs/concepts/services-networking/dual-stack/) - `IPv6DualStack`: Enable [dual stack](/docs/concepts/services-networking/dual-stack/)
support for IPv6. support for IPv6.
- `KubeletConfigFile` (*deprecated*): Enable loading kubelet configuration from - `KubeletConfigFile` (*deprecated*): Enable loading kubelet configuration from
@@ -0,0 +1,12 @@
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: external-lb
spec:
controller: example.com/ingress-controller
parameters:
apiGroup: k8s.example.com
kind: IngressParameters
name: external-lb
namespace: external-configuration
scope: Namespace