Upgrade, rollback, or uninstall Voice Microservices

From Genesys Documentation
Jump to: navigation, search
This topic is part of the manual Voice Microservices Private Edition Guide for version Current of Voice Microservices.

Learn how to upgrade, rollback or uninstall Voice Microservices.

Related documentation:

Upgrade Voice Microservices

Because Voice Services are real-time services, you use canary-based deployment to upgrade. The canary deployment is a technique of deploying one or more canary instances with the new version and verification of the new version to ensure it works as expected and also works with the previous version. Deploying only one or two canary instances should be sufficient to discover a faulty version and to minimize the risk of adding a new version into production.

The upgrade procedure consists of these major steps:

  1. Canary deployment
  2. Upgrade
  3. Delete canary

Canary deployment

For any new Voice Service version, the canary instance of it is deployed, and after the new version of the canary is approved, this version is rolled out to all instances of a Voice Service using the procedure covered in upgrade section.

For the canary deployment, some parameters in the canary_override_values.yaml file must be overridden. This file is passed to the Helm chart during the deployment of the canary instance.

# serviceaccount is created during initial deployment
serviceAccount:
create: false
 
deployment:
postfix: canary
 
# configmap is already created during initial deployment
context:
create: false
 
# this is needed for SIP canary only
loggingSidecar:
context:
create: false
 
# this is also needed for SIP canary only
volumes:
pvcLog:
create: false
pvcJsonLog:
create: false
 
# podmonitor is not needed for canary, but metric server enabling is needed
prometheus:
podMonitor:
enabled: false
metricServer:
enabled: true
 
# canary does not need HPA
hpa:
enabled: false

The following commands deploy a canary instance:

helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/agent_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-agent-canary <helm-repo>/voice-agent-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/callthread_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-callthread-canary <helm-repo>/voice-callthread-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/config_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-config-canary <helm-repo>/voice-config-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/dialplan_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-dialplan-canary <helm-repo>/voice-dialplan-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/ors_node_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-ors-canary <helm-repo>/voice-ors-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/registrar_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-registrar-canary <helm-repo>/voice-registrar-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/rq_node_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-rq-canary <helm-repo>/voice-rq-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/sip_node_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-sip-canary <helm-repo>/voice-sip-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/sipfe_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-sipfe-canary <helm-repo>/voice-sipfe-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/sipproxy_override_values.yaml -f ./voice_helm_values/canary_override_values.yaml voice-sipproxy-canary <helm-repo>/voice-sipproxy-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"

Service upgrade

When the canary deployment of a Voice Service is ready for an upgrade, use the following commands to upgrade the current version of a Voice Service to the desired version:

helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/agent_override_values.yaml voice-agent <helm-repo>/voice-agent-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/callthread_override_values.yaml voice-callthread <helm-repo>/voice-callthread-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/config_override_values.yaml voice-config <helm-repo>/voice-config-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/dialplan_override_values.yaml voice-dialplan <helm-repo>/voice-dialplan-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/ors_node_override_values.yaml voice-ors <helm-repo>/voice-ors-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/registrar_override_values.yaml voice-registrar <helm-repo>/voice-registrar-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/rq_node_override_values.yaml voice-rq <helm-repo>/voice-rq-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/sip_node_override_values.yaml voice-sip <helm-repo>/voice-sip-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/sipfe_override_values.yaml voice-sipfe <helm-repo>/voice-sipfe-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"
 
helm upgrade --install --force --wait --timeout 300s -n voice -f ./voice_helm_values/sipproxy_override_values.yaml voice-sipproxy <helm-repo>/voice-sipproxy-<helmchart-version>.tgz --set version=<new-container-version> --username "$JFROG_USER" --password "$JFROG_PASSWORD"

Delete the canary instance

If the upgrade of a Voice Service is successful, delete the canary instance of the service by using the following commands:

helm delete voice-agent-canary -n voice
helm delete voice-callthread-canary -n voice
helm delete voice-config-canary -n voice
helm delete voice-dialplan-canary -n voice
helm delete voice-ors-canary -n voice
helm delete voice-registrar-canary -n voice
helm delete voice-sip-canary -n voice
helm delete voice-sipfe-canary -n voice
helm delete voice-sipproxy-canary -n voice

Upgrade of the RQ node service

The upgrade procedure of the RQ node service differs from other Voice Services and consists of the following steps:

  1. Set the strategy to OnDelete in rq_node_override_values.yam. Note that when a fresh RQ node service is deployed, the strategy is set to RollingUpdate in rq_node_override_values.yaml by default.
    Example:
    deployment:
      deploymentType: statefulset
      strategy: OnDelete
  2. Upgrade the voice-rq Helm to the newer version using the following command:
    helm upgrade --install --force --wait --timeout 200s -n voice -f ./voice_helm_values/rq_node_override_values.yaml voice-rq https://<jfrog artifactory/helm location>/voice-rq/voice-rq-9.0.07.tgz --set version=9.0.6 --username "$JFROG_USER" --password "$JFROG_PASSWORD"
  3. Delete the voice-rq-0 pod, and then the voice-rq-0 pod will be upgraded to a new version. Note that only when a pod is deleted, the upgraded Helm version will be considered to new pods. And this canary pod can be verified to ensure it works with other RQ nodes.
  4. If other RQ node pods are deleted, they would also get upgraded to a newer version. To avoid such random upgrade of RQ nodes, downgrade Helm version to a previous version. And voice-rq-0 will have a new version available for testing.
  5. If a canary pod (voice-rq-0) works correctly with other pods and in the environment, upgrade the voice-rq Helm to the newer version (same as step 2). When the upgrade is successful, delete all RQ pods, so the newer RQ node pods will have the upgraded new version.

Rollback Voice Microservices

Content coming soon

Uninstall Voice Microservices

Content coming soon
Retrieved from "https://all.docs.genesys.com/VM/Current/VMPEGuide/Upgrade (2022-05-27 04:13:43)"