Difference between revisions of "PEC-DC/Current/DCPEGuide/Deploy"

From Genesys Documentation
Jump to: navigation, search
(Published)
 
Line 12: Line 12:
 
|anchor=prepare
 
|anchor=prepare
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=To prepare your environment for the deployment, first confirm the cluster is running:<syntaxhighlight>
+
|structuredtext=To prepare your environment for the deployment, complete the steps in this section for either OpenShift or Google Kubernetes Engine (GKE).
 +
 
 +
===OpenShift===
 +
Log in to the OpenShift cluster from the host where you will run the deployment:<syntaxhighlight>
 +
oc login --token <token> --server <url of api server>
 +
</syntaxhighlight>
 +
First confirm the cluster is running:<syntaxhighlight>
  
 
oc get clusterversion
 
oc get clusterversion
</syntaxhighlight>Create a new namespace (also called a project) for Digital Channels:<syntaxhighlight>
+
</syntaxhighlight>Create a new project for Digital Channels:<syntaxhighlight>
 
oc new-project nexus
 
oc new-project nexus
 +
</syntaxhighlight>
 +
 +
===GKE===
 +
Log in to the GKE cluster from the host where you will run the deployment:<syntaxhighlight>
 +
gcloud container clusters get-credentials <cluster>
 +
</syntaxhighlight>Create a JSON file called '''create-nexus-namespace.json''' with the following content:<syntaxhighlight>
 +
{
 +
  "apiVersion": "v1",
 +
  "kind": "Namespace",
 +
  "metadata": {
 +
    "name": "nexus",
 +
    "labels": {
 +
      "name": "nexus"
 +
    }
 +
  }
 +
}
 +
</syntaxhighlight>Use the JSON file to create a new namespace for Digital Channels:<syntaxhighlight>
 +
kubectl apply -f apply create-nexus-namespace.json
 +
</syntaxhighlight>Now confirm the namespace was created:<syntaxhighlight>
 +
kubectl describe namespace nexus
 
</syntaxhighlight>
 
</syntaxhighlight>
 
{{AnchorDiv|secret}}
 
{{AnchorDiv|secret}}
Line 23: Line 49:
 
<source lang="text">kubectl create secret docker-registry <credential-name> --docker-server=<docker repo> --docker-username=<jfrog_username> --docker-password=<API_key_from_jfrog></source>
 
<source lang="text">kubectl create secret docker-registry <credential-name> --docker-server=<docker repo> --docker-username=<jfrog_username> --docker-password=<API_key_from_jfrog></source>
  
Now map the secret to the default service account (for Openshift):
+
For OpenShift deployments, map the secret to the default service account (this is an optional step):
 
<source lang="text">oc secrets link default <credential-name> --for=pull</source>
 
<source lang="text">oc secrets link default <credential-name> --for=pull</source>
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Deploy in OpenShift
+
|sectionHeading=Deploy
 
|anchor=deploy
 
