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

From Genesys Documentation
Jump to: navigation, search
(Published)
 
(8 intermediate revisions by 4 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
 
|alignment=Vertical
|structuredtext='''Note to reviewers:''' Any addition info from '''GAPI-28154'''  (All required properties for ingress need to be documented)? Also, should we say what is GWS Ingress and what it is used/needed for?
+
|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=Yes
+
|Status=No
 
}}{{Section
 
}}{{Section
 
|sectionHeading=Prerequisites
 
|sectionHeading=Prerequisites
 +
|anchor=prerequisites
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=GWS project must be created and 'gws-services' must be installed.
+
|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
|sectionHeading=Installation Steps
+
|sectionHeading=Deploy
 +
|anchor=deploy
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=*Use project gws
+
|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}}:
 
  oc project gws
 
  oc project gws
 +
-->
 +
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
 +
|Status=No
 +
}}
 +
<!--
 +
{{Section
 +
|sectionHeading=Create routes in OpenShift
 +
|anchor=https
 +
|alignment=Vertical
 +
|structuredtext=Follow the instructions to configure external access to GWS ingress in OpenShift.
  
*Credential mapping to default service account
+
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 adm policy add-scc-to-user genesys-restricted -z default-restricted -n gws
+
  oc create route edge --service=gws-service-proxy --hostname=<hostname>
 +
|Status=No
 +
}}
 +
-->
 +
{{Section
 +
|sectionHeading=Validate the deployment
 +
|alignment=Vertical
 +
|structuredtext=First, check that the pod is running:
  
*Download the gws-ingress helm charts from following repo
+
kubectl get pod
  
<nowiki>https://pureengage.jfrog.io/ui/packages/helm:%2F%2Fgws-ingress?name=gws&type=packages</nowiki>
+
The result should show that gws-service-proxy is running. For example:
  
*Create Secret for consul token
+
gws-service-proxy-d5997957f-m4kcg 1/1 Running 0 4d13h
  
oc create secret generic gws-secrets-green -n gws --from-literal='gws-consul-token=<token-from-consul>'
+
Check the service:<syntaxhighlight>
 +
kubectl get svc
 +
</syntaxhighlight>The result should display the service name, gws-service-proxy. For example:
  
*Copy the values.yaml file from the gws-ingress folder and update the value for Host parameters:
+
gws-service-proxy ClusterIP 10.202.55.20 <none> 80/TCP,81/TCP,85/TCP,86/TCP 4d13h
  
REGISTRY: pureengage-docker-staging.jfrog.io/gws
+
Check the '''gws-ingress''' status:
entryPoints:
+
helm status gws-ingress -n gws
  internal:
 
    service:
 
      type: LoadBalancer
 
      annotations: {}
 
    ingress:
 
      path: /
 
      annotations: {}
 
      tlsEnable: false
 
      secretName: gws-secret-int
 
      hostName: gws01-int.yourclusterdomain.com  -------------------------------- http internal end point for accessing GWS APIs
 
  internalTest:
 
    service:
 
      type: LoadBalancer
 
      annotations: {}
 
    ingress:
 
      path: /
 
      annotations: {}
 
      tlsEnable: false
 
      secretName: gws-secret-int
 
      hostName: gws01-test.yourclusterdomain.com  -------------------------------- http test end point for accessing GWS APIs
 
     
 
  external:
 
    service:
 
      type: ClusterIP
 
      annotations: {}
 
        #service.beta.kubernetes.io/aws-load-balancer-internal: "true"
 
        #service.beta.kubernetes.io/aws-load-balancer-type: nlb
 
    ingress:
 
      path: /
 
      annotations: {}
 
      tlsEnable: false
 
      secretName: gws-secret-ext
 
      hostName: gws01.yourclusterdomain.com              -------------------------------- http end point for accessing GWS APIs
 
      hostNameTemp: gws-temp.yourclusterdomain.com      -------------------------------- http test end point for accessing GWS
 
 
  externalTest:
 
    service:
 
      type: ClusterIP
 
      annotations: {}
 
        #service.beta.kubernetes.io/aws-load-balancer-internal: "true"
 
        #service.beta.kubernetes.io/aws-load-balancer-type: nlb
 
    ingress:
 
      path: /
 
      annotations: {}
 
        #appgw.ingress.kubernetes.io/connection-draining: "true"
 
        #appgw.ingress.kubernetes.io/connection-draining-timeout: "30"
 
        #appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
 
        #appgw.ingress.kubernetes.io/ssl-redirect: "false"
 
        #cert-manager.io/cluster-issuer: letsencrypt-prod
 
        #ingress.kubernetes.io/ssl-redirect: "false"
 
        #kubernetes.io/ingress.class: azure/application-gateway
 
      tlsEnable: false
 
      secretName: gws-secret-ext
 
      hostName: gws.apps.yourclusterdomain.com  -------------------------------- http end point for accessing GWS
 
 
Version Details:
 
gws-system-nginx: 9.0.000.14
 
Copy the above file and the gws-ingress helm package to the installation location.
 
  
*Install gws-ingress
+
The result should show the namespace details with a status of deployed:
  
helm install gws-ingress ./gws-ingress-0.2.7.tgz -f values.yaml
+
<syntaxhighlight>NAME: gws-ingress
|Status=No
+
LAST DEPLOYED: Fri Sep 17 11:54:31 2021
}}{{Section
+
NAMESPACE: gws
|sectionHeading=Test Installation
+
STATUS: deployed
|alignment=Vertical
+
REVISION: 1
|structuredtext=To check the ingress installation, run the following commands:
+
TEST SUITE: None</syntaxhighlight>
  
*Check the pod
+
Check the installed Helm release:
 +
helm list –n gws
  
oc get pod
+
The result should show the '''gws-services''' and '''gws-ingress''' deployment details. For example:
 +
<syntaxhighlight>
  
It should return gws-service-proxy and the status should be running. Example:
+
NAME            NAMESPACE    REVISION    UPDATED                                STATUS      CHART                  APP VERSION
  
gws-service-proxy-d5997957f-m4kcg 1/1 Running 0 4d13h
+
gws-ingress    gws          1          2021-09-17 11:54:31.339091 -0300 ADT    deployed    gws-ingress-0.2.7      1.0     
 
 
*Check the service
 
 
 
oc get svc
 
The result should display the service name. Example:
 
 
 
y ClusterIP 10.202.55.20 <none> 80/TCP,81/TCP,85/TCP,86/TCP 4d13h
 
|Status=No
 
}}{{Section
 
|sectionHeading=Create HTTPS Routes
 
|alignment=Vertical
 
|structuredtext=Run the following command to create https routes to access externally:
 
  
The recommended Hostname format is gws.<cluster-subdomain>. For example, VCE cluster '''('''<nowiki>https://console-openshift-console.yourclusterdomain.com/</nowiki>), the host name should be gws.yourclusterdomain.com
+
gws-services    gws          1          2021-09-17 11:43:50.0692273 -0300 ADT  deployed    gws-services-1.0.55    1.0
 
+
</syntaxhighlight>
  oc create route edge --service=gws-service-proxy --hostname=<hostname>
+
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.
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Test Routes
+
|sectionHeading=Next steps
 +
|anchor=next
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Access the following URL in a browser. It should navigate you to the login page.
+
|structuredtext=*{{Link-SomewhereInThisVersion|manual=GWSPEGuide|topic=Provision}}
 
 
https://<hostname>/ui/wwe/index.html
 
 
|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!