Difference between revisions of "PEC-REP/Current/GIMPEGuide/DeployGIM"
(Published) |
|||
Line 6: | Line 6: | ||
|Section={{Section | |Section={{Section | ||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext={{NoteFormat|Make sure to review {{Link-SomewhereInThisVersion|topic=PlanningGIM}} for the full list of prerequisites required to deploy GIM.|}} | + | |structuredtext={{NoteFormat|Make sure to review {{Link-SomewhereInThisVersion|topic=PlanningGIM}} for the full list of prerequisites required to deploy GIM, including creation of the Info Mart database and, if applicable, S3-compatible storage for your exported data (see (see {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=PlanningGSP|anchor=S3|display text=Create object storage}}).|}} |
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
|sectionHeading=Set up your environment | |sectionHeading=Set up your environment | ||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |structuredtext=To prepare your environment for the deployment, complete the steps in this section for: |
− | # Log in to the OpenShift cluster | + | * [[{{FULLPAGENAME}}#PrepOpenShift|OpenShift]] |
+ | * [[{{FULLPAGENAME}}#PrepGKE|GKE]] | ||
+ | |||
+ | {{AnchorDiv|PrepOpenShift}} | ||
+ | ===Environment setup for OpenShift=== | ||
+ | # Log in to the OpenShift cluster via CLI on the host where you will run the deployment: | ||
#: <source lang="text">oc login --token <token> --server <URL of the API server></source> | #: <source lang="text">oc login --token <token> --server <URL of the API server></source> | ||
# (Optional) Check the cluster version: | # (Optional) Check the cluster version: | ||
Line 22: | Line 27: | ||
# Create a secret for docker-registry in order to pull images from the Genesys JFrog repository: | # Create a secret for docker-registry in order to pull images from the Genesys JFrog repository: | ||
#: <source lang="text">oc create secret docker-registry <repository secret name> --docker-server=<repository> --docker-username=<username> --docker-password=<password/API key> --docker-email=<email id> -n gim</source> | #: <source lang="text">oc create secret docker-registry <repository secret name> --docker-server=<repository> --docker-username=<username> --docker-password=<password/API key> --docker-email=<email id> -n gim</source> | ||
+ | |||
+ | {{AnchorDiv|PrepGKE}} | ||
+ | ===Environment setup for GKE=== | ||
+ | # Ensure that the gcloud CLI and required Helm version are installed on the host where you will run the deployment. | ||
+ | # Log in to the GKE cluster from the host where you will run the deployment: | ||
+ | #: <source lang="text">gcloud container clusters get-credentials <cluster></source> | ||
+ | # If the cluster administrator has not already done so, create a new namespace for GIM: | ||
+ | ## Create a .json file specifying the namespace metadata. For example, '''create-gim-namespace.json''': | ||
+ | ##: <source lang="bash">{ | ||
+ | "apiVersion": "v1", | ||
+ | "kind": "Namespace", | ||
+ | "metadata": { | ||
+ | "name": "gim", | ||
+ | "labels": { | ||
+ | "name": "gim" | ||
+ | } | ||
+ | } | ||
+ | }</source> | ||
+ | ## Execute the following command to create the namespace: | ||
+ | ##: <source lang="text">kubectl apply -f apply create-gim-namespace.json</source> | ||
+ | ## Confirm namespace creation: | ||
+ | ##: <source lang="text">kubectl describe namespace gim</source> | ||
+ | # Create a secret for docker-registry in order to pull images from the Genesys JFrog repository: | ||
+ | #: <source lang="text">kubectl create secret docker-registry <repository secret name> --docker-server=<repository> --docker-username=<username> --docker-password=<password/API key> --docker-email=<email id> -n gim</source> | ||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading=Deploy | + | |sectionHeading=Deploy |
|alignment=Vertical | |alignment=Vertical | ||
|structuredtext=Execute the following command to install GIM: | |structuredtext=Execute the following command to install GIM: | ||
Line 30: | Line 59: | ||
Execute the following command to install GIM monitoring: | Execute the following command to install GIM monitoring: | ||
<source lang="text">helm upgrade --install gim-monitoring <gim-monitoring-helm-artifact> -n gim</source> | <source lang="text">helm upgrade --install gim-monitoring <gim-monitoring-helm-artifact> -n gim</source> | ||
+ | |||
+ | When the GIM service starts, it connects to the Info Mart database and checks if the GIM schema has been initialized. If the schema has not been initialized, the service runs a script to initialize the GIM schema. | ||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading=Validate the deployment | + | |sectionHeading=Validate the deployment |
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext={{ | + | |structuredtext=You can consider GIM deployment successful when the pod is running and in Ready state. Genesys Info Mart does not report the Ready state for pods until internal health checks are satisfied and the pods are operational. For example, GIM does not report Ready until the first transformation job has completed successfully. In other words, if the GIM pod is running and in Ready state, it means that GIM successfully started, connected to Kafka and the Info Mart database, initialized the Info Mart database, and completed the first ETL cycle. |
+ | |||
+ | You can use standard <tt>kubectl</tt> commands like <tt>list</tt> and <tt>get</tt> to verify the successful deployment and readiness status of the Kubernetes objects, including connection to the database. | ||
+ | |||
+ | However, from a functional point of view, you cannot validate deployment of the GIM service and database unless GCA and GSP have been deployed as well. Do not expect consistent data until all three Genesys Info Mart services are up and running. For more details about functional checks you can perform to validate GIM deployment, see the equivalent validation section on the {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=DeployGSP|anchor=Validate}} page. | ||
|Status=No | |Status=No | ||
}} | }} | ||
|PEPageType=45d1441f-dc69-4a17-bd47-af5d811ce167 | |PEPageType=45d1441f-dc69-4a17-bd47-af5d811ce167 | ||
}} | }} |
Revision as of 19:53, March 30, 2022
Contents
Learn how to deploy GIM.
Set up your environment
To prepare your environment for the deployment, complete the steps in this section for:
Environment setup for OpenShift
- Log in to the OpenShift cluster via CLI on the host where you will run the deployment:
oc login --token <token> --server <URL of the API server>
- (Optional) Check the cluster version:
oc get clusterversion
- If the cluster administrator has not already done so, create a new project for GIM:
oc new-project gim
- Set the default project to GIM:
oc project gim
- Create a secret for docker-registry in order to pull images from the Genesys JFrog repository:
oc create secret docker-registry <repository secret name> --docker-server=<repository> --docker-username=<username> --docker-password=<password/API key> --docker-email=<email id> -n gim
Environment setup for GKE
- Ensure that the gcloud CLI and required Helm version are installed on the host where you will run the deployment.
- Log in to the GKE cluster from the host where you will run the deployment:
gcloud container clusters get-credentials <cluster>
- If the cluster administrator has not already done so, create a new namespace for GIM:
- Create a .json file specifying the namespace metadata. For example, create-gim-namespace.json:
{ "apiVersion": "v1", "kind": "Namespace", "metadata": { "name": "gim", "labels": { "name": "gim" } } }
- Execute the following command to create the namespace:
kubectl apply -f apply create-gim-namespace.json
- Confirm namespace creation:
kubectl describe namespace gim
- Create a .json file specifying the namespace metadata. For example, create-gim-namespace.json:
- Create a secret for docker-registry in order to pull images from the Genesys JFrog repository:
kubectl create secret docker-registry <repository secret name> --docker-server=<repository> --docker-username=<username> --docker-password=<password/API key> --docker-email=<email id> -n gim
Deploy
Execute the following command to install GIM:
helm upgrade --install gim <gim-helm-artifact> -f <gim-values.yaml> -n gim
Execute the following command to install GIM monitoring:
helm upgrade --install gim-monitoring <gim-monitoring-helm-artifact> -n gim
When the GIM service starts, it connects to the Info Mart database and checks if the GIM schema has been initialized. If the schema has not been initialized, the service runs a script to initialize the GIM schema.
Validate the deployment
You can consider GIM deployment successful when the pod is running and in Ready state. Genesys Info Mart does not report the Ready state for pods until internal health checks are satisfied and the pods are operational. For example, GIM does not report Ready until the first transformation job has completed successfully. In other words, if the GIM pod is running and in Ready state, it means that GIM successfully started, connected to Kafka and the Info Mart database, initialized the Info Mart database, and completed the first ETL cycle.
You can use standard kubectl commands like list and get to verify the successful deployment and readiness status of the Kubernetes objects, including connection to the database.
However, from a functional point of view, you cannot validate deployment of the GIM service and database unless GCA and GSP have been deployed as well. Do not expect consistent data until all three Genesys Info Mart services are up and running. For more details about functional checks you can perform to validate GIM deployment, see the equivalent validation section on the Deploy GIM Stream Processor page.