Usually Greenplum is installed using Ansible.
Installation process and parameters are described in a platform guide :
Topics covered in this section:
- Prerequisites
- Greenplum DB Deployment
- Manual Installation Examples
- Updating Existing Installation
- Hardware Requirements
Prerequisites
The following software must be installed on the deployment host:
- Any Linux-based distribution
- ansible from http://docs.ansible.com/ansible/latest/intro_installation.html ver. 2.4+
- jq from https://stedolan.github.io/jq/download ver. 1.5+
- oc from https://github.com/openshift/origin/releases (OpenShift client tools) ver. 3.11.0+
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:
- Read the job parameters, then generate additional ones (based on job parameters).
- Override playbook defaults by running ansible with
-e
key and by passing all these variables. - 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 totrue
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 isgreenplum-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 is2
. The default value is2
.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 withgpdb_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 thepv_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 thepv_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 withpv_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 whengpdb_storage_class
is set. Possible values arerequired
andpreferred
. Default value isrequired
.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 tofalse
, dbaas-adapter will be not installed. Iftrue
, dbaas-adapter will be installed. The default value isfalse
.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 toOC_PROJECT
.dbaas_adapter_address
- URL of the adapter for the new database. The default is set tohttp://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 tohttp://dbaas-aggregator.dbaas:8080/
.dbaas_custom_cm_labels
- The map of labels that are stored in thedbaas-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 aresystem-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 thecloud_
prefix. The default value is calculated ascloud_{{ oc_host | lower | regex_replace('[^a-z0-9]','_') }}
.monitoring_url
- The URL of a monitoring-collector. The default value ishttp://monitoring-collector:8000
.metrics_profile
- Optional Profile for the metrics collection. The possible values arePROD
andDEV
. The default value isPROD
. ForDEV
profile, additional performance metrics (queries stat, tables stat) will be collected. For more information aboutDEV
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 ishostpath
.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 examplekubernetes.io/hostname=openshift-node-1-3
orregion=database
.backup_daemon_smoketests_mode
- The size of the smoke testing suite to be executed during installation for backup daemon. The default value isbasic
. See the description after this list for details.granular_backup_schedule
- Schedule for granular backups in cron format. The default value isnone
, 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.
- pg_backup_image
- dbaas_image
- pg_metric_collector_image
- 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
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.