KubernetesProxyActor

A KubernetesProxyActor proxies all requests from the Guestbook actors to Kubernetes. It is a slim wrapper around the skuber API, and enables sharing of skuber resources (e.g. underlying WS client connections, watches etc.) by all calling actors. It supports request messages to create/delete/get Service and Replication Controller resources on Kubernetes. For each of the above the actor simply creates and invokes a skuber request, and pipes the (future) response back to a result handler actor specified in the request message.

It also supports a WatchReplicationController message that puts a reactive watch on a specified replication controller that forwards any updates received via the watch to one or more a specified actor. Multiple actors may watch the same controller - they reuse the same underlying watch. These watches are used by ScalerActor for monitoring the progress of scaling up/down of Guestbook services on the cluster.

Companion:
class
class Object
trait Matchable
class Any

Type members

Classlikes

case object Close extends KubernetesRequestMessage
case object Closed
case class CreateReplicationController(rcSpec: ReplicationController, resultHandler: ActorRef) extends KubernetesRequestMessage
case class CreateService(serviceSpec: Service, resultHandler: ActorRef) extends KubernetesRequestMessage
case class DeleteReplicationController(name: String, resultHandler: ActorRef) extends KubernetesRequestMessage
case class DeleteService(name: String, resultHandler: ActorRef) extends KubernetesRequestMessage
case class GetReplicationController(name: String, resultHandler: ActorRef) extends KubernetesRequestMessage
sealed abstract trait KubernetesRequestMessage
case object ResourceNotFound
case class UnwatchReplicationController(rc: ReplicationController, watcher: ActorRef) extends KubernetesRequestMessage
case class UpdateReplicationController(newSpec: ReplicationController, resultHandler: ActorRef) extends KubernetesRequestMessage
case class WatchReplicationController(rc: ReplicationController, watcher: ActorRef) extends KubernetesRequestMessage