Pulsar configuration with comments

This commit is contained in:
Cyber MacGeddon 2025-01-02 15:13:38 +00:00
parent 7b767727aa
commit 1e78f39a26

View file

@ -2,14 +2,22 @@ local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet"; local images = import "values/images.jsonnet";
local url = import "values/url.jsonnet"; local url = import "values/url.jsonnet";
// This is a Pulsar configuration. Non-standalone mode so we deploy
// individual components: bookkeeper, broker and zookeeper.
//
// This also deploys the TrustGraph 'admin' container which initialises
// TrustGraph-specific namespaces etc.
{ {
"pulsar" +: { "pulsar" +: {
create:: function(engine) create:: function(engine)
// Zookeeper volume
local zkVolume = engine.volume("zookeeper").with_size("1G"); local zkVolume = engine.volume("zookeeper").with_size("1G");
// Zookeeper container
local zkContainer = local zkContainer =
engine.container("zookeeper") engine.container("zookeeper")
.with_image(images.pulsar) .with_image(images.pulsar)
@ -29,6 +37,7 @@ local url = import "values/url.jsonnet";
.with_port(2888, 2888, "zookeeper2") .with_port(2888, 2888, "zookeeper2")
.with_port(3888, 3888, "zookeeper3"); .with_port(3888, 3888, "zookeeper3");
// Pulsar cluster init container
local initContainer = local initContainer =
engine.container("pulsar-init") engine.container("pulsar-init")
.with_image(images.pulsar) .with_image(images.pulsar)
@ -37,13 +46,17 @@ local url = import "values/url.jsonnet";
"-c", "-c",
"sleep 10 && bin/pulsar initialize-cluster-metadata --cluster cluster-a --zookeeper zookeeper:2181 --configuration-store zookeeper:2181 --web-service-url http://pulsar:8080 --broker-service-url pulsar://pulsar:6650", "sleep 10 && bin/pulsar initialize-cluster-metadata --cluster cluster-a --zookeeper zookeeper:2181 --configuration-store zookeeper:2181 --web-service-url http://pulsar:8080 --broker-service-url pulsar://pulsar:6650",
]) ])
// Excessive?! .with_limits("1", "512M")
.with_limits("1", "3000M") .with_reservations("0.05", "512M")
.with_reservations("0.1", "3000M"); .with_environment({
"PULSAR_MEM": "-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m",
});
// Bookkeeper volume
local bookieVolume = engine.volume("bookie").with_size("20G"); local bookieVolume = engine.volume("bookie").with_size("20G");
// Bookkeeper container
local bookieContainer = local bookieContainer =
engine.container("bookie") engine.container("bookie")
.with_image(images.pulsar) .with_image(images.pulsar)
@ -67,6 +80,7 @@ local url = import "values/url.jsonnet";
}) })
.with_port(3181, 3181, "bookie"); .with_port(3181, 3181, "bookie");
// Pulsar broker, stateless (uses ZK and Bookkeeper for state)
local brokerContainer = local brokerContainer =
engine.container("pulsar") engine.container("pulsar")
.with_image(images.pulsar) .with_image(images.pulsar)
@ -91,6 +105,7 @@ local url = import "values/url.jsonnet";
.with_port(6650, 6650, "pulsar") .with_port(6650, 6650, "pulsar")
.with_port(8080, 8080, "admin"); .with_port(8080, 8080, "admin");
// Trustgraph Pulsar initialisation
local adminContainer = local adminContainer =
engine.container("init-trustgraph") engine.container("init-trustgraph")
.with_image(images.trustgraph) .with_image(images.trustgraph)
@ -102,6 +117,7 @@ local url = import "values/url.jsonnet";
.with_limits("1", "128M") .with_limits("1", "128M")
.with_reservations("0.1", "128M"); .with_reservations("0.1", "128M");
// Container sets
local zkContainerSet = engine.containers( local zkContainerSet = engine.containers(
"zookeeper", "zookeeper",
[ [
@ -137,14 +153,17 @@ local url = import "values/url.jsonnet";
] ]
); );
// Zookeeper service
local zkService = local zkService =
engine.service(zkContainerSet) engine.service(zkContainerSet)
.with_port(2181, 2181, "zookeeper"); .with_port(2181, 2181, "zookeeper");
// Bookkeeper service
local bookieService = local bookieService =
engine.service(bookieContainerSet) engine.service(bookieContainerSet)
.with_port(6650, 6650, "bookie"); .with_port(3181, 3181, "bookie");
// Pulsar broker service
local brokerService = local brokerService =
engine.service(brokerContainerSet) engine.service(brokerContainerSet)
.with_port(8080, 8080, "broker"); .with_port(8080, 8080, "broker");