/akka-java-cluster-openshift

An Akka Java cluster OpenShift demo application

Primary LanguageHTMLApache License 2.0Apache-2.0

Akka-java-cluster-openshift

This is based on Hugh's Akka Cluster demo app with the nice visualizer. We've only removed a few config options so they go back to defaults, and updated Akka Mangement to 1.0, and then specify the app with an AkkaCluster resource instead of Namespace + Role + Rolebinding against default account + Deployment.

The AkkaCluster resource can be installed in any namespace. This application uses the Red Hat Universal Base Image(UBI), and the AdoptOpenJDK.

Enable Akka Management

The AkkaCluster Operator is for use with applications using Akka Management v1.x or newer, with both Bootstrap and HTTP modules enabled, and a management port defined to use discovery.

akka.management {
  cluster.bootstrap {
    contact-point-discovery {
      discovery-method = kubernetes-api
    }
  }
}

Install the AkkaCluster operator

To install the operator, use the Akka Cluster Operator from OperatorHub.io.

You can also clone the Operator repo and follow its README. It is pre-built so you're just loading Kubernetes resources in this step and using the bintray image.

https://github.com/lightbend/akka-cluster-operator

Build the app docker image (optional)

The public image is available but you can build your own image wtih:

mvn clean package docker:build

Manually publish updates to Bintray.

Openshift

kubectl apply -f ./kubernetes/akka-cluster.yml

make a Route to deployment/akka-cluster-demo port 8080 for the UI

Minikube

Install the AkkaCluster Operator from OperatorHub.io before deploying the demo application.

kubectl apply -f ./kubernetes/akka-cluster-minishift.yml

Expose the built in UI:

kubectl expose deployment/akka-cluster-demo --type=NodePort --port 8080

Go to the UI:

minikube service akka-cluster-demo