Difference between revisions of "GWS/Current/GWSPEGuide/DeployIngress"

From Genesys Documentation
Jump to: navigation, search
(Published)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Article
+
{{ArticlePEServiceDeploy
|Standalone=No
+
|ServiceId=11ff3d39-ae2b-4526-b7e5-7dcdf781ef01
|DisplayName=Deploy GWS Ingress
+
|IncludedServiceId=8d3bb679-8e6d-4070-b73b-9c956a21588a
|Context=Learn how to deploy GWS Ingress.
+
|IncludeAssumptions=Yes
|ComingSoon=No
 
 
|Section={{Section
 
|Section={{Section
 +
|alignment=Vertical
 +
|structuredtext={{NoteFormat|If you are deploying Genesys Web Services and Applications in a single namespace with other private edition services, then you do not need to deploy GWS ingress.|3}}
 +
|Status=No
 +
}}{{Section
 
|sectionHeading=Prerequisites
 
|sectionHeading=Prerequisites
 
|anchor=prerequisites
 
|anchor=prerequisites
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Before you deploy GWS Ingress, you must first {{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Deploy}}.
+
|structuredtext=Before you deploy GWS ingress, you must first {{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Deploy}} and {{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=ConfigureIngress}}.
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
Line 14: Line 17:
 
|anchor=deploy
 
|anchor=deploy
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=To deploy GWS Ingress, you need the GWS Ingress Helm package and override file. Copy '''values.yaml''' and the Helm package ('''gws-ingress-<version>.tgz''') to the installation location.
+
|structuredtext=To deploy GWS ingress, you need the GWS ingress Helm package and override file. Copy '''values.yaml''' and the Helm package ('''gws-ingress-<version>.tgz''') to the installation location.
 
+
<!--
 
For OpenShift, select the '''gws''' project you created in {{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Deploy|anchor=OpenShift|display text=Prepare your environment}}:
 
For OpenShift, select the '''gws''' project you created in {{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Deploy|anchor=OpenShift|display text=Prepare your environment}}:
 
  oc project gws
 
  oc project gws
 +
-->
 
Run the following command to deploy GWS ingress:
 
Run the following command to deploy GWS ingress:
  helm upgrade --install gws-ingress helm-staging/gws-ingress --version=<version> -n gws -f ./override.gws-ingress.values.yaml -f ./versions.yaml
+
  helm upgrade --install gws-ingress <helm_directory>/gws-ingress --version=<version> -n gws -f ./override.gws-ingress.values.yaml -f ./versions.yaml
 
|Status=No
 
|Status=No
}}{{Section
+
}}
|sectionHeading=Configure external access
+
<!--
 +
{{Section
 +
|sectionHeading=Create routes in OpenShift
 
|anchor=https
 
|anchor=https
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Follow the instructions for either OpenShift or GKE to configure external access to GWS ingress.
+
|structuredtext=Follow the instructions to configure external access to GWS ingress in OpenShift.
 
 
===Create routes in OpenShift===
 
  
 
Genesys recommends using the following hostname format: <code>gws.<cluster-subdomain></code>. For example, the VCE cluster (<nowiki>https://console-openshift-console.apps</nowiki>.<yourclusterdomain>.com/) should have the hostname '''gws.<yourclusterdomain>.com'''
 
Genesys recommends using the following hostname format: <code>gws.<cluster-subdomain></code>. For example, the VCE cluster (<nowiki>https://console-openshift-console.apps</nowiki>.<yourclusterdomain>.com/) should have the hostname '''gws.<yourclusterdomain>.com'''
  
 
  oc create route edge --service=gws-service-proxy --hostname=<hostname>
 
  oc create route edge --service=gws-service-proxy --hostname=<hostname>
{{AnchorDiv|GKEingress}}
 
===Provision ingresses for GKE===
 
After deploying, make Genesys Web Services services accessible from outside the GKE cluster using the NGINX Ingress Controller.
 
 
Create a JSON file called '''gauth-ingress.yaml''' with the content below. '''Note:''' Replace '''gws.<domain>''' and '''gauth.<domain>''' with your GWS and Genesys Authentication domains, such as <code>gws.test.dev</code>.<syntaxhighlight>
 
apiVersion: extensions/v1beta1
 
kind: Ingress
 
metadata:
 
  name: gauth-gws-ingress
 
  namespace: gauth
 
  annotations:
 
    # add an annotation indicating the issuer to use.
 
    cert-manager.io/cluster-issuer: "selfsigned-cluster-issuer"
 
    # Custom annotations for NGINX Ingress Controller
 
    kubernetes.io/ingress.class: "nginx"
 
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
 
    nginx.ingress.kubernetes.io/use-regex: "true"
 
spec:
 
  rules:
 
  - host: gws.<domain> - e.g. gws.test.dev
 
    http:
 
      paths:
 
        - path: /ui/auth/.*
 
          backend:
 
            serviceName:  gauth-auth-ui
 
            servicePort: 80
 
        - path: /auth/.*
 
          backend:
 
            serviceName:  gauth-auth
 
            servicePort: 80
 
        - path: /environment/.*
 
          backend:
 
            serviceName:  gauth-environment
 
            servicePort: 80
 
  tls:
 
  - hosts:
 
    - gws.<domain> - e.g. gws.test.dev
 
    secretName: gauth-gws-ingress-cert
 
---
 
apiVersion: extensions/v1beta1
 
kind: Ingress
 
metadata:
 
  name: gauth-gauth-ingress
 
  namespace: gauth
 
  annotations:
 
    # add an annotation indicating the issuer to use.
 
    cert-manager.io/cluster-issuer: "selfsigned-cluster-issuer"
 
    # Custom annotations for NGINX Ingress Controller
 
    kubernetes.io/ingress.class: "nginx"
 
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
 
    nginx.ingress.kubernetes.io/use-regex: "true"
 
spec:
 
  rules:
 
  - host: gauth.<domain> - e.g. gauth.test.dev
 
    http:
 
      paths:
 
        - path: /ui/auth/.*
 
          backend:
 
            serviceName:  gauth-auth-ui
 
            servicePort: 80
 
        - path: /auth/.*
 
          backend:
 
            serviceName:  gauth-auth
 
            servicePort: 80
 
 
        - path: /environment/.*
 
          backend:
 
            serviceName:  gauth-environment
 
            servicePort: 80
 
  tls:
 
  - hosts:
 
    - gauth.<domain> - e.g. gauth.test.dev
 
    secretName: gauth-gauth-ingress-cert
 
</syntaxhighlight>Create ingresses with the following command:<syntaxhighlight>
 
kubectl apply -f gauth-ingress.yaml -n gws
 
</syntaxhighlight>
 
 
|Status=No
 
|Status=No
}}{{Section
+
}}
 +
-->
 +
{{Section
 
|sectionHeading=Validate the deployment
 
|sectionHeading=Validate the deployment
 
|alignment=Vertical
 
|alignment=Vertical
Line 153: Line 83:
 
  kubectl get all -n gws
 
  kubectl get all -n gws
 
The result should show all the created pods, services, ConfigMaps, and so on.
 
The result should show all the created pods, services, ConfigMaps, and so on.
 
{{Editgrn open}}JM: Will the step below work if you haven't completed the deployment for Workspace Web Edition? That deployment is documented separately here: {{Link-AnywhereElse|product=PEC-AD|version=Current|manual=WWEPEGuide}}{{Editgrn close}}
 
 
Finally, verify that you can now access Workspace Web Edition at the following URL: <nowiki>https://<hostname>/ui/wwe/index.html</nowiki>
 
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
Line 162: Line 88:
 
|anchor=next
 
|anchor=next
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=*{{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=ProvisionAS}}
+
|structuredtext=*{{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Provision}}
 
|Status=No
 
|Status=No
 
}}
 
}}
 
}}
 
}}

