Open Beta

Configure and deploy the Runtime Services

At run-time, each participant in the designated service choreography executes its part according to the behavior of the other participants as configured in the choreography file.

Before you start

helm repo add axway-public https://d3az62zktgbxuf.cloudfront.net/charts

Objectives

Learn how to deploy the Runtime Services.

Commands / File content reference

Replace the following placeholders where applicable in commands / file content.

Placeholder Description
{RUNTIME_NAMESPACE} Kubernetes namespace in which Runtime will be deployed
{TENANT_ID} Org Id of the provisioned platform user (can be retrieved using AMPLIFY CLI)
{CONFIG_SERVICE_URL} AMPLIFY Choreography Config service URL
{ACE_RUNTIME_INGRESS_CONTROLLER_RELEASE_NAME} Helm release name for ace-nginx-ingress chart for AMPLIFY Choreography Runtime ("ace-runtime-ingress-controller")
{ACE_RUNTIME_RELEASE_NAME} Helm release name ("ace-runtime-services")
{ACE_RUNTIME_TLS_SECRET_NAME} Kubernetes Secret name for TLS certificate to be used by AMPLIFY Choreography Runtime ("ace-runtime-tls-secret")
{ACE_RUNTIME_DOMAIN_NAME} For AWS external DNS host name for the Ingress controller ("runtime.test.ace.axwaytest.net")

Deploy ace-nginx-ingress Helm Chart for AMPLIFY Choreography Runtime

Create a YAML file (ace_runtime_ingress_controller_values.yaml) to override the default properties in ace-ngix-ingress chart.

The following example is the content of ace_runtime_ingress_controller_values.yaml for AWS deployment. With AWS deployment, the Ingress controller is exposed as LoadBalancer service.

 nginx-ingress:
   controller:
     service:
       annotations:
         external-dns.alpha.kubernetes.io/hostname: {ACE_RUNTIME_DOMAIN_NAME}

This command deploys ace-nginx-ingress for AMPLIFY Choreography Runtime:

 helm upgrade --install --wait \
 	--namespace={RUNTIME_NAMESPACE} \
 	-f ./ace_runtime_ingress_controller_values.yaml \
 	{ACE_RUNTIME_INGRESS_CONTROLLER_RELEASE_NAME} axway-testing/ace-nginx-ingress

Create Kubernetes Secret for TLS certificate

The TLS Secret is used by Ingress resource if Ingress is enabled while deploying ace-runtime-services Helm Chart.

This command creates TLS Secret:

kubectl create secret tls {ACE_RUNTIME_TLS_SECRET_NAME} -n {ACE_RUNTIME_NAMESPACE} \
  --cert {FULL_CHAIN_CERTIFICATE_FILE} --key {PRIVATE_KEY_FILE} -o yaml

Deploy ace-runtime-services Helm Chart

The Helm Chart deploys the AMPLIFY Choreography executive service and Kafka.

Create a YAML file (ace_runtime_values.yaml) to override the default properties in ace-runtime-services chart:

tenantId: {TENANT_ID}
configServiceUrl: {CONFIG_SERVICE_URL}
ingress:
  enabled: true
  domain: {ACE_RUNTIME_DOMAIN_NAME}
  tls:
    enabled: true
    secretName: ace-runtime-tls-secret

jaeger:
  enabled: true
  query:
    basePath: {JAEGER_QUERY_BASE_PATH}
    service:
      name: {JAEGER_QUERY_SERVICE_NAME}
      queryPort: {JAEGER_QUERY_PORT}

This command deploys ace-runtime-services chart:

 helm upgrade --install --wait \
  --namespace={RUNTIME_NAMESPACE} \
  -f ./ace_runtime_values.yaml \ 
  {ACE_RUNTIME_RELEASE_NAME} axway-public/ace-runtime-services

Deploy the Jaeger server (trace collector) Docker image

See https://github.com/helm/charts/tree/master/incubator/jaeger.

Related Links