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
-
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.
-
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:
timeoutSeconds
cannot be greater thanperiodSeconds
in some GCP environments. For details, see this API library from Google.
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
- Create a namespace into which you want to deploy the constellation appstatic service
kubectl create namespace «namespace_name_here»
- 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
- 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.