diff --git a/documentation/modules/ROOT/pages/03-demo.adoc b/documentation/modules/ROOT/pages/03-demo.adoc index bab1af2..b683762 100644 --- a/documentation/modules/ROOT/pages/03-demo.adoc +++ b/documentation/modules/ROOT/pages/03-demo.adoc @@ -18,6 +18,7 @@ To provision the demo you will perform the following steps - each of which is ex * You will need an OpenShift cluster with *`cluster-admin` privileges*. This solution pattern has been tested on OpenShift 4.16 and 4.17 * Ensure you have the *tools* `oc` and `ansible` installed in your local environment such as your laptop * Access to *AWS Route53* or *Google Cloud DNS* to be able to create new domain names +* *Gateway API GatewayClass* named "istio" must exist in your cluster before running the deployment scripts === CLI tools @@ -27,7 +28,7 @@ To check if you have the cli tools, you can open your terminal and use following [.console-input] [source,shell script] ---- -oc version #openshift cli client + oc version #openshift cli client ansible --version ansible-galaxy --version ansible-galaxy collection list #the list should include kubernetes.core and amazon.aws.route53 (version 8.1.0 ) module @@ -55,17 +56,93 @@ This *subdomain* is automatically setup by the deployment scripts. But you will Ref: https://repost.aws/knowledge-center/create-subdomain-route-53[this article^] to know more about how a Route53 subdomain can be created. +=== GatewayClass Prerequisite + +[IMPORTANT] +==== +The deployment scripts require a GatewayClass named *"istio"* to exist in your cluster before running the Ansible playbook. This GatewayClass is used by the Gateway resources deployed by the Connectivity Link solution. +==== + +==== Check if GatewayClass exists + +Run this command to check if the GatewayClass "istio" exists: + +****** +[.console-input] +[source,shell script] +---- +oc get gatewayclass istio +---- +****** + +If the GatewayClass exists, you will see output like: +``` +NAME CONTROLLER AGE +istio openshift.io/gateway-controller/v1 5d +``` + +If it does not exist, you will see an error like: `Error from server (NotFound): gatewayclasses.gateway.networking.k8s.io "istio" not found` + +==== How GatewayClass is created + +The GatewayClass "istio" can be created by one of these methods: + +*Option 1: OpenShift Ingress Operator (Automatic)* + +When you install the OpenShift Service Mesh 3 Operator (Sail Operator), the OpenShift Ingress Operator can automatically create a GatewayClass named "istio" with the controller `openshift.io/gateway-controller/v1`. + +[NOTE] +===== +If you have Red Hat OpenShift AI (RHOAI) installed, it may have already created this GatewayClass or a similar one (e.g., "data-science-gateway-class") that uses the same Istio control plane. +===== + +*Option 2: Manual Creation* + +If the GatewayClass does not exist after installing the Sail Operator, you can create it manually: + +****** +[.console-input] +[source,shell script] +---- +oc apply -f - < Before running the following Ansible script, check if you have done these prerequisites [%interactive] ** [ ] The inventory file reflects the correct AWS credentials, Root zone details and region etc. +** [ ] GatewayClass "istio" exists in your cluster (check with `oc get gatewayclass istio`) ==== @@ -160,8 +245,8 @@ Run the Ansible script which will setup the RHCL Operator, Cert Manager Operator [.console-input] [source,shell script] ---- -cd operator-setup -ansible-playbook playbooks/ocp4_workload_connectivity_link.yml -e ACTION=create -i inventories/inventory.template +cd operator-setup +ansible-playbook playbooks/ocp4_workload_connectivity_link.yml -e ACTION=create -i inventories/inventory ---- === What's next