How to Install Greenplum in openshift or kubernetes

Usually Greenplum is installed using Ansible.

Installation process and parameters are described in a platform guide :

Topics covered in this section:








Prerequisites

The following software must be installed on the deployment host:

List of Service Ports and Dependencies

Greenplum Service consists of the components Greenplum Master, Greenplum Segment, Backup Daemon, Monitoring Agent, and DBaaS Adapter. Greenplum Master and Segment components are based on PostgreSQL database.

The list of service ports and dependencies are described in the following table. Some ports can be configured during service installation. Below table represents the default port numbers.

Component
Exposed Ports
Dependencies (Used Ports)

Greenplum Master
5432/TCP The SQL client connection port. It is also used for replication to standby Master.
2022/TCP The Greenplum SSH port that is used by internal utilities for managing database cluster.
Greenplum Segment - 6000/TCP, 7000/TCP, 2022/TCP

Greenplum Segment
6000/TCP The SQL client connection port. It is used by Master to distribute SQL requests between Segments.
7000/TCP The SQL client connection port for mirror Segments. It is used by Master if primary Segment is unavailable.
8000/TCP, 9000/TCP The ports are used for data replication between primary and mirror Segments.
2022/TCP The Greenplum SSH port that is used by internal utilities for managing database cluster.
Greenplum Master - 2022/TCP

Backup Daemon
8080/TCP The port for initiating and obtaining status of full database backups.
8081/TCP The port for additional full backups operations - list, manual eviction.
9000/TCP The port for managing granular backups.
Greenplum Master - 5432/TCP

Monitoring Agent
Greenplum Master - 5432/TCP,
Backup Daemon - 9000/TCP, 8080/TCP,
InfluxDB - 8086/TCP

DBaaS Adapter
8080/TCP The DBaaS API port, used by DBaaS aggregator to manage Greenplum database.
Greenplum Master - 5432/TCP,
Backup Daemon - 9000/TCP,
DBaaS Aggregator - 8080/TCP

Greenplum Master port 5432/TCP is exposed externally and it is used by applications to access database via SQL interface. Backup daemon ports 8080/TCP, 8081/TCP, 9000/TCP can be used in external backup managers to provide consistent backups within the solution. DBaaS performs database management operations (create, delete, backup) through DBaaS Adapter API 8080/TCP port.

There are two external interfaces required for the service as follows:

  • InfluxDB 8086/TCP for storing database health and performance metrics.
  • DBaaS Aggregator 8080/TCP for registering physical database cluster.

Greenplum database Service does not expose the dynamic ports.

Greenplum DB Deployment

Greenplum DB is deployed using Ansible. You may deploy Greenplum DB either manually or from Jenkins.

Deployment of Greenplum DB consists of the following parts:

  • Deployment of Greeplum DB itself.
  • Deployment of Monitoring agent that collects metrics.
  • DBaaS Adapter.

This setup/deployment is only supported for OpenShift versions greater than 3.11.

Uninstallation (uninstall.yml playbook)

Manual Installation

Go to the ansible directory. Create and fill the parameters in the parameters.yml file, then run the following command:

Note: Only Greenplum DB will be installed.

ansible-playbook install.yml -e @parameters.yml

Manual Uninstalling

Run the following command:

ansible-playbook uninstall.yml -e @parameters.yml

Note:

  • For uninstall you need configure parameters "gpdb_nodes:"
  • To clean up data from PVs, use "keep_data: false" and set parameter "pg_cluster_name:" to gpdb

Manual Installation Using Artifactory

You can obtain an artifact and prepare the solution by yourself.  page. You can download, unzip, and prepare the artifact.

For example:

wget -o gpdb.zip ${ARTIFACT_LINK}
unzip -q gpdb.zip
./gpdb/gpdb/ansible/prepare.sh

The solution distribution is located in the gpdb directory.

After that, go to the gpdb/gpdb/ansible directory, fill parameters.yml, and run the installation:

ansible-playbook install.yml -e @parameters.yml

