Skip to content
Open
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
24 changes: 11 additions & 13 deletions docs/blogs/EnhancedDevPreviewGatewayAPI/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Note: Gateway API via Ingress Operator is GA in OpenShift 4.19. These instructi

* Prior to GA 4.19, use a non-production OpenShift Cluster
* OpenShift version 4.18 or greater, on a cloud platform that supports Kubernetes service load balancers (e.g. GCP, AWS, and Azure)
* If OSSM is already installed, it must be at least:
* If OSSM is already installed, the minimum required version is:
* OSSM 2.6 for OpenShift 4.18
* OSSM 3.0.1 for OpenShift 4.19
* OSSM 3.1.0 for OpenShift 4.20
Expand Down Expand Up @@ -35,8 +35,6 @@ $ oc adm policy add-cluster-role-to-user cluster-admin -z ingress-operator -n op
clusterrole.rbac.authorization.k8s.io/cluster-admin added: "ingress-operator"
```

It is anticipated that this need for cluster-admin permissions will be eliminated in a future release of Gateway API in OpenShift.

### 2\. Enable the Feature Gate (For OCP version before 4.19)

* **OpenShift 4.19 and beyond:** This step is no longer required and should be skipped.
Expand All @@ -51,7 +49,7 @@ featuregate.config.openshift.io/cluster patched

Wait for the ingress operator to successfully install the Gateway API CRDs:

> **Note:** OCP 4.20 and later also includes the `grpcroutes.gateway.networking.k8s.io` CRD for routing gRPC traffic.
> **Note:** OCP 4.19 and later also includes the `grpcroutes.gateway.networking.k8s.io` CRD for routing gRPC traffic.

```console
$ oc get crd gatewayclasses.gateway.networking.k8s.io httproutes.gateway.networking.k8s.io gateways.gateway.networking.k8s.io referencegrants.gateway.networking.k8s.io
Expand Down Expand Up @@ -92,16 +90,16 @@ Next, create the GatewayClass. The controller name differs by version:
gatewayclass.gateway.networking.k8s.io/openshift-default created
```

Behind the scenes, the Ingress Operator creates a ServiceMeshControlPlane (SMCP) CR, which is the configuration API for OSSM. Wait a minute or two for the SMCP to be created and become ready:
Behind the scenes, the Ingress Operator creates either a ServiceMeshControlPlane (SMCP) or Istio CR. The SMCP CR is the configuration API for OSSM prior to OpenShift 4.19, and the Istio CR takes its place in OpenShift 4.19 and later. Wait a minute or two for the SMCP or Istio CR to be created and become ready:

* **Prior to OpenShift 4.20:** OSSM uses ServiceMeshControlPlane (SMCP) resources.
* **Prior to OpenShift 4.19:** OSSM uses ServiceMeshControlPlane (SMCP) resources.
```console
$ oc get smcp -n openshift-ingress
NAME READY STATUS PROFILES VERSION AGE
openshift-gateway 5/5 ComponentsReady ["default"] 2.4.0 10m
```

* **OpenShift 4.20 and beyond:** OSSM 3 uses Istio resources instead of SMCP.
* **OpenShift 4.19 and beyond:** OSSM 3 uses Istio resources instead of SMCP.
```console
$ oc get istio -A
NAME NAMESPACE PROFILE REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

this will no longer be valid with Grant's NO-OLM backport, which I believe was approved up to 4.19

Expand All @@ -110,7 +108,7 @@ Behind the scenes, the Ingress Operator creates a ServiceMeshControlPlane (SMCP)

OSSM will create Istio deployments in the `openshift-ingress` namespace. Ensure the pods for the deployments are running.

* **Prior to OpenShift 4.20:** OSSM creates a shared `istio-ingressgateway` deployment and the control plane.
* **Prior to OpenShift 4.19:** OSSM creates a shared `istio-ingressgateway` deployment and the control plane.
```console
$ oc get deployment -n openshift-ingress
NAME READY UP-TO-DATE AVAILABLE AGE
Expand All @@ -119,7 +117,7 @@ OSSM will create Istio deployments in the `openshift-ingress` namespace. Ensure
router-default 2/2 2 2 6h4m
```

* **OpenShift 4.20 and beyond:** Only the Istio control plane (`istiod`) is created at this stage. Individual gateway deployments are created when you create Gateway resources.
* **OpenShift 4.19 and beyond:** Only the Istio control plane (`istiod`) is created at this stage. Individual gateway deployments are created when you create Gateway resources.
```console
$ oc get deployment -n openshift-ingress
NAME READY UP-TO-DATE AVAILABLE AGE
Expand Down Expand Up @@ -176,7 +174,7 @@ gateway.gateway.networking.k8s.io/demo-gateway created

By default, Istio will [automatically provision](https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) a gateway deployment and service with the same name upon creation of this Gateway object:

* **OpenShift 4.20 and beyond:** The deployment name changes to `demo-gateway-openshift-default`.
* **OpenShift 4.19 and beyond:** The deployment name changes to `demo-gateway-openshift-default`.


```console
Expand Down Expand Up @@ -290,11 +288,11 @@ httproute.gateway.networking.k8s.io/http created

Wait for the gateway deployment to be ready:

* **Prior to OpenShift 4.20:** The condition is `Ready`.
* **Prior to OpenShift 4.19:** The condition is `Ready`.
```console
$ oc wait -n openshift-ingress --for=condition=ready gateways.gateway.networking.k8s.io demo-gateway
```
* **OpenShift 4.20 and beyond:** The condition is `Programmed`.
* **OpenShift 4.19 and beyond:** The condition is `Programmed`.
```console
$ oc wait -n openshift-ingress --for=condition=programmed gateways.gateway.networking.k8s.io demo-gateway
gateway.gateway.networking.k8s.io/demo-gateway condition met
Expand All @@ -321,8 +319,8 @@ You should see a 200 response code. The response will include headers from the a
HTTP/1.1 200 OK
date: Wed, 05 Nov 2025 15:58:06 GMT
server: Apache/2.4.62 (Red Hat Enterprise Linux) OpenSSL/3.2.2
app: foo
content-type: text/html; charset=UTF-8
app: foo
...
```

Expand Down