View on GitHub

pega-helm-charts

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

Constellation UI setup

Please refer to Constellation service deployment for instructions related to the pegastatic content delivery setup. Once that is complete please proceed with the instructions below for the constellation appstatic service setup.

ConstellationUI helm chart

The ConstellationUI helm chart is used to deploy an instance of the constellation appstatic service into a Kubernetes environment. The service is capable of serving multiple client environments. We encourage having a single deployment for all your systems. The following readme provides a detailed description of the parameter configurations and their default values as applicable.

Prerequisites

AWS Cloud

  1. The ConstellationUI helm charts for AWS provider use an application load balancer to expose the service. Before installing the constellationui helm chart please follow the prerequisites section of the following AWS documentation and make sure your cluster is configured accordingly.

  2. If you are using a custom domain please make sure you have a valid certificate imported or created in ACM.

https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html

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 constellation appstatic service.

To download the constellation appstatic service image, specify the version and use the following command

$ sudo docker pull pega-docker.downloads.pega.com/constellation-appstatic-service/docker-image:xxxxxxx

Digest: <encryption verification>
Status: Downloaded pega-docker.downloads.pega.com/constellation-appstatic-service/docker-image:xxxxxxx

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

Constellationui runtime configuration

The values.yaml file provides configuration options to define the values for the deployment resources of the constellation appstatic service.

Configuration settings

Configuration Usage
enabled Enables the constellation appstatic service. Set to true to enable constellation appstatic service in the kubernetes environment.
cloudProvider Deprecated, use provider. Specify the cloud provider details. Accepted values are aws.
provider Enter your Kubernetes provider. Accepted values are aws, gke or k8s.
awsCertificateArn Specify the arn for the AWS ACM certificate.
podLabels Provide custom labels for Pods as metadata to be consumed by other tools and libraries.
deployment.name Specify the name of constellation deployment. Your deployment creates resources prefixed with this string.
deployment.labels Provide custom labels for the deployment as metadata to be consumed by other tools and libraries.
service.port The port of the tier to be exposed to the cluster. The default value is 3000.
service.targetPort The target port of the container to expose. The constellation container exposes web traffic on port 3000.
service.serviceType The type of service you wish to expose.
service.annotations Optionally add custom annotations for advanced configuration. Specifying a custom set of annotations will result in them being used instead of the default configurations.
domainName Deprecated, use ingress.domain. Specify your custom domain.
ingress.domain Specify your custom domain.
ingressAnnotations Deprecated, use ingress.annotations. Specify additional annotations to add to the ingress.
ingress.annotations Specify additional annotations to add to the ingress.
ingress.enabled Set to true in order to deploy an ingress.
ingress.ingressClassName Ingress class to be used in place of the annotation.
ingress.tls.enabled Specify the use of HTTPS for ingress connectivity. If the tls block is omitted, TLS will not be enabled.
ingress.tls.secretName Specify the Kubernetes secret you created in which you store your SSL certificate for your deployment.
customerAssetVolumeClaimName Specify the volume claim name to be used for storing customer assets.
imagePullSecretNames Deprected, use docker.imagePullSecretNames. Specify a list of existing ImagePullSecrets to be added to the Deployment.
docker.imagePullSecretNames Specify a list of existing ImagePullSecrets to be added to the Deployment.
docker.registry.url Specify the image registry url.
docker.registry.username Specify the username for the docker registry.
docker.registry.password Specify the password for the docker registry.
docker.constellation.image Specify the image version.
docker.messaging.imagePullPolicy Specify the image pull policy configurations for the image.
serviceAccountName Specify a custom service account for the pods of your deployment.
affinity Specify the pod affinity so that pods are restricted to run on particular node(s), or to prefer to run on particular nodes.
   
tolerations Specify pod tolerations so that it is allowed to run on node(s) with particular taints.
   

Example:

enabled: true
deployment:
  name: "constellation"
# Cloud provider details. Accepted values are : aws
provider: aws
# For aws cloud provider enter your acm certificate ARN here.
awsCertificateArn : arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx

# Docker repos and tag for image
docker:
  # If using a custom Docker registry, supply the credentials here to pull Docker images.
  registry:
    url: YOUR_REGISTRY_URL_HERE
    username: YOUR_REGISTRY_USERNAME_HERE
    password: YOUR_REGISTRY_PASSWORD_HERE
  # Docker image information for the Pega docker image, containing the application server.
  constellation:
    image: pega-docker.downloads.pega.com/constellation-appstatic-service/docker-image:xxxxxxx
    imagePullPolicy: Always

logLevel: info
urlPath: /c11n
replicas: 1

Liveness and readiness probes

Constellation uses liveness and readiness to determine application health in your deployments. For an overview of these probes, see Configure Liveness and Readiness Probes. Configure a probe for liveness to determine if a Pod has entered a broken state; configure it for readiness to determine if the application is available to be exposed. If not explicitly configured, default probes are used during the deployment. Set the following parameters as part of a livenessProbe or readinessProbe configuration.

Notes:

Parameter Description Default livenessProbe Default readinessProbe
initialDelaySeconds Number of seconds after the container has started before probes are initiated. 5 5
timeoutSeconds Number of seconds after which the probe times out. 5 5
periodSeconds How often (in seconds) to perform the probe. 30 30
successThreshold Minimum consecutive successes for the probe to be considered successful after it determines a failure. 1 1
failureThreshold The number consecutive failures for the pod to be terminated by Kubernetes. 3 3

Example:

livenessProbe:
  initialDelaySeconds: 5
  timeoutSeconds: 5
  periodSeconds: 30
  successThreshold: 1
  failureThreshold: 3
readinessProbe:
  initialDelaySeconds: 5
  timeoutSeconds: 5
  periodSeconds: 30
  successThreshold: 1
  failureThreshold: 3

Constellationui helm charts installation steps

  1. Create a namespace into which you want to deploy the constellation appstatic service

    kubectl create namespace «namespace_name_here»

  2. Install the constellation helm charts using the following command

    helm install path-to-pega-helm-charts/charts/backingservices/charts/constellation –values path-to-pega-helm-charts/backingservices/charts/constellation/values.yaml -n «namespace» –generate-name

  3. Once the charts are deployed an application load balancer should be created automatically. You can then configure the records of your custom domain to route to the loadbalancer accordingly. For AWS a simple Route53 record in the correct hosted zone of your custom domain should do it.