Skip to content
This repository has been archived by the owner on May 24, 2024. It is now read-only.

Latest commit

 

History

History
141 lines (98 loc) · 6.07 KB

File metadata and controls

141 lines (98 loc) · 6.07 KB

Greenplum Database Release

This repository contains 3 different topics that support packaging and distribution of Greenplum Database based on the source code of the Greenplum Database Server available at github.com/greenplum-db/gpdb.

  1. RPM Spec files and Debian Control files used for creating RPM and DEB packages of the Greenplum Database Server
  2. An application that can be used with the RPM Spec or Debian Control files and a compiled archive of the Greenplum Server to create a package. This application supports both local use and in a Concourse pipeline.
  3. The Concourse pipeline used to compile, package, and distribute new releases of Greenplum Database to various locations.

Table of Contents

  1. Greenplum Database Server RPM and DEB files
    1. Packaging Specification and Behavior
  2. Build RPM and DEB from compiled archive
    1. Locally
    2. Concourse
  3. Greenplum Database Concourse release pipeline

Greenplum Database Server RPM and DEB files

Packaging Specification and Behavior

The full behavior and user experience of the packages involves many code bases and components coming together. The following is documentation that captures in one location the specification and behavior of a Greenplum Database Server package.

  1. Greenplum Server RPM Packaging Specification

Build RPM and DEB from compiled archive

Support Matrix

Concourse Builds

Platform Greenplum Major Version
Centos 6, 7 5, 6, 7
Ubuntu 18.04 6, 7

Local Builds

Platform Greenplum Major Version
Centos 6, 7 4, 5, 6, 7
Ubuntu 18.04 5, 6, 7

If it's not listed in the table, it's not supported.

Locally

Create a RPM package locally for a given tarball of the Server, a platform, and a version.

export BIN_GPDB_TARGZ=[Path to bin_gpdb.tar.gz]
export CENTOS_VERSION=[Major Version Number]
export GPDB_VERSION=[Version String]
make local-build-gpdb-rpm

Create a DEB package locally for a given tarball of the Server, and version.

Note: When building Greenplum 5 debian packages, the yq utility is required. Please refer to the installation guide

export BIN_GPDB_TARGZ=[Path to bin_gpdb.tar.gz]
export GPDB_VERSION=[Version String]
make local-build-gpdb-deb

Concourse

A Concourse task yaml and accompanying scripts is provided to allow creation of packages in a Concourse pipelines.

(RPM Only): Greenplum 6 and 7 uses the ci/concourse/tasks/build_gpdb.rpm.yml and Greenplum 5 uses ci/concourse/tasks/build_gpdb5_rpm.yml for building RPM packages. (DEB Only): Greenplum 6 and 7 uses the ci/concourse/tasks/build_gpdb_deb.yml (refer to optional gpdb_src task input below.

Task Inputs

  • greenplum-database-release/ = concourse volume containing this repository in order to retrieve the scripts to do the packaging
  • bin_gpdb: folder contains single tarball with pattern *.tar.gz, which is the binary of compiled code
  • license_file: folder contains license file with pattern *.txt

Optional:

  • gpdb_src: the optional folder containing source code of the Greenplum. It's only used for OSS (open-source software) packaging. It used to retrieve LICENSE, COPYRIGHT files.

Task Outputs

(RPM Only): gpdb_rpm_installer/: the produced rpm file will be put under this folder. (DEB Only): gpdb_deb_installer/: the output Debian package will put under this folder

Task Paramaters

Required Concourse task environment paramaters:

  • GPDB_OSS: whether we are building an OSS version of the package, if not defined, it's false. If this value is true, gpdb_src folder has to be provided with LICENSE and COPYRIGHT files.
  • GPDB_LICENSE: the name of the license the Greenplum is distributed under, it's currently VMware Software EULA
  • GPDB_URL: the URL for more information about Greenplum, it's currently https://github.com/greenplum-db/gpdb for OSS, and https://network.tanzu.vmware.com/products/pivotal-gpdb/ for enterprise
  • (RPM Only) GPDB_NAME: the package name, e.g. greenplum-db-6 for GP6, or greenplum-db-7 for GP7, or greenplum-db-5 for GP5.
  • (RPM Only) PLATFORM: rhel6, rhel7. This should depend on which image used to package the software
  • (RPM Only) GPDB_RELEASE: the number of time this version of Greenplum is released. Unless package same version multiple times, it should be 1.
  • (DEB Only) GPDB_NAME: use only greenplum-db.
  • (DEB Only) GPDB_BUILDARCH: target architecture, default is amd64
  • (DEB Only) GPDB_DESCRIPTION: long description of this package, default is Pivotal Greenplum Server
  • (DEB Only) GPDB_PREFIX: installation location of this package, default is /usr/local/

Task Environment

A Docker environment must be used that contains the necessary build tools for either RPM or DEB package building. Image that support this can be found in gp-image-baking.

Example

- task: create_gpdb_rpm_package
    file: greenplum-database-release/ci/concourse/tasks/build-gpdb-rpm.yml
    image: gpdb6-centos6-build
    input_mapping:
      bin_gpdb: bin_gpdb_centos6
    params:
      PLATFORM: "rhel6"
      GPDB_NAME: greenplum-db-6
      GPDB_RELEASE: 1
      GPDB_LICENSE: VMware Software EULA
      GPDB_URL: https://github.com/greenplum-db/gpdb
      GPDB_OSS: true

Greenplum Database Concourse release pipeline

A Concourse pipeline application that builds, integrates, packages, and distributes a release of Greenplum Database 6.

Dependencies

Access to https://prod.ci.gpdb.pivotal.io/

Installation

make set-prod

Development

make set-dev