Latest revision as of 13:01, February 28, 2023

Learn how to deploy GWS Ingress into a private edition environment.

Assumptions

  • The instructions on this page assume you are deploying the service in a service-specific namespace, named in accordance with the requirements on Creating namespaces. If you are using a single namespace for all private edition services, replace the namespace element in the commands on this page with the name of your single namespace or project.
  • Similarly, the configuration and environment setup instructions assume you need to create namespace-specific (in other words, service-specific) secrets. If you are using a single namespace for all private edition services, you might not need to create separate secrets for each service, depending on your credentials management requirements. However, if you do create service-specific secrets in a single namespace, be sure to avoid naming conflicts.
Warning
If you are deploying Genesys Web Services and Applications in a single namespace with other private edition services, then you do not need to deploy GWS ingress.

Prerequisites

Before you deploy GWS ingress, you must first Deploy GWS Services and Configure GWS Ingress.

Deploy

To deploy GWS ingress, you need the GWS ingress Helm package and override file. Copy values.yaml and the Helm package (gws-ingress-<version>.tgz) to the installation location. Run the following command to deploy GWS ingress:

helm upgrade --install gws-ingress <helm_directory>/gws-ingress --version=<version> -n gws -f ./override.gws-ingress.values.yaml -f ./versions.yaml

Validate the deployment

First, check that the pod is running:

kubectl get pod

The result should show that gws-service-proxy is running. For example:

gws-service-proxy-d5997957f-m4kcg 1/1 Running 0 4d13h
Check the service:
kubectl get svc
The result should display the service name, gws-service-proxy. For example:
gws-service-proxy ClusterIP 10.202.55.20 <none> 80/TCP,81/TCP,85/TCP,86/TCP 4d13h

Check the gws-ingress status:

helm status gws-ingress -n gws

The result should show the namespace details with a status of deployed:

NAME: gws-ingress
LAST DEPLOYED: Fri Sep 17 11:54:31 2021
NAMESPACE: gws
STATUS: deployed
REVISION: 1
TEST SUITE: None

Check the installed Helm release:

helm list –n gws

The result should show the gws-services and gws-ingress deployment details. For example:

NAME            NAMESPACE    REVISION    UPDATED                                 STATUS       CHART                  APP VERSION

gws-ingress     gws          1           2021-09-17 11:54:31.339091 -0300 ADT    deployed     gws-ingress-0.2.7      1.0       

gws-services    gws          1           2021-09-17 11:43:50.0692273 -0300 ADT   deployed     gws-services-1.0.55    1.0

Check the GWS Kubernetes objects created by Helm:

kubectl get all -n gws

The result should show all the created pods, services, ConfigMaps, and so on.

Next steps

Comments or questions about this documentation? Contact us for support!