Difference between revisions of "PEC-DC/Current/DCPEGuide/Deploy"
(Published) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{ArticlePEServiceDeploy |
− | | | + | |ServiceId=9e7aa6a5-e8c6-4d8c-816f-4790127eabe7 |
− | | | + | |IncludeAssumptions=Yes |
− | |||
− | |||
|Section={{Section | |Section={{Section | ||
|alignment=Vertical | |alignment=Vertical | ||
Line 12: | Line 10: | ||
|anchor=prepare | |anchor=prepare | ||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext=To prepare your environment for the deployment, | + | |structuredtext=To prepare your environment for the deployment, complete the steps in this section for either Google Kubernetes Engine (GKE) or Azure Kubernetes Service (AKS). |
− | + | ===GKE=== | |
− | + | Log in to the GKE cluster from the host where you will run the deployment:<syntaxhighlight> | |
− | + | gcloud container clusters get-credentials <cluster> | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | {{AnchorDiv|secret}} | + | |
+ | ===AKS=== | ||
+ | Log in to the GKE cluster from the host where you will run the deployment:<syntaxhighlight> | ||
+ | az aks get-credentials --resource-group <rsgroup> --name <name> --admin | ||
+ | </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 created namespace:<syntaxhighlight> | ||
+ | kubectl describe namespace nexus | ||
+ | </syntaxhighlight> | ||
+ | Add Helm repo and execute Helm upgrade to create persistent volumes and persistent volume claims<syntaxhighlight> | ||
+ | helm repo add nexushelmrepo https://pureengage.jfrog.io/artifactory/helm-dev --username={jfrog_user} --password={jfrog_token} | ||
+ | |||
+ | </syntaxhighlight><br />{{AnchorDiv|secret}} | ||
===Configure a secret to access JFrog=== | ===Configure a secret to access JFrog=== | ||
If you haven't done so already, create a secret for accessing the JFrog registry: | If you haven't done so already, create a secret for accessing the JFrog registry: | ||
<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> | ||
− | |||
− | |||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading=Deploy | + | |sectionHeading=Deploy |
|anchor=deploy | |anchor=deploy | ||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext=To deploy Digital Channels | + | |structuredtext=To deploy Digital Channels, you 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''': | |
+ | |||
+ | *{{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 89: | ||
apikey: "" | apikey: "" | ||
retryTimeout: 10000 | retryTimeout: 10000 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
service: | service: | ||
enabled: true | enabled: true | ||
Line 93: | Line 115: | ||
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 121: | ||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading=Validate the deployment | + | |sectionHeading=Validate the deployment |
|anchor=validate | |anchor=validate | ||
|alignment=Vertical | |alignment=Vertical | ||
Line 149: | Line 169: | ||
|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. |
− | |||
− | |||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
|Status=No | |Status=No | ||
}} | }} | ||
− | |||
}} | }} |
Latest revision as of 11:01, March 6, 2023
Contents
Learn how to deploy Digital Channels 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.
Prepare your environment
To prepare your environment for the deployment, complete the steps in this section for either Google Kubernetes Engine (GKE) or Azure Kubernetes Service (AKS).
GKE
Log in to the GKE cluster from the host where you will run the deployment:gcloud container clusters get-credentials <cluster>
AKS
Log in to the GKE cluster from the host where you will run the deployment:az aks get-credentials --resource-group <rsgroup> --name <name> --admin
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "nexus",
"labels": {
"name": "nexus"
}
}
}
kubectl apply -f apply create-nexus-namespace.json
kubectl describe namespace nexus
helm repo add nexushelmrepo https://pureengage.jfrog.io/artifactory/helm-dev --username={jfrog_user} --password={jfrog_token}
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>
Deploy
To deploy Digital Channels, you 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
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"
}
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.