|anchor=deploy
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=To deploy Digital Channels in OpenShift, you'll need the Helm package and override files you {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Planning|anchor=Helm|display text=downloaded in a previous step}}. Copy '''values.yaml''' and the Helm package ('''nexus-<version>.tgz''') to the installation location.
+
|structuredtext=To deploy Digital Channels, you'll need the Helm package and override files you {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Planning|anchor=Helm|display text=downloaded in a previous step}}. Copy '''values.yaml''' and the Helm package ('''nexus-<version>.tgz''') to the installation location.
 +
 
 +
You must override the following key sections in '''values.yaml''':
  
The following example shows how your '''values.yaml''' file might look:<syntaxhighlight>
+
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Configure|anchor=image|display text=image.*}}
 +
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Configure|anchor=fqdn|display text=nexus.fqdn}}
 +
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Configure|anchor=redis|display text=nexus.redis.*}}
 +
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Configure|anchor=db|display text=nexus.db.*}}
 +
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=Configure|anchor=ingress|display text=ingress.*}}
 +
 
 +
Here's an example of how your '''values.yaml''' file might look:<syntaxhighlight>
 
deploymentType: Deployment
 
deploymentType: Deployment
 
replicaCount: 1
 
replicaCount: 1
Line 62: Line 96:
 
     apikey: ""
 
     apikey: ""
 
     retryTimeout: 10000
 
     retryTimeout: 10000
podSecurityContext:
 
    runAsUser: null
 
    runAsGroup: 0
 
    fsGroup: null
 
    runAsNonRoot: true
 
 
service:
 
service:
 
   enabled: true
 
   enabled: true
Line 93: Line 122:
 
   alarms: true
 
   alarms: true
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
  
 
Run the following command to install Digital Channels:<syntaxhighlight>
 
Run the following command to install Digital Channels:<syntaxhighlight>
Line 101: Line 128:
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Validate the deployment in OpenShift
+
|sectionHeading=Validate the deployment
 
|anchor=validate
 
|anchor=validate
 
|alignment=Vertical
 
|alignment=Vertical
Line 149: Line 176:
 
|anchor=next
 
|anchor=next
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Complete the steps in the "Integrate and provision" chapter to finish deploying Digital Channels.
+
|structuredtext=Complete the steps in the "Integrate and provision" chapter to finish deploying Digital Channels. See {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionOverview}} for details.
 
 
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=PreConfig}}
 
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=EnableTenant}}
 
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionAPI}}
 
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS}}
 
  
 
<br />
 
<br />

Revision as of 19:51, March 30, 2022

This topic is part of the manual Digital Channels Private Edition Guide for version Current of Digital Channels.
Important
Make sure to review Before you begin for the full list of prerequisites required to deploy Digital Channels.

Prepare your environment

To prepare your environment for the deployment, complete the steps in this section for either OpenShift or Google Kubernetes Engine (GKE).

OpenShift

Log in to the OpenShift cluster from the host where you will run the deployment:
oc login --token <token> --server <url of api server>
First confirm the cluster is running:
oc get clusterversion
Create a new project for Digital Channels:
oc new-project nexus

GKE

Log in to the GKE cluster from the host where you will run the deployment:
gcloud container clusters get-credentials <cluster>
Create a JSON file called create-nexus-namespace.json with the following content:
{
  "apiVersion": "v1",
  "kind": "Namespace",
  "metadata": {
    "name": "nexus",
    "labels": {
      "name": "nexus"
    }
  }
}
Use the JSON file to create a new namespace for Digital Channels:
kubectl apply -f apply create-nexus-namespace.json
Now confirm the namespace was created:
kubectl describe namespace nexus

Configure a secret to access JFrog

If you haven't done so already, create a secret for accessing the JFrog registry:

kubectl create secret docker-registry <credential-name> --docker-server=<docker repo> --docker-username=<jfrog_username> --docker-password=<API_key_from_jfrog>

For OpenShift deployments, map the secret to the default service account (this is an optional step):

oc secrets link default <credential-name> --for=pull

Deploy

To deploy Digital Channels, you'll need the Helm package and override files you downloaded in a previous step. Copy values.yaml and the Helm package (nexus-<version>.tgz) to the installation location.

You must override the following key sections in values.yaml:

Here's an example of how your values.yaml file might look:
deploymentType: Deployment
replicaCount: 1
image:
  registry: pureengage-docker-staging.jfrog.io
  repository: nexus/nexus
  pullPolicy: IfNotPresent
imagePullSecrets: [ mycred ]
nameOverride: ""
fullnameOverride: ""
existingSecret:
existingConfig:
nexus:
  fqdn: "http://digital.<your-cluster>"
  redirectProtocol: "http://"
  redis:
    enabled: true
    nodes: "redis://<redis-url>:<redis-port>"
    useCluster: true
    enableTls: false
    password: $nexus_redis_password
  db:
    host: "<postgres-host>"
    port: <postgres-port>
    user: "<db-user>"
    password: nexus_db_password
    enableSsl: false
  social:
    apikey: ""
    retryTimeout: 10000
service:
  enabled: true
  type: ClusterIP
ingress:
  tls:
    - hosts:
      - digital.<your-cluster>
      secretName: letsencrypt 
  enabled: true
  hosts:
    - host: digital.<your-cluster>
      paths:
        - path: '/chat/v3/'
          port: http
        - path: '/nexus/v3/'
          port: http
        - path: '/ux/'
          port: http
        - path: '/admin/'
          port: http
        - path: '/auth/'
          port: http
monitoring:
  enabled: true
  alarms: true
Run the following command to install Digital Channels:
helm install nexus ./nexus-<version>.tgz --set version=<version> -f values.yaml

Validate the deployment

To validate the deployment, send the following GET request:

$nexusURL/health/detail 

Where $nexusURL is the fully qualified domain name (FQDN) for Digital Channels.

The response should look like this:
{
	"buildInfo": {
		"@genesys/nexus-admin-ux": "^1.0.21",
		"@genesys/nexus-ux": "^2.2.46",
		"version": "9.0.001.01.95292",
		"changeset": "8c3a2b34888d41b318d949a4bda2903368cf3bda",
		"timestamp": "Thu Oct 21 13:55:13 UTC 2021"
	},
	"startTime": "2021-10-22T10:40:27.456Z",
	"os": {
		"upTime": 1142897,
		"freemem": 105664512,
		"loadavg": [1.32, 0.68, 0.43],
		"totalmem": 2052542464
	},
	"upTime": 279363374,
	"memoryUsage": {
		"rss": 306659328,
		"heapTotal": 196685824,
		"heapUsed": 162114568,
		"external": 2490373,
		"arrayBuffers": 818214
	},
	"cache": {
		"ready": true,
		"state": "READY"
	},
	"db": {
		"ready": true
	},
	"state": "green"
}
The deployment was successful if state="green". You can also confirm that db.ready=true and cache.ready=true.

Next steps

Complete the steps in the "Integrate and provision" chapter to finish deploying Digital Channels. See Provisioning overview for details.


Retrieved from "https://all.docs.genesys.com/PEC-DC/Current/DCPEGuide/Deploy (2025-07-23 19:55:45)"
Comments or questions about this documentation? Contact us for support!