Installation from Jenkins

Go to the jenkins/jobs directory. Copy its contents to your Jenkins CI.

Note: These jobs require the Jenkins pipeline plugin.

After that, the greenplum-db-deploy deploy job can be found in the gpdb folder.

Once you are done, you may launch these jobs. The general pipeline flow is as follows:

  1. Read the job parameters, then generate additional ones (based on job parameters).
  2. Override playbook defaults by running ansible with -e key and by passing all these variables.
  3. Perform the installation by running the installer.yml playbook.

Parameters

This section describes the parameters that are available to the user during the deployment.

  • force - Ignores some errors that are treated as fatal during normal installation flow (For example, a failed prerequisites check will end up in a failed installation). Avoid setting this parameter to true unless you fully understand why you want to use it and have a good reason to do so.
  • oc_host - The domain name of a cloud. Only the domain name is permitted. Protocol, port, and other URL parts are not allowed here.
  • oc_project - The target project for the installation procedure. The default value is greenplum-db.
  • oc_username, oc_password - The credentials of the OpenShift user on behalf of which the deployment process will run.
  • number_of_segment - The number of segment nodes. The recommended value is 2. The default value is 2.
  • pv_names - The names of all volumes to be used in this deployment. The number of lines must match the number of Greenplum-DB nodes (number_of_segment * 2 + 2). The list of PVs must correlate with gpdb_nodes.
  • gpdb_pv_selector - The labels of all volumes to be used in this deployment. The number of lines must match the number of Greenplum-DB nodes (number_of_segment * 2 + 2) One label must match with only one PV. Use just one of the options( pv_names orgpdb_pv_selector )
  • gpdb_storage_class - If set, a storage of given class is claimed; otherwise, custom PVs are used (specified by the names in the pv_names parameter).
  • gpdb_storage_classes - The array of storage classes for each Greenplum DB node. If set, a storage of the given class is claimed; otherwise, custom PVs are used (specified by names in the pv_names/gpdb_pv_selector parameter).
  • gpdb_nodes - The array of Greenplum-DB node-selectors that will be used for deployment. The number of lines must match the number of Greenplum-DB nodes (number_of_segment * 2 + 2). The list of PVs must correlate with pv_names.
  • postgresql_params - Optional Postgres configuration settings that will be applied at the initialization of Greenplum-DB nodes.
  • gpdb_limits - OpenShift limits for Greenplum-DB pods. For more information, refer to the Official OpenShift Documentation at https://docs.openshift.com/enterprise/3.1/dev_guide/limits.html. The default value is {gpdb_resources_limit_cpu: 250m, gpdb_resources_limit_mem: 256Mi, gpdb_resources_request_cpu: 125m, gpdb_resources_request_mem: 250Mi}.
  • affinity_term - Optional Severity of the anti-affinity. This parameter should be specified when gpdb_storage_class is set. Possible values are required and preferred. Default value is required. required means that only one pod from primary and mirror pair is scheduled in one node.

Optional parameters for DBaaS installation:

  • install_dbaas - Optional dbaas-agreggator installation. If set to false, dbaas-adapter will be not installed. If true, dbaas-adapter will be installed. The default value is false.
  • dbaas_aggregator_username - dbaas aggregator username to authorize aggregator.
  • dbaas_aggregator_password - dbaas aggregator password to authorize aggregator.
  • dbaas_aggregator_physical_database_identifier - The string identifier to resolve the physical database. The default value is set to OC_PROJECT.
  • dbaas_adapter_address - URL of the adapter for the new database. The default is set to http://dbaas-postgres-adapter.${OC_PROJECT}:8080.
  • dbaas_aggregator_registration_address - The address of the aggregator where the adapter registers its physical database cluster. The default value is set to http://dbaas-aggregator.dbaas:8080/.
  • dbaas_custom_cm_labels - The map of labels that are stored in the dbaas-physical-databases-lables config map. Optional parameter.
  • dbaas_aggregator_registration_username - Username for database registration.
  • dbaas_aggregator_registration_password - Password for database registration.

