Difference between revisions of "PEC-REP/Current/GIMPEGuide/ConfigureGCA"

From Genesys Documentation
Jump to: navigation, search
Line 5: Line 5:
 
|ComingSoon=No
 
|ComingSoon=No
 
|Section={{Section
 
|Section={{Section
|sectionHeading=GCA Helm chart overrides
+
|sectionHeading=Override Helm chart values
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=The GCA requires some configuration for deployment that must be done by modifying the GCA's default Helm chart. You do this by creating override entries in the GCA's '''values.yaml''' file.
+
|structuredtext=Download the gca and gca-monitoring Helm charts from JFrog using your credentials. You must override certain parameters in the GCA '''values.yaml''' file to provide deployment-specific values for certain parameters.
  
Download the '''gca''' and '''gca-monitoring''' Helm charts from the JFrog registry, using the appropriate credentials.
+
For general information about overriding Helm chart values, see {{SuiteLevelLink|helmoverride}} in the ''{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|display text=Genesys Multicloud CX Private Edition Guide}}''.
  
For information about how to download the Helm charts, see {{SuiteLevelLink|helmchart}}. To find the correct Helm chart version for your release, see {{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud|topic=GIMHelm}}. For general information about Helm chart overrides, see {{SuiteLevelLink|helmoverride}} in the ''{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|display text=Genesys Multicloud CX Private Edition Guide}}''.
+
If you want to use arbitrary UIDs in your OpenShift deployment, you must override the '''securityContext''' settings in the GCA '''values.yaml''' file, so that no user or group IDs are specified. For details, see [[{{FULLPAGENAME}}#Security|Configure security]], below.
  
At minimum, you must create entries in the '''values.yaml''' file to specify key system information, as described in the following sections.
+
To enable S3-compatible storage to store the GCA snapshot, see [[{{FULLPAGENAME}}#Storage|Configure S3-compatible storage]], below.
  
{{NoteFormat|Treat your modified '''values.yaml''' file as source code, which you are responsible to maintain so that your overrides are preserved and available for reuse when you upgrade.}}
+
At a minimum, you must override the following key entries in the GCA '''values.yaml''' file:
|Status=No
 
}}{{Section
 
|sectionHeading=Image registry and pull secret
 
|anchor=GCA_ImagePull
 
|alignment=Vertical
 
|structuredtext={{AnchorDiv|GCA_ImageRegistry}}
 
  
===Image registry===
+
*<tt>image:</tt>
Create an entry in the GSP's '''values.yaml''' file to specify the location of the Genesys JFrog image registry. This is the repository from which Kubernetes will pull images.
+
*:<tt>registry</tt> — ''the registry from which Kubernetes will pull images (''<tt>pureengage-docker-staging.jfrog.io</tt> ''by default)''
 +
*:<tt>tag</tt> - ''the container image version''
 +
*<tt>tenant_id</tt> - ''the TenantID of the tenant in use''
 +
*<tt>cfgdb</tt> - ''the applicable details for the Configuration Database, created before you deployed the Tenant service''
 +
*: <tt>name</tt> - ''the name of the database''
 +
*: <tt>host</tt> - ''the host on which the DBMS is running''
 +
*: <tt>username</tt> - ''the user account for GCA to access the database. The user account must have at least read permissions.''
 +
*: <tt>password</tt> - ''the password for the user account''
 +
*<tt>gimdb</tt> - ''the applicable details for the Info Mart database''
 +
*: <tt>name</tt> - ''the name of the database''
 +
*: <tt>host</tt> - ''the host on which the DBMS is running''
 +
*: <tt>username</tt> - ''the user account created when you created the database (see {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=PlanningGIM|anchor=CreateDB|display text=Create the Info Mart database}})''
 +
*: <tt>password</tt> - ''the password for the user account''
 +
*<tt>kafka:</tt>
 +
*: <tt>bootstrap</tt> - ''the Kafka address to align with the infrastructure Kafka''
 +
*: <tt>password</tt> - ''the Kafka password, if Kafka requires authentication''
  
The location of the Genesys JFrog image registry is defined when you set up the environment for the GSP. It is represented in the system as the <code>docker-registry</code>. In the GSP Helm chart, the repository is represented as <code>image: registry</code>, as shown below. You can optionally set a container version for the image.
+
'''Note:''' <tt>tenant_id</tt> and <tt>kafka:password</tt> (optional) are currently not included in the '''values.yaml''' file. Either add these parameters to your customized '''values.yaml''' file or else specify them in the command line when you install the Helm chart.
  
*<code>image:</code>
+
{{NoteFormat|Treat your modified '''values.yaml''' file as source code, which you are responsible to maintain so that your overrides are preserved and available for reuse when you upgrade.}}
*:<code>registry</code> — ''the repository from which Kubernetes will pull images (''<code>pureengage-docker-staging.jfrog.io</code> ''by default)''
 
*:<code>tag</code> — ''the container image version''
 
 
 
{{AnchorDiv|GCA_PullSecret}}
 
===Pull secret===
 
When you set up your environment, you provision a pull secret for Genesys JFrog image registry (<code>docker-registry</code>). Each service must supply the credentials for the repository in order for Kubernetes to be able to pull from the repository.
 
Each of the three Info Mart services (GIM, GSP, and GCA) must be configured with the pull secret. You do this '''values.yaml''' for the service.
 
 
 
*<code>imagePullSecrets:</code>
 
*:<code>docker-registry</code> — ''the credentials Kubernetes will use to pull the image from the registry''
 
 
 
Note that other services use a different syntax than this to configure the repository pull secret, as follows:
 
 
 
*<code>image:</code>
 
*:<code>imagePullSecrets:</code>
 
*::<code>- name: docker-registry</code>
 
*::Genesys Info Mart, GIM Stream Processor, and GIM Configuration Adaptor helm charts all support advanced templating that allow the helm to create the pull secret automatically; hence the variation in syntax.
 
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Tenant ID
+
|sectionHeading=Configure Kubernetes
|anchor=GCA_TenantID
 
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=The Tenant microservice provides direct access to the configuration server database. Configure a Helm override entry for the Tenant ID.
+
|structuredtext=
 +
{{AnchorDiv|Secrets}}
 +
===Secrets===
 +
GCA requires the following secrets:
 +
* <tt>docker-registry</tt> — Credentials to pull the image from the JFrog repository
 +
* <tt><nowiki>{{.Release.Name}}</nowiki>-kafka-secrets</tt> — Credentials to access Kafka
 +
* <tt><nowiki>{{.Release.Name}}</nowiki>-cfgdb-secrets</tt> — Credentials to access the Configuration Database
 +
* <tt><nowiki>{{.Release.Name}}</nowiki>-gimdb-secrets</tt> — Credentials to access the Info Mart database
 +
* <tt><nowiki>{{.Release.Name}}</nowiki>-storage-secret</tt> — Credentials to access optional S3-compatible storage (for Data Export)
 +
 
 +
Except for <tt>docker-registry</tt>, which you must create manually (see the environment setup instructions on {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=DeployGCA}}), Helm creates the secrets based on values you specify in the '''values.yaml''' file.
  
*<code>tenant_id</code> - ''the TenantID of the tenant in use''
+
{{AnchorDiv|ConfigMaps}}
 +
===Config Maps===
 +
There are no Config Maps you can configure directly.
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Kafka
+
|sectionHeading=Configure security
|anchor=GCA_Kafka
+
|anchor=Security
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext={{AnchorDiv|GCA_KafkaSecret}}
+
|structuredtext=The security context settings define the privilege and access control settings for pods and containers.
===Kafka secret===
 
The Kafka secret is necessary for GCA to access Kafka. The Kafka secret is provisioned in the system as <code>kafka-secrets</code> when you set up the environment for GCA. Configure the Kafka secret by creating a Helm chart override in the '''values.yaml''' file.
 
  
*<code>kafka:</code>
+
By default, the user and group IDs are set in the GCA '''values.yaml''' file as <tt>500:500:500</tt>, meaning the '''genesys''' user.
*:<code>password</code> - ''Credentials for accessing Kafka. This secret is created during deployment''
+
<source lang="bash">
 +
securityContext:
 +
  runAsNonRoot: true
 +
  runAsUser: 500
 +
  runAsGroup: 500
 +
  fsGroup: 500
  
{{AnchorDiv|GCA_KafkaBootstrap}}
+
containerSecurityContext: {}
===Kafka bootstrap===
+
</source>
To allow the Kafka service on GCA to align with the infrastructure Kafka service, make a Helm override entry with the location of the Kafka bootstrap.
+
===Arbitrary UIDs in OpenShift===
 +
If you want to use arbitrary UIDs in your OpenShift deployment, you must override the '''securityContext''' settings in the GCA '''values.yaml''' file, so that you do not define any specific IDs.
 +
<source lang="bash">
 +
securityContext:
 +
  runAsNonRoot: true
 +
  runAsUser: null
 +
  runAsGroup: 0
 +
  fsGroup: null
  
*<code>kafka:</code>
+
containerSecurityContext: {}
*:<code>bootstrap</code> — ''the Kafka address to align with the infrastructure Kafka''
+
</source>
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=S3-compatible storage
+
|sectionHeading=Configure S3-compatible storage
 
|anchor=Storage
 
|anchor=Storage
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=If you are using S3-compatible object storage on OpenShift or GCP to store the GCA snapshot, modify the following <code>storage: s3</code> entries in the '''values.yaml''' file:
+
|structuredtext=If you are using S3-compatible object storage on OpenShift or GCP to store the GCA snapshot, modify the following <tt>storage: s3</tt> entries in the '''values.yaml''' file:
 
 
 
*<tt>bucket</tt> — ''the bucket name''
 
*<tt>bucket</tt> — ''the bucket name''
 
*<tt>gcaSnapshots</tt> — ''the volume or folder in the bucket where the GCA snapshot is stored''
 
*<tt>gcaSnapshots</tt> — ''the volume or folder in the bucket where the GCA snapshot is stored''
Line 112: Line 124:
 
     port: 443
 
     port: 443
 
     Insecure: true </source>
 
     Insecure: true </source>
|Status=No
 
}}{{Section
 
|sectionHeading=Configuration database
 
|anchor=GCA_ConfigDatabase
 
|alignment=Vertical
 
|structuredtext=Specify applicable details for the configuration database. The password you configure here is provisioned as <code>cfgdb-secrets</code> in the system.
 
 
*<code>cfgdb</code> - ''the applicable details for the Configuration Database, created before you deployed the Tenant service''
 
*:<code>name</code> - ''the name of the database''
 
*:<code>host</code> - ''the host on which the DBMS is running''
 
*:<code>username</code> - ''the user account for GCA to access the database. The user account must have at least read permissions.''
 
*:<code>password</code> - ''the password for the user account''
 
|Status=No
 
}}{{Section
 
|sectionHeading=GIM database
 
|alignment=Vertical
 
|structuredtext=Specify the applicable details for the Info Mart database. The password you specify here is provisioned in the system as <code>gimdb-secrets</code>.
 
 
*<code>gimdb</code> - ''the applicable details for the Info Mart database''
 
*:<code>name</code> - ''the name of the database''
 
*:<code>host</code> - ''the host on which the DBMS is running''
 
*:<code>username</code> - ''the user account created when you created the GIM database''
 
*:<code>password</code> - ''the password for the user account''
 
|Status=No
 
}}{{Section
 
|sectionHeading=Arbitrary UIDs (OpenShift)
 
|anchor=Security
 
|alignment=Vertical
 
|structuredtext=If you have an OpenShift deployment and you want to use arbitrary UIDs, you must modify the security context settings in the '''values.yaml''' file. The security context settings define the privilege and access control settings for pods and containers.
 
 
In the '''values.yaml''' file, the default user and group IDs in the <code>securityContext</code> object are set to <code>500:500:500</code> (the '''genesys''' user), as shown below.
 
securityContext:
 
  runAsNonRoot: true
 
  runAsUser: 500
 
  runAsGroup: 500
 
  fsGroup: 500
 
 
containerSecurityContext: {}
 
To use arbitrary UIDs in your OpenShift deployment, you replace these values with null values, as in the following example.
 
securityContext:
 
  runAsNonRoot: true
 
  runAsUser: null
 
  runAsGroup: 0
 
  fsGroup: null
 
 containerSecurityContext: {}
 
|Status=No
 
}}{{Section
 
|sectionHeading=Config Maps
 
|alignment=Vertical
 
|structuredtext=There are no Config Maps for GCA you can configure directly.
 
 
|Status=No
 
|Status=No
 
}}
 
}}
 
|PEPageType=9c3ae89b-4f75-495b-85f8-d8c4afcb3f97
 
|PEPageType=9c3ae89b-4f75-495b-85f8-d8c4afcb3f97
 
}}
 
}}

Revision as of 16:46, September 2, 2022

This topic is part of the manual Genesys Info Mart Private Edition Guide for version Current of Reporting.

Learn how to configure GIM Config Adapter (GCA).

Override Helm chart values

Download the gca and gca-monitoring Helm charts from JFrog using your credentials. You must override certain parameters in the GCA values.yaml file to provide deployment-specific values for certain parameters.

For general information about overriding Helm chart values, see Overriding Helm chart values in the Genesys Multicloud CX Private Edition Guide.

If you want to use arbitrary UIDs in your OpenShift deployment, you must override the securityContext settings in the GCA values.yaml file, so that no user or group IDs are specified. For details, see Configure security, below.

To enable S3-compatible storage to store the GCA snapshot, see Configure S3-compatible storage, below.

At a minimum, you must override the following key entries in the GCA values.yaml file:

  • image:
    registrythe registry from which Kubernetes will pull images (pureengage-docker-staging.jfrog.io by default)
    tag - the container image version
  • tenant_id - the TenantID of the tenant in use
  • cfgdb - the applicable details for the Configuration Database, created before you deployed the Tenant service
    name - the name of the database
    host - the host on which the DBMS is running
    username - the user account for GCA to access the database. The user account must have at least read permissions.
    password - the password for the user account
  • gimdb - the applicable details for the Info Mart database
    name - the name of the database
    host - the host on which the DBMS is running
    username - the user account created when you created the database (see Create the Info Mart database)
    password - the password for the user account
  • kafka:
    bootstrap - the Kafka address to align with the infrastructure Kafka
    password - the Kafka password, if Kafka requires authentication

Note: tenant_id and kafka:password (optional) are currently not included in the values.yaml file. Either add these parameters to your customized values.yaml file or else specify them in the command line when you install the Helm chart.

Important
Treat your modified values.yaml file as source code, which you are responsible to maintain so that your overrides are preserved and available for reuse when you upgrade.

Configure Kubernetes

Secrets

GCA requires the following secrets:

  • docker-registry — Credentials to pull the image from the JFrog repository
  • {{.Release.Name}}-kafka-secrets — Credentials to access Kafka
  • {{.Release.Name}}-cfgdb-secrets — Credentials to access the Configuration Database
  • {{.Release.Name}}-gimdb-secrets — Credentials to access the Info Mart database
  • {{.Release.Name}}-storage-secret — Credentials to access optional S3-compatible storage (for Data Export)

Except for docker-registry, which you must create manually (see the environment setup instructions on Deploy GIM Config Adapter), Helm creates the secrets based on values you specify in the values.yaml file.

Config Maps

There are no Config Maps you can configure directly.

Configure security

The security context settings define the privilege and access control settings for pods and containers.

By default, the user and group IDs are set in the GCA values.yaml file as 500:500:500, meaning the genesys user.

securityContext:
  runAsNonRoot: true
  runAsUser: 500
  runAsGroup: 500
  fsGroup: 500

containerSecurityContext: {}

Arbitrary UIDs in OpenShift

If you want to use arbitrary UIDs in your OpenShift deployment, you must override the securityContext settings in the GCA values.yaml file, so that you do not define any specific IDs.

securityContext:
  runAsNonRoot: true
  runAsUser: null
  runAsGroup: 0
  fsGroup: null

containerSecurityContext: {}

Configure S3-compatible storage

If you are using S3-compatible object storage on OpenShift or GCP to store the GCA snapshot, modify the following storage: s3 entries in the values.yaml file:

  • bucketthe bucket name
  • gcaSnapshotsthe volume or folder in the bucket where the GCA snapshot is stored
  • accessKeythe access key created when you created the bucket
  • secretKeythe secret created when you created the bucket
  • endPointthe bucket host

OpenShift example

storage:
  ...
  s3:
    bucket: "gim-3f7ac1ab-03b9-445b-ba12-137d4bbc3c38"
    gcaSnapshots: "/gca"
    accessKey: "<Access Key>"
    secretKey: "<Secret Key>"
    useSSL: true
    endPoint: "s3.openshift-storage.svc"
    port: 443
    Insecure: true

GKE example

storage:
  ...
  s3:
    bucket: "test-example-bucket-one"
    gcaSnapshots: "/gca"
    accessKey: "<Access Key>"
    secretKey: "<Secret Key>"
    useSSL: true
    endPoint: "storage.googleapis.com"
    port: 443
    Insecure: true
Comments or questions about this documentation? Contact us for support!