• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Orchestrate a Pega Platform™ deployment by using Docker, Kubernetes, and Helm to take advantage of Pega Platform Cloud Choice flexibility.

Pega deployment on Kubernetes

This project provides Helm charts and basic examples for deploying Pega on Kubernetes. You will also need to download the required installation kit from the Pega Community which includes rules and data to preload into your relational database. Deploying Pega on Kubernetes requires Pega Infinity 8.2 or later.

Build Status GitHub release

Supported Kubernetes environments

Pegasystems has validated deployments on the following Kubernetes IaaS and PaaS environments.

  • Open-source Kubernetes
  • MiniKube for personal deployments - see the MiniKube runbook
  • Microsoft Azure Kubernetes Service (AKS) - see the AKS runbook
  • Amazon Elastic Kubernetes Service (EKS) - see the EKS runbook
  • Google Kubernetes Engine (GKE) - see the GKE runbook
  • Red Hat OpenShift Container Platform (Self-managed) - see the OpenShift runbook
  • VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) - see the TKGI runbook

Pega provides multiple runbooks that are Kubernetes-environment specific for clients looking for minimum guidance for configuring and deploying Pega Platform in their organization's Kubernetes account. Pega also provides runbooks for patching or updating Pega Platform with near-zero-downtime. To access the runbooks, click on the appropriate link in the list above.

Because open-source Kubernetes depends on your specific configuration, Pega does not provide a single open-source Kubernetes runbook. Use the Pega helm charts documentation to configure your deployment, with Preparing your local Linux system, Preparing your local Windows 10 system, and the Getting started section below as your starting points.

The helm charts support running on Kubernetes releases that are in Maintenance and Active Support at the time of the helm chart’s release. To review the date of a Pega helm chart release, see Releases; to review the latest matrix of Kubernetes release support, see Kubernetes EOL policy.

Getting started

This project assumes you have an installation of Kubernetes available and have Helm installed locally. The following commands will verify your installation. The exact output may be slightly different, but they should return without error.

$ helm version
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}

If this command does not successfully return, install Helm 3 for your operating system. See Helm Installation for more information. If you are running Helm 2.x, you will see both a client and server (tiller) portion returned by the version command. Some of the commands below will also differ slightly for Helm 2.x.

  1. Add the Pega repository to your Helm installation.
$ helm repo add pega https://pegasystems.github.io/pega-helm-charts
  1. Verify the new repository by searching it.
$ helm search repo pega
NAME       	            CHART VERSION	APP VERSION	DESCRIPTION
pega/pega  	              1.4.4        	           	Helm chart to configure required installation and deployment configuration settings in your environment for your deployment.
pega/addons	              1.4.4        	1.0        	Helm chart to configure supporting services and tools in your environment for your deployment.
pega/backingservices      1.4.4        	            Helm Chart to provision the latest Search and Reporting Service (SRS) for your Pega Infinity deployment

There are three charts available in this repository - addons, backingservices, and pega.

The addons chart installs a collection of supporting services and tools for a Pega deployment. The services you will need to deploy will depend on your cloud environment - for example you may need a load balancer on Minikube, but not for EKS. These supporting services are deployed once per Kubernetes environment, regardless of how many Pega Infinity instances are deployed.

The backingservices chart installs services like 'Search and Reporting Service' (SRS) that you can configure with one or more Pega deployments. You can deploy these backing services in their own namespace; you can isolate the services to a single environment or share them across multiple Pega Infinity environments.

Example: Single backing service shared across all pega environments:

backingservice 'Search and Reporting Service' deployed and the service endpoint configured across dev, staging and production pega environments. The service provides isolation of data in a shared setup.

Multiple backing service deployments:

You can deploy more than one instance of backing service deployments, in case you want to host a separate deployment of 'Search and Reporting Service' for non-production and production deployments of Pega Infinity. You must configure the appropriate service endpoint using the Pega Infinity deployment values.

  1. Download the values file for pega/pega, pega/addons and pega/backingservices.
$ helm inspect values pega/pega > pega.yaml
$ helm inspect values pega/addons > addons.yaml
$ helm inspect values pega/backingservices > backingservices.yaml
  1. Edit your values yaml files to specify all required information and customizations for your environment.

When making customizations for your environment, check the Pega Platform Support Guide Resources to verify that those changes are supported by your Pega Platform version.

  1. Create namespaces for your Pega deployment, backingservices and the addons (if applicable for your environment).
$ kubectl create namespace mypega
$ kubectl create namespace pegaaddons
$ kubectl create namespace pegabackingservices
  1. To install the backingservices chart, run the following helm command after configuring your values.yaml file (if applicable for your environment).
$ helm install backingservices pega/backingservices --namespace pegabackingservices --values backingservices.yaml
  1. To install the addons chart, run the following helm command after configuring your values.yaml file (if applicable for your environment).