Parameters for Monitoring installation:

  • influxdb_host, influxdb_port - The location of monitoring InfluxDB. The default values are system-monitor.openshift.sdntest.xyz.com, 8086.
  • influxdb_user, influxdb_password - The credentials of the InfluxDB user.
  • influxdb_db - The name of the InfluxDB database to store the metrics. This should start with the cloud_ prefix. The default value is calculated as cloud_{{ oc_host | lower | regex_replace('[^a-z0-9]','_') }}.
  • monitoring_url - The URL of a monitoring-collector. The default value is http://monitoring-collector:8000.
  • metrics_profile - Optional Profile for the metrics collection. The possible values are PROD and DEV. The default value is PROD. For DEV profile, additional performance metrics (queries stat, tables stat) will be collected. For more information about DEV metrics, refer to the Collector Documentation.

Also, after creating a Host in Zabbix, the following triggers that are related to utility pods should be turned off:

  • All of the triggers for the backup-daemon-robot pod.
  • All of the triggers for the deployment pod.

Parameters for Backup Daemon installation:

  • backup_storage_type - The type of storage to be used by the backup daemon. See the description after this list for details. The default value is hostpath.
  • backup_storage_size - Use for "provisioned" or (optionally) "pv" backup_storage_type.
  • backup_node - The selector that will be used for deployment (optional parameter), for example kubernetes.io/hostname=openshift-node-1-3 or region=database.
  • backup_daemon_smoketests_mode - The size of the smoke testing suite to be executed during installation for backup daemon. The default value is basic. See the description after this list for details.
  • granular_backup_schedule - Schedule for granular backups in cron format. The default value is none, meaning that Scheduler for Granular Backups is turned off.
  • databases_to_schedule - List of databases separated by comma to schedule granular backup. The dafault value is "", meaning that ALL databases will be scheduled.

Note For Backup Daemon installation, the force parameter should be set to true, and granular_backup_schedule should be set to 0 * * * *.


If you want to install DBaaS, the following parameters should be filled:

  cluster_name: gpdb
  postgres_host: greenplum-db
  pg_root_user: gpadmin

Manual Installation Examples

This section provides examples of the end-to-end manual installation flow, including the creation of the PVs and the solution distribution.

Typical installation includes only some of these steps, as the PVs are usually created by the cloud administrator, and the solution distribution is usually pre-built and validated by the release engineering team.

Generic Installation with Custom Volumes and Restricted Rights

The procedure for generic installation with custom volumes is described in this topic.

The following conditions must be met:

  • The project is created in advance by the cloud administrator.
  • The project is annotated with the oc annotate command by an administrator.
  • NodeSelectors for Greenplum DB pods are specified explicitly.
Step 1. Administrative Preparations

First, the administrator should create the project using the following command:

oc new-project greenplum-db

After that, the administrator can change the range of uids (only one uid in this case) that will be assigned to pods of OpenShift using the command:

oc annotate --overwrite namespace greenplum-db openshift.io/sa.scc.uid-range='100600/100600'
Step 2. Fill Parameters

Open the parameters.yml file. Find and configure the following parameters:

number_of_segments: 1

pv_capacities: [
  "4Gi",
  "4Gi",
  "4Gi",
  "4Gi"
]

pv_names: [
  "pv-gpdb-vol-1-node1",
  "pv-gpdb-vol-2-node2",
  "pv-gpdb-vol-3-node3",
  "pv-gpdb-vol-4-node4"
]

gpdb_nodes: [
  "kubernetes.io/hostname=openshift-node-1-1",
  "kubernetes.io/hostname=openshift-node-1-2",
  "kubernetes.io/hostname=openshift-node-1-3",
  "kubernetes.io/hostname=openshift-node-1-4"
]
# Other case you can assign PVCs to PVs by labels
#gpdb_pv_selector: [
#  "mylabel=myvalue1",
#  "mylabel=myvalue2",
#  "mylabel=myvalue3",
#  "mylabel=myvalue4"
#]
Step 3. Run the Installer

