Actor Host Resource

November 27, 2023 ยท View on GitHub

Actor Host resource is used to deploy custom actor systems on Spawn. User can specify custom actor system image, ports, environment variables, resources, etc. Spawn will use this information to deploy the actor system on the Spawn cluster.

Spawn will also deploy sidecar with the actor system. Sidecar is used to manage the actor system lifecycle and to provide actor system with Spawn specific features (e.g. persistence, cluster management, etc).

Sidecar is deployed as a separate container in the same pod where the actor system is running. Actor system can communicate with the sidecar over localhost. Sidecar is listening on the port 9001 by default.

Basic CRD Example:

---
apiVersion: spawn-eigr.io/v1
kind: ActorHost
metadata:
  name: my-app
  namespace: default
  annotations:
    spawn-eigr.io/actor-system: spawn-system
spec:
  host:
    image: eigr/my-app:latest

CRD Attributes

CRD AttributeDescriptionMandatoryDefault ValuePossible Values
.metadata.annotations.spawn-eigr.io/actors-global-backpressure-max-demandSee 1No-1
.metadata.annotations.spawn-eigr.io/actors-global-backpressure-min-demandSee 2No-1
.metadata.annotations.spawn-eigr.io/actors-global-backpressure-enabledSee 3Notrue
.metadata.annotations.spawn-eigr.io/actor-systemSee 4Yesspawn-system
.metadata.annotations.spawn-eigr.io/app-hostSee 5No0.0.0.0
.metadata.annotations.spawn-eigr.io/app-portSee 6No8090
.metadata.annotations.spawn-eigr.io/cluster-poling-intervalSee 7No3000
.metadata.annotations.spawn-eigr.io/sidecar-addressSee 8No0.0.0.0
.metadata.annotations.spawn-eigr.io/sidecar-crdt-sync-intervalSee 9No2
.metadata.annotations.spawn-eigr.io/sidecar-crdt-ship-intervalSee 10No2
.metadata.annotations.spawn-eigr.io/sidecar-crdt-ship-debounceSee 11No2
.metadata.annotations.spawn-eigr.io/sidecar-delayed-invokesSee 12Notrue
.metadata.annotations.spawn-eigr.io/sidecar-http-pool-countSee 13No8
.metadata.annotations.spawn-eigr.io/sidecar-http-pool-sizeSee 14No30
.metadata.annotations.spawn-eigr.io/sidecar-http-pool-max-idle-timeoutSee 15No1000
.metadata.annotations.spawn-eigr.io/sidecar-http-portSee 16No9001
.metadata.annotations.spawn-eigr.io/sidecar-image-tagSee 17Nolatest
.metadata.annotations.spawn-eigr.io/sidecar-logger-levelSee 18Noinfoinfo, debug
.metadata.annotations.spawn-eigr.io/sidecar-metrics-disabledSee 19Nofalse
.metadata.annotations.spawn-eigr.io/sidecar-metrics-portSee 20No9001
.metadata.annotations.spawn-eigr.io/sidecar-metrics-log-consoleSee 21Notrue
.metadata.annotations.spawn-eigr.io/sidecar-modeSee 22Nosidecarsidecar, daemon
.metadata.annotations.spawn-eigr.io/sidecar-pubsub-adapterSee 23Nonative
.metadata.annotations.spawn-eigr.io/sidecar-pubsub-nats-hostsSee 24Nonats://127.0.0.1:4222
.metadata.annotations.spawn-eigr.io/sidecar-state-handoff-sync-intervalSee 25No60
.metadata.annotations.spawn-eigr.io/sidecar-uds-enabledSee 26Nofalse
.metadata.annotations.spawn-eigr.io/sidecar-uds-socket-pathSee 27No/var/run/spawn.sock
.metadata.annotations.spawn-eigr.io/supervisors-state-handoff-controllerSee 28Nopersistent
.metadata.nameSee 29Yes
.metadata.namespaceSee 30Nodefault
.spec.autoscaler.maxSee 31Nolength(nodes) * 2
.spec.autoscaler.minSee 32No1
.spec.host.affinitySee 33No
.spec.host.embeddedSee 34Nofalse
.spec.host.envSee 35No
.spec.host.imageSee 36Yes
.spec.host.portsSee 37No
.spec.host.resourcesSee 38No
.spec.host.volumeMountsSee 39No
.spec.replicasSee 40No1
.spec.terminationGracePeriodSecondsSee 41No405
.spec.volumesSee 42No

1. actors-global-backpressure-max-demand

TODO

2. actors-global-backpressure-min-demand

TODO

3. actors-global-backpressure-enabled

TODO

4. actor-system

TODO

5. app-host

TODO

6. app-port

TODO

7. cluster-poling-interval

TODO

8. sidecar-address

TODO

9. sidecar-crdt-sync-interval

TODO

10. sidecar-crdt-ship-interval

TODO

11. sidecar-crdt-ship-debounce

TODO

12. sidecar-delayed-invokes

TODO

13. sidecar-http-pool-count

TODO

14. sidecar-http-pool-size

TODO

15. sidecar-http-pool-max-idle-timeout

TODO

16. sidecar-http-port

TODO

17. sidecar-image-tag

TODO

18. sidecar-logger-level

TODO

19. sidecar-metrics-disabled

TODO

20. sidecar-metrics-port

TODO

21. sidecar-metrics-log-console

TODO

22. sidecar-mode

TODO

23. sidecar-pubsub-adapter

TODO

24. sidecar-pubsub-nats-hosts

TODO

25. sidecar-state-handoff-sync-interval

TODO

26. sidecar-uds-enabled

TODO

27. sidecar-uds-socket-path

TODO

28. supervisors-state-handoff-controller

TODO

29. metadata.name

TODO

30. metadata.namespace

TODO

31. spec.autoscaler.max

TODO

32. spec.autoscaler.min

TODO

33. spec.host.affinity

TODO

34. spec.host.embedded

TODO

35. spec.host.env

TODO

36. spec.host.image

TODO

37. spec.host.ports

TODO

38. spec.host.resources

TODO

39. spec.host.volumeMounts

TODO

40. spec.replicas

TODO

41. spec.terminationGracePeriodSeconds

TODO

42. spec.volumes

TODO

Next: Activator Resource

Previous: Actor System Resource