Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b5cf8dc

Browse files
committedJun 9, 2025·
add enablement procedure
1 parent 78e193e commit b5cf8dc

File tree

4 files changed

+73
-6
lines changed

4 files changed

+73
-6
lines changed
 
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Modules included in the following assemblies:
2+
//
3+
// * networking/configuring_ingress_cluster_traffic/ingress-gateway-api.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="nw-ingress-gateway-api-enable_{context}"]
7+
= Enabling Gateway API for the Ingress Operator
8+
9+
When you enable Gateway API, it installs the subscription, the Istio operator, the custom resource defintions (CRDs), and creates the Istio resources. The following procedure describes how to enable Gateway API.
10+
11+
.Procedure
12+
13+
. Create a `GatewayClass` object with the following manifest:
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: gateway.networking.k8s.io/v1
18+
kind: GatewayClass
19+
metadata:
20+
name: openshift-default
21+
spec:
22+
controllerName: openshift.io/gateway-controller/v1 <1>
23+
----
24+
<1> The controller name must be `v1` for the Ingress Operator to manage it. Setting this field to anything else will be ignored by the Ingress Operator, because it is assumed to be a different implementation.
25+
26+
. Create a secret using the default certificate:
27+
+
28+
[source,terminal]
29+
----
30+
$ oc -n openshift-ingress create secret tls gwapi-wildcard --cert=wildcard.crt --key=wildcard.key
31+
----
32+
33+
. Create a `Gateway` object with the following manifest:
34+
+
35+
[source,yaml]
36+
----
37+
apiVersion: gateway.networking.k8s.io/v1
38+
kind: Gateway
39+
metadata:
40+
name: example-gateway
41+
namespace: openshift-ingress
42+
spec:
43+
gatewayClassName: openshift-default <1>
44+
listeners: <2>
45+
- name: http
46+
hostname: "*.gwapi.example.com"
47+
port: 80
48+
protocol: HTTP
49+
allowedRoutes:
50+
namespaces:
51+
from: All
52+
- name: https
53+
hostname: "*.gwapi.example.com"
54+
port: 443
55+
protocol: HTTPS
56+
tls:
57+
mode: Terminate
58+
certificateRefs:
59+
- name: gwapi-wildcard <3>
60+
allowedRoutes:
61+
namespaces:
62+
from: All
63+
----
64+
<1> The name of the previously created `GatewayClass` object.
65+
<2> The associated listeners for the `Gateway` object. These listeners are for HTTP and HTTPS, and let you configure ingress to your applications using Gateway API `HTTPRoute` resources.

‎modules/nw-ingress-gateway-api-implementation.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
The Ingress Operator manages the lifecycle of Gateway API CRDs in a way that enables other vendor implementations to make use of CRDs defined in an {product-title} cluster.
1010

11-
In some situations, the Gateway API provides one or more fields that a vendor implementation does not support, but that implementation is otherwise compatible in schema with the rest of the fields. These "dead fields" can result in disrupted Ingress workloads, improperly provisioned applications and services, and security related issues. Because {product-title} uses a specific version of Gateway API CRDs, any use of third-party implementations of Gateway API must conform to the {product-title} implementation to ensure that all fields work as expected.
11+
In some situations, Gateway API provides one or more fields that a vendor implementation does not support, but that implementation is otherwise compatible in schema with the rest of the fields. These "dead fields" can result in disrupted Ingress workloads, improperly provisioned applications and services, and security related issues. Because {product-title} uses a specific version of Gateway API CRDs, any use of third-party implementations of Gateway API must conform to the {product-title} implementation to ensure that all fields work as expected.
1212

13-
Any CRDs created within an {product-title} {product-version} cluster are compatibly versioned and maintained by the Ingress Operator. If CRDs are already present but were not previously managed by the Ingress Operator, the Ingress Operator checks whether these configurations are compatible with the Gateway API version supported by {product-title}, and creates an admin-gate that requires your acknowledgment of CRD succession.
13+
Any CRDs created within an {product-title} {product-version} cluster are compatibly versioned and maintained by the Ingress Operator. If CRDs are already present but were not previously managed by the Ingress Operator, the Ingress Operator checks whether these configurations are compatible with Gateway API version supported by {product-title}, and creates an admin-gate that requires your acknowledgment of CRD succession.
1414

1515
[IMPORTANT]
1616
====

‎modules/nw-ingress-gateway-api-overview.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
:_mod-docs-content-type: CONCEPT
66
[id="nw-ingress-gateway-api-overview_{context}"]
7-
= Overview of the Gateway API
7+
= Overview of Gateway API
88

99
The Gateway API is an open source, community-managed, Kubernetes networking mechanism. It focuses on routing within the transport layer, L4, and the application layer, L7, for clusters. A variety of vendors offer many link:https://gateway-api.sigs.k8s.io/implementations/[implementations of Gateway API].
1010

@@ -18,18 +18,18 @@ HTTPRoute:: This resource specifies the routing behavior of HTTP requests from a
1818
GRPCRoute:: This resource specifies the routing behavior of gRPC requests.
1919
ReferenceGrant:: This resource enables cross-namespace references. For example, it enables routes to forward traffic to backends that are in a different namespace.
2020

21-
In {product-title}, the implementation of the Gateway API is based on `gateway.networking.k8s.io/v1`, and all fields in this version are supported.
21+
In {product-title}, the implementation of Gateway API is based on `gateway.networking.k8s.io/v1`, and all fields in this version are supported.
2222

2323
[id="gateway-api-benefits_{context}"]
24-
== Benefits of the Gateway API
24+
== Benefits of Gateway API
2525
The Gateway API provides the following benefits:
2626

2727
* Portability: While {product-title} uses HAProxy to improve Ingress performance, Gateway API does not rely on vendor-specific annotations to provide certain behavior. To get comparable performance as HAProxy, the `Gateway` objects need to be horizontally scaled or their associated nodes need to be vertically scaled.
2828
* Separation of concerns: Gateway API uses a role-based approach to its resources, and more neatly fits into how a large organization structures its responsibilities and teams. Platform engineers might focus on `GatewayClass` resources, cluster admins might focus on configuring `Gateway` resources, and application developers might focus on routing their services with `HTTPRoute` resources.
2929
* Extensibility: Additional functionality is developed as a standardized CRD.
3030

3131
[id="gateway-api-limitations_{context}"]
32-
== Limitations of the Gateway API
32+
== Limitations of Gateway API
3333
The Gateway API has the following limitations:
3434

3535
* Version incompatibilites: The Gateway API ecosystem changes rapidly, and some implementations do not work with others because their featureset is based on differing versions of Gateway API.

‎networking/configuring_ingress_cluster_traffic/ingress-gateway-api.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ include::modules/nw-ingress-gateway-api-overview.adoc[leveloffset=+1]
1717

1818
include::modules/nw-ingress-gateway-api-implementation.adoc[leveloffset=+1]
1919

20+
include::modules/nw-ingress-gateway-api-enable.adoc[leveloffset=+1]
21+
2022
include::modules/nw-ingress-gateway-api-deployment-topologies.adoc[leveloffset=+1]
2123

2224
.Additional resources

0 commit comments

Comments
 (0)
Please sign in to comment.