Run the following command:

ansible-playbook install.yml -e @parameters.yml

The installation process begins.

Generic Installation without Cluster Admin Rights

To avoid using cluster-admin rights during the installation, the following conditions must be met:

  • The project is created in advance by the cloud administrator.
  • The project is annotated with the oc annotate command by an administrator.
  • All persistent storage should be created with the --owner uid that is given by OpenShift.
  • NodeSelectors for Greenplum DB pods are specified explicitly.
Step 1. Administrative Preparations

First, the administrator should create the project using the following command:

oc new-project greenplum-db

After that, the administrator can change the range of uids (only one uid in this case) that will be assigned to pods of OpenShift using the command:

oc annotate --overwrite namespace greenplum-db openshift.io/sa.scc.uid-range='100600/100600'
Step 2. Fill Parameters

Open the parameters.yml file. Find and configure the following parameters:

gpdb_storage_class: internal-nfs
# The default storage class is used
#gpdb_storage_class:

# Example for empty storage class 
# Or you do not specify this parameter for the same case
#gpdb_storage_class: ""

# Example for multiple storage classes
#gpdb_storage_classes: [
#    "internal-nfs",
#    "internal-nfs",
#    "nfs-hyperv-quoted",
#    "nfs-hyperv-quoted"
#]
number_of_segments: 1

pv_capacities: [
  "4Gi",
  "4Gi",
  "4Gi",
  "4Gi"
]

gpdb_nodes: [
  "kubernetes.io/hostname=openshift-node-1-1",
  "kubernetes.io/hostname=openshift-node-1-2",
  "kubernetes.io/hostname=openshift-node-1-3",
  "kubernetes.io/hostname=openshift-node-1-4"
]
Step 3. Run the Installer

Run the following command:

ansible-playbook install.yml -e @parameters.yml

The installation process will begin.


Hardware Requirements

The following HWE is provided as an example to estimate the project needs.

Component
Minimum Requirements

greenplum-db (x4 nodes)
0.5 vCPU
500 Mb

dbaas adapter*

In general there are 5 components of Greenplum:

  • Greenplum Master 
  • Greenplum Segment
  • Backup Daemon
  • Monitoring Agent
  • DBaaS Adapter

Each service can be installed or upgraded separately, and there are separate parameters for each of them as well as deployment flags in PARAMETERS_YAML

 

In general there are 5 components of Greenplum:

  • Greenplum Master 
  • Greenplum Segment
  • Backup Daemon
  • Monitoring Agent
  • DBaaS Adapter

Each service can be installed or upgraded separately, and there are separate parameters for each of them as well as deployment flags in PARAMETERS_YAML

Limitation

Before running installation check:

  • Check openshift client version is matching to existing environment version.
  • Node labels which service is running on in case of shared environment  ("os_node_labels", "node_selector").
  • Postgres related information such as PG project, DB name, connection parameters, etc. PG default password for "postgres" user is "paSSw0rd".
  • pg_cluster_name to be set as gpdb.
  • Check CPU and memory requests or limits are properly set.
  • keep the "install_dbaas parameter" as "set true" in order to install dbass.
  • Below Images parameters to be used in deployment should be set properly.
    1. pg_backup_image
    2. dbaas_image
    3. pg_metric_collector_image
    4. gpdb_image

Installation

Step 1. Administrative Preparations

First, the administrator should create the project using the following command:

oc new-project greenplum

After that, the administrator can change the range of uids (only one uid in this case) that will be assigned to pods of OpenShift using the command:

oc annotate --overwrite namespace greenplum openshift.io/sa.scc.uid-range='100600/100600'

Add the required directories on nodes and create the necessary persistent volumes:

Directory creation on nodes Collapse source

mkdir -p /var/lib/origin/openshift.local.volumes/pv-gpdb-vol-1-node-2-4_1/

chown -R 26:26 /var/lib/origin/openshift.local.volumes/pv-gpdb-vol-1-node-2-4_1/

chmod 777 /var/lib/origin/openshift.local.volumes/pv-gpdb-vol-1-node-2-4_1/

chcon -R unconfined_u:object_r:container_file_t:s0 /var/lib/origin/openshift.local.volumes/pv-gpdb-vol-1-node-2-4_1/

We should perform above steps for each node before creating PV's.

oc create -f pv-gpdb-vol-1-node-2-4.yml

pv-gpdb-vol-1-node-2-4.yml 

apiVersion: v1

kind: PersistentVolume

metadata:

annotations:

pv.kubernetes.io/bound-by-controller: "yes"

creationTimestamp: null

finalizers:

- kubernetes.io/pv-protection

labels:

filesystem: ext4

mode: "777"

mount-options: defaults

node: node-2-4

readiness: Ready

volume-pool: block_device

name: pv-gpdb-vol-1-node1

spec:

accessModes:

- ReadWriteOnce

capacity:

storage: 20Gi

hostPath:

path: /var/lib/origin/openshift.local.volumes/pv-gpdb-vol-1-node-2-4

persistentVolumeReclaimPolicy: Retain

status: {}

Sample .yml files for creating other persistent volumes:

pv-gpdb-vol-1-node-2-4_1.yml

pv-gpdb-vol-1-node-2-5.yml

pv-gpdb-vol-1-node-2-5_1.yml

Step 2. Fill Parameters

Open the parameters.yml file. Find and configure the following parameters:

parameters.yml

Parameters.yml 

####################################################################################################

# This file is auto-generated and contains merged defaults for all roles.

# Fill it carefully with required values and save it for future operations.

####################################################################################################

####################################################################################################

# Parameters group: OpenShift

####################################################################################################

# OpenShift cluster address.

oc_host: xyz

# This URL used by OpenShift client.

oc_openshift_url: https://{{ oc_host }}:8443

# OpenShift deployment user credentials.

oc_username: naya0320

oc_password: xyz**

# OpenShift project name. Created, if not exists.

oc_project: greenplum

####################################################################################################

# Parameters group: Common

####################################################################################################

# If set to 'true', installer ignores minor errors, if any.

force: true

# NodeSelector, used by deployments.

nodes_selector_key: region

nodes_selector_value: primary

#number_of_segments: 2

pv_capacities: [

"20Gi",

"20Gi",

"20Gi",

"20Gi"

]

pv_names: [

"pv-gpdb-vol-1-node1",

"pv-gpdb-vol-1-node2",

"pv-gpdb-vol-1-node3",

"pv-gpdb-vol-1-node4"

]

gpdb_nodes: [

"kubernetes.io/hostname=node-2-4",

"kubernetes.io/hostname=node-2-5",

"kubernetes.io/hostname=node-2-4",

"kubernetes.io/hostname=node-2-5"

]

####################################################################################################

# Parameters group: Postgres

####################################################################################################

# PG cluster name, associated with desired cluster.

pg_cluster_name: gpdb

# PG cluster entry point.

postgres_host: pg-{{ pg_cluster_name }}

postgres_port: 5432

# Administrative user credentials.

pg_root_user: postgres

pg_root_password: paSSw0rd

####################################################################################################

# Parameters group: Backuper

####################################################################################################

# Global eviction policy: period and action.

eviction_policy: "7d/delete"

# Eviction policy flag from granular.

# posible values: True, False

use_eviction_policy_first: "False"

# evistion policy for namespaces

# used only if use_eviction_policy_first=True

# if no EVICTION_POLICY_GRANULARS specified then used eviction_policy for all

# example:

#

#eviction_policy_granulars: {

# 'default': '1y/delete,2m/1m',

# 'system1': '5d/delete'

#}

#

#

eviction_policy_granulars: {

}

# output debug information into log

debug: false

# default eviction policy for binary backups

eviction_policy_binary: "7d/delete"

# Schedule for backups.

backup_schedule: "0 0/6 * * *"

# Schedule for granular backups.

granular_backup_schedule: "none"

# List of data bases for granular backups.

databases_to_schedule: ""

# Swift container or s3 bucket name. Ignore, if volume storage is used.

container: backups

# Specifies if WAL archive should be configured in postgresql. Allowed values are 'enabled' or 'disabled'.

# This setting can cause major disk usage impact, because each postgres WAL file size is 16MB.

wal_archiving: disabled

# Optional. Number of workers to serve public endpoints on port 8080 like /status, /backups/request.

public_endpoints_workers_number: 2

# Optional. Number of workers to serve private endpoints on port 8081 like /backups/list, /backups/delete, /backups/download.

private_endpoints_workers_number: 2

# Optional. Number of workers to serve WAR archive endpoints on port 8082 like /archive/download, /archive/upload, /archive/delete.

archive_endpoints_workers_number: 2

# Optional. Timeout for worker per request in seconds. Default is 6 hours.

workers_timeout: 21600

# Storage type: one of 'provisioned', 'provisioned-default', 'pv', 'pv_label' 'hostpath', 'aws_s3' or 'swift'.

# For 'provisioned', 'provisioned-default', 'pv' and 'hostpath' values you have to fill BackuperPVStorage parameters group.

# For 'aws_s3' value you have to fill BackuperS3Storage parameters group.

# 'swift' support is frozen and this option is not recommended until you were explicitly instructed to use it.

# For 'pv_label' value you have to fill backup_pv_selector parameters

backup_storage_type: hostpath

####################################################################################################

# Parameters group: BackuperPVStorage

####################################################################################################

# Use only for hostpath' backup_storage_type.

# Directory on the node, where backups will be stored.

host_path: /data/{{ oc_project }}/backups

# Use only for 'provisioned' backup_storage_type.

# With this option, a storage of given class is claimed instead of explicitly specified or

# automatically created PV.

#

# You may get a list of availabel storage classes using the following command:

#

# $ oc get storageclasses

#backup_storage_class: internal-nfs

# Use for 'provisioned', 'provisioned-default' or (optionally) 'pv' backup_storage_type.

# If specified with 'pv' backup_storage_type, this option overrides

# the value of the 'size' label on PV.

#backup_storage_size: 1Gi

# This parameter allows to explicitly set nodeSelectors for backuper pod.

# Use only for 'pv' backup_storage_type and if you have restricted rights

#backup_node: "kubernetes.io/hostname=paas-infra-node-1-2"

####################################################################################################

# Parameters group: BackuperSwiftStorage

####################################################################################################

# Swift authentication REST API URL.

swift_auth_url: http://localhost:5000/v2.0

# Swift authentication type. Either 'basic' or 'keystone'.

auth_type: basic

# Swift credentials.

swift_user: username

swift_password: password

# For keystone authentication only.

tenant_name: DEV.TENANT

####################################################################################################

# Parameters group: BackuperS3Storage

####################################################################################################

aws_s3_endpoint_url:

aws_access_key_id:

aws_secret_access_key:

####################################################################################################

# Parameters group: BackupsEncryption

####################################################################################################

# Source of the key, now `kubernetes` (secret) only is supported

#key_source: kubernetes

# Named of the secret where pass phrase is stored

#key_name: backups-encryption-key

# Actual pass phrase

#pass_phrase: password

####################################################################################################

# Parameters group: Images

####################################################################################################

# Image to be used in this deployment.

pg_backup_image: xyz:17014/product/prod.platform.ha_postgres-backup-daemon:1.19.4_20191118-063021

# image to be used in dbaas deployment

dbaas_image: xyz::17014/product/prod.platform.ha_dbaas_postgress:1.19.4_20191118-063030

# Images to be used by monitoring deployment.

pg_metric_collector_image: xyz::17014/product/prod.platform.ha_pg-patroni-metric-collector:1.19.4_20191118-063030

####################################################################################################

# Parameters group: Authentication

####################################################################################################

# specify this parameter if you want to secure backup endpoints

# via Basic Authentication

backup_auth: false

####################################################################################################

# Parameters group: Smoketests

####################################################################################################

# Backuper smoketests mode.

# One of 'destructing', full', 'basic', 'none'.

backup_daemon_smoketests_mode: basic

# DbaaS smoketests mode.

dbaas_smoketests_mode: basic

####################################################################################################

# Parameters group: DbaaS-install-params

####################################################################################################

# Installing dbass pg-aggregator or not

install_dbaas: true

# dbaas-aggregator user credentials

dbaas_aggregator_username: dbaas-aggregator

dbaas_aggregator_password: dbaas-aggregator

# dbaas-aggregator service name

pg_adapter_openshift_service_name: dbaas-postgres-adapter

#dbaas_aggregator_physical_database_identifier: "{{ oc_project }}"

#dbaas_adapter_address: http://dbaas-postgres-adapter.{{ oc_project }}:8080

#dbaas_aggregator_registration_address: http://dbaas-aggregator.dbaas:8080/

# This parameter will be stored as is in `dbaas.physical_databases.registration.labels.json`

#dbaas_custom_cm_labels: {'label1': 'value1', 'label2': 'value2'}

# dbaas-aggregator-registration user credentials

dbaas_aggregator_registration_username: cluster-dba

dbaas_aggregator_registration_password: Bnmq5567_PO

####################################################################################################

# Parameters group: Greenplum

####################################################################################################

number_of_segments: 1

# Resources limits and requests.

gpdb_resources_limit_cpu: 1000m

gpdb_resources_limit_mem: 1Gi

gpdb_resources_request_cpu: 500m

gpdb_resources_request_mem: 500Mi

gpdb_image: xyz/product/prod.platform.ha_gpdb:release_6.0.1_nc1_20191118-080603

gp_admin_password: paSSw0rd

postgresql_params: |

shared_buffers=125MB

effective_cache_size=512MB

work_mem=32MB

maintenance_work_mem=64MB

max_connections=250

max_prepared_transactions=250

# Names of custom PVs to be used by gpdb pods. There should be exactly {{ number_of_segments + 1 }} entries.

# Do not use this parameter, if you wish to use autoprovisioned storage.

# The first pv is Master PV

#pv_names: [

# "pv-pg-gpdb-{{ oc_project }}-{{ pg_cluster_name }}-node1",

# "pv-pg-gpdb-{{ oc_project }}-{{ pg_cluster_name }}-node2"

#]

# If set, a storage of given class is claimed, otherwise,

# custom PVs are used (specified by names in 'pv_names' parameter).

#

# You may get a list of available storage classes using the following command:

#

# $ oc get storageclass

#gpdb_storage_class: internal-nfs

# Expected storage size for gpdb instances. Specify, if you use autoprovisioned storage.

# There should be exactly {{ number_of_segments + 1 }} entries.

#pv_capacities: [

# "4Gi",

# "4Gi"

#]

####################################################################################################

# Parameters group: Monitoring

####################################################################################################

# InfluxDB location.

influxdb_host: system-monitor.xyz,com

influxdb_port: 8086

# InfluxDB user credentials.

influxdb_user: admin

influxdb_password: admin

# InfluxDB database name.

influxdb_db: "cloud_{{ oc_host | lower | regex_replace('[^a-z0-9]','_') }}"

# Profile for metrics collection, possible value are prod and dev

# For dev profile additional performance metrics (queries stat, tables stat)

# Will be collected

metrics_profile: prod

Step 3. Run the Installer

Manual Installation Using Artifactory

wget -o gpdb.zip ${ARTIFACT_LINK}

unzip -q gpdb.zip

./gpdb/gpdb/ansible/prepare.sh

gpdb.zip

The solution distribution is located in the gpdb directory.

After that, go to the gpdb/gpdb/ansible directory, fill parameters.yml, and run the installation:

ansible-playbook install.yml -e @parameters.yml

Checks

  • Ensure that job is completed successfully
  • Go to the openshift project and check if all the components came properly & service is present and healthy.

Post a Comment

Previous Post Next Post