Stand alone kubernetes configuration files for Constellation Messaging service

Note:

Setup of the service requires good understanding of containers, docker and Kubernetes, K8s ingresses, services, deployments and pods, https certificates, domain names and network configuration. This is usually a task done by a K8s sys. admin.

The K8s yaml files used here are simple examples of how to deploy the service. They must be customised to the specific network and cluster configuration. Do not proceed if you do not know how to modify and execute the K8s files referenced below.

Prepare for the installation

  1. Ensure that you have a working kubernetes cluster and the kubectl command line interface installed on your environment. You need a working ingress and access to a valid https certificate for your domain.
  2. Obtain access to My Pega from which you can download your Constellation Messaging Docker image. For details, see 'Requesting access to Pega-provided Docker images' in Pega-provided Docker images.
  3. With your Pega-provided UserID, download, retag and push your Constellation Messaging Docker image to your preferred Docker image repository. For details, see 'Manage downloaded Docker images' in Pega-provided Docker images.

Installation

  1. Create a namespace for Constellation Messaging service in your cluster. - namespace 'c11n-messaging' is used in all examples here:

    kubectl create namespace c11n-messaging

  2. Create a K8s secret to pull the docker image during cluster install. Make sure that this is created in the same namespace as above.
  3. Download, edit for your local repos and run the following command to setup the service in your kubernetes cluster.

    kubectl apply -f https://documents.constellation.pega.io/messaging/c11n-messaging.yaml -n c11n-messaging

  4. Constellation Messaging service should now be reachable on http://constellation-messaging:3000/c11n-messaging inside your cluster.
  5. Please note that the above steps are only limited to deploying the Constellation Messaging service in a working kubernetes cluster. Configuring the routing using the kubernetes ingress objects and a traditional loadbalancer should be done by the customers themselves. An example of configuring the ingress on AWS cloud is shown below.
  6. Once the service routing(with SSL) is setup you can set the Infinity ConstellationMessageSvcHostPath DSS to your service URL and use the messaging service.

Example configuration of an ingress in AWS cloud.

  1. Install the nginx-ingress on the kubernetes cluster. For more information please check this page
  2. The above step will also have created a loadbalancer of your choice in the cloud.
  3. Run the following command to setup the ingress in your kubernetes cluster.

    kubectl apply -f https://documents.constellation.pega.io/messaging/c11n-messaging-ingress.yaml -n c11n-messaging

  4. Now the service should be reachable from the loadbalancer URL. You can verify that by hitting the URL at

    [load-balancer-URL]/c11n-messaging/ping

  5. The service must be exposed over https. Configuring a SSL certificate on the loadbalancer is the simplest approach.