$ helm install addons pega/addons --namespace pegaaddons --values addons.yaml
  1. With addons and backservices deployed, you are ready to deploy Pega Infinity using the pega chart. Before installing using the chart, it is a good idea to review the detailed deployment guide to understand how Pega deploys as a distributed system. Running a Helm installation using the pega chart installs a Pega Infinity instance into a specified namespace. After you edit the chart with your configuration requirements, run the following command to install the pega chart.
$ helm install mypega pega/pega --namespace mypega --values pega.yaml

Important: To edit the charts and deploy using a local version of the pega/addons, pega/backingservices, or pega/pega charts, you must include the filepath to your local chart directory in your Helm chart reference.

Tip: To delete your deployment of Pega nodes, enter the command (this will not delete your database):

$ helm delete release --namespace mypega

Staying current with a Pega Platform upgrade or patching in zero-downtime

Upgrades

To upgrade Pega Platform software deployed in a Kubernetes environment with a zero-downtime process, you must do the following:

  1. Download the latest Pega software from Pega Digital Software Delivery.
  2. Update your repository to use the latest Helm charts and add several parameters to your pega.yaml Helm chart.
  3. Invoke the upgrade process by using the helm upgrade release --namespace mypega command.

For complete details, see the Pega-provided runbook, Upgrading Pega Platform in your deployment with zero-downtime.

To upgrade your strategic application, use the latest Upgrade Guide available for your strategic application, which is separate from Pega Platform software. You can locate the appropriate upgrade guide for your installed application from the page, All Products.

Patches

To apply a Pega Platform patch with zero downtime to your existing Pega platform software, you must download the latest installer Docker images from Pega Digital Software Delivery and change several options in your Pega Helm chart. For details and helpful resources explaining the Pega Platform patch process, including the Pega Infinity patch policy, see Applying the latest patch. For step-by-step guidance to apply a Pega Platform patch, see the Pega-provided runbook, Patching Pega Platform in your deployment.

Downloading Docker images for your deployment

Clients with appropriate licenses can request access to several required images from the Pega-managed Docker image repository. With your access key, you can log in to the image repository and download these Docker images to install the Pega Platform onto your database. After you pull the images to your local system, you must push them into your private Docker registry.

To download your preferred version of the Pega image to your local system, specify the version tag when by entering:

$ sudo docker pull pega-docker.downloads.pega.com/platform/pega:<version>

Digest: <encryption verification>
Status: Downloaded pega-docker.downloads.pega.com/platform/pega:<version>

For details about downloading and then pushing Docker images to your repository for your deployment, see Using Pega-provided Docker images.

From Helm chart versions 2.2.0 and above, update your Pega Platform version to the latest patch version.

Debugging failed upgrades using helm commands

Upgrades using helm charts may fail due to a variety issues, including an invalid configuration, a networking issue, or a platform issue. To diagnose the issue or issues, review failure events in the logs and check for a detailed error; after understanding its cause, you can begin troubleshooting the issue or issues.

To help diagnose an issue, you can find the best information by retrieving relevant logs by trying different contexts such as the following 'kubectl log' options. kubectl logs <pega-zdt-upgrade-podname> -n <namespace>

You can use the following option to improve the usefulness of the log output -f, --follow=false: Specify if the logs should be streamed.

kubectl logs -f <pod-id> -n <namespace>

--tail: Print the last number of lines that you specify in the log file, for example, that last 100 lines in the specified pod. By default this option (with no selector specified so tail=-1) displays all lines of the log file

kubectl logs --tail=100 <pod-id> -n <namespace>

If a container is running, you can log in and run the kubectl log command in the container to review the results, or you can copy the log file in /tmp/foo from a pod to a local temporary directory, /tmp/bar to access the files. kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar

Contributing

This is an open source project and contributions are welcome. Please see the contributing guidelines to get started.

Versioning

New versions of this Helm Chart may be released at any time. Versions are defined using semantic versioning:

  • Major: Pega introduces new features or functionality that results in breaking backwards compatibility with previous chart versions. Examples:
    • The new values.yaml or maps (config/deploy) cannot be used to deploy previously released Docker image versions.
    • A new, required dependency on a specific Pega Platform version or dependent docker image.
  • Minor: Pega adds new functionality and maintains backwards compatibility. Examples:
    • Support for new features while maintaining existing functionality.
    • Support for new, opt-in configurations.
  • Patch: Pega fixes bugs and maintains backwards compatibility between minor releases. Examples:
    • Bug fixes or known issue resolutions.
    • Security vulnerability enhancements.

Helm charts and Docker images compatibility

Both Helm charts and Docker images undergo frequent updates; new Helm chart releases may appear at any time, and the latest patch versions of the Docker images are rebuilt nightly as part of software maintenance (for more information, see Pega-provided Docker images). This might result in incompatibility issues during the install and upgrade process. To ensure that Helm charts and Docker images are compatible, do one of the following actions:

  • If you update your Helm charts to the latest version to take advantage of new features, update your Docker images to the latest version as well (latest build of the latest patch).
  • If you upgrade your Pega Platform to a later version, use the latest Docker image build and latest Helm chart version.

More Repositories

1

docker-pega-web-ready

Docker project for generating a tomcat docker image for Pega
Shell
56
star
2

pega-tracerviewer

The tracer viewing tool helps users understand and debug Pega tracer files. To download the tool, click on the "release" link, scroll to the bottom, and download the tracerviewer zip file.
Java
41
star
3

uplus-wss

The Uplus application showcases how a web application can be integrated with the Pega Platform around Mashup, Co-Browse, Pega chat and Knowledge Management as well as with the Customer Decision Hub (CDH) for offers and realtime streams.
JavaScript
39
star
4

pega-datascientist-tools

Pega Data Scientist Tools
Python
33
star
5

constellation-ui-gallery

This open-source repository provides a collection of ready-to-use and customizable Constellation DX components. Use this resource to gain inspiration, best practices, and a solid foundation for implementing custom components.
TypeScript
32
star
6

pega-logviewer

The log viewing tool helps users understand and debug Pega log files. To download the tool, click on the "release" link, scroll to the bottom, and download the logviewer zip file.
Java
28
star
7

building-bridges

Simple website, where users create surveys and ask questions. These questions can be voted on (up or down) -survey is sorted by the number of upvotes substracted by number of downvotes.
Python
19
star
8

react-sdk

The React SDK provides Pega customers with the ability to build DX components that connect Pega’s ConstellationJS Engine APIs with a design system other than the Pega Constellation design system.
JavaScript
16
star
9

api2swagger

Auto generation of Swagger JSON by invoking REST API
Java
13
star
10

mashup-webcomponent

Web Component using the DX API to expose a case type as a Mashup. A complete demo of the application is available at https://pegasystems.github.io/mashup-webcomponent
JavaScript
12
star
11

mmock

Kotlin Multiplatform Mock Framework
Kotlin
10
star
12

pega-alertanalyzer

AlertAnalyzer is a tool that can be used to analyze PegaRULES ALert log files and render insights into performance issues
Java
8
star
13

dx-flutter-demo

Demo Flutter app that integrates with Pega's DX API
Dart
7
star
14

somaria

Model-driven data visualization
JavaScript
6
star
15

pega-api

The Pega API provides a set of built-in REST services for Pega 7 applications. This RAML specification describes the Pega API in a clear human and machine-readable format. Make calls to the Pega API directly from software tools that recognize RAML-formatted API documentation, such as MuleSoft Anypoint Studio.
RAML
6
star
16

dataset-integrations

Kafka custom serializer/deserializer implementations
Java
5
star
17

charlatan

Charlatan is a library created for Apache Kafka in order to substitute real Zookeeper with Zookeeper imitation. Charlatan was tested only with Apache Kafka version 0.11.0.1.
Java
5
star
18

offline-diagnostic-tool

Debugging and validating offline-enabled apps with the JavaScript console [BETA]
JavaScript
4
star
19

web-components-sdk

The Web Components SDK is designed to provide customers with a bridge from the Constellation JavaScript Engine (which is not open sourced) via Web Components. This is important for clients who do not want to the use the out-of-the-box React-based implementation of Constellation. The SDK provides implementations of many container and presentation components written as Web Components (and not as React components) that neither expect nor rely on React.
TypeScript
4
star
20

angular-sdk

The Angular SDK is designed to provide customers with a bridge from the Constellation JavaScript Engine (which is not open sourced) via Angular. This is important for clients who do not want to the use the out-of-the-box React-based implementation of Constellation. The SDK provides implementations of many container and presentation components written as Angular components (and not as React components) that neither expect nor rely on React.
TypeScript
4
star
21

fringeutils-common

Java
3
star
22

react-sdk-components

The React SDK Components repo is used to create the @pega/react-sdk-components and @pega/react-sdk-overrides npm packages used by the Pega Constellation React SDK. These packages provide the initial set of components used by the React SDK to render DX Components with a design system other than Pega Constellation design system.
TypeScript
3
star
23

nlp-model-containers

Jupyter Notebook
2
star
24

docker-mock-web-service

This repository contains a simple web service that can be used for testing.
Python
2
star
25

docker-mock-grpc-service

Java
1
star
26

coffeescript-mockable-http-proxy

Very simple http proxy, that is steerable (until some point) from remote.
CoffeeScript
1
star
27

pega-launchpad-functions

Example code for creating Functions in Pega Launchpad applications
Java
1
star
28

mobile-app-testing

Templates, examples and resources for testing mobile apps built with the Pega 7 Platform.
Ruby
1
star