File tree Expand file tree Collapse file tree 9 files changed +217
-0
lines changed
Expand file tree Collapse file tree 9 files changed +217
-0
lines changed Original file line number Diff line number Diff line change 11import Config
22
33cond do
4+ System . get_env ( "LIBCLUSTER_STRATEGY" ) == "kubernetes.dnssrv" ->
5+ config :libcluster ,
6+ topologies: [
7+ k8s_dnssrv: [
8+ strategy: Cluster.Strategy.Kubernetes.DNSSRV ,
9+ config: [
10+ service: "beam-headless" ,
11+ application_name: "cluster-app" ,
12+ namespace: "default" ,
13+ ]
14+ ]
15+ ]
16+
417 System . get_env ( "LIBCLUSTER_STRATEGY" ) == "kubernetes.dns" ->
518 config :libcluster ,
619 topologies: [
Original file line number Diff line number Diff line change 11import Config
22
33cond do
4+ System . get_env ( "LIBCLUSTER_STRATEGY" ) == "kubernetes.dnssrv" ->
5+ config :libcluster ,
6+ topologies: [
7+ k8s_dnssrv: [
8+ strategy: Cluster.Strategy.Kubernetes.DNSSRV ,
9+ config: [
10+ service: "beam-headless" ,
11+ application_name: "cluster-app" ,
12+ namespace: "default" ,
13+ ]
14+ ]
15+ ]
16+
417 System . get_env ( "LIBCLUSTER_STRATEGY" ) == "kubernetes.dns" ->
518 config :libcluster ,
619 topologies: [
Original file line number Diff line number Diff line change 1+ apiVersion : apps/v1
2+ kind : StatefulSet
3+ metadata :
4+ name : cluster-app
5+ spec :
6+ serviceName : " beam-headless"
7+ replicas : 3
8+ selector :
9+ matchLabels :
10+ cluster : beam
11+ template :
12+ metadata :
13+ labels :
14+ component : app-a
15+ cluster : beam
16+ spec :
17+ containers :
18+ - name : app-a
19+ image : app-a
20+ imagePullPolicy : Never
21+ ports :
22+ - containerPort : 4001
23+ - containerPort : 9000
24+ env :
25+ - name : LIBCLUSTER_STRATEGY
26+ value : " kubernetes.dnssrv"
27+ - name : PORT
28+ value : " 4001"
29+ - name : START_SERVER
30+ value : " true"
31+ - name : ERLANG_COOKIE
32+ value : " secret"
33+ - name : POD_IP
34+ valueFrom :
35+ fieldRef :
36+ fieldPath : status.podIP
37+ - name : POD_NAME
38+ valueFrom :
39+ fieldRef :
40+ fieldPath : metadata.name
41+ command : [ "elixir" ]
42+ args : [
43+ " --name" ,
44+ " cluster-app@$(POD_NAME).beam-headless.default.svc.cluster.local" ,
45+ " --cookie" ,"$(ERLANG_COOKIE)",
46+ " --erl" ,
47+ " -kernel inet_dist_listen_min 9000 inet_dist_listen_max 9000" ,
48+ " --no-halt" ,
49+ " -S" ,"mix",
50+ " run"
51+ ]
Original file line number Diff line number Diff line change 1+ # apiVersion: apps/v1
2+ # kind: StatefulSet
3+ # metadata:
4+ # name: cluster-app
5+ # spec:
6+ # serviceName: "beam-headless"
7+ # replicas: 3
8+ # selector:
9+ # matchLabels:
10+ # cluster: beam
11+ # template:
12+ # metadata:
13+ # labels:
14+ # component: app-b
15+ # cluster: beam
16+ # spec:
17+ # containers:
18+ # - name: app-b
19+ # image: app-b
20+ # imagePullPolicy: Never
21+ # ports:
22+ # - containerPort: 4002
23+ # - containerPort: 9000
24+ # env:
25+ # - name: LIBCLUSTER_STRATEGY
26+ # value: "kubernetes.dnssrv"
27+ # - name: PORT
28+ # value: "4002"
29+ # - name: START_SERVER
30+ # value: "true"
31+ # - name: ERLANG_COOKIE
32+ # value: "secret"
33+ # - name: POD_IP
34+ # valueFrom:
35+ # fieldRef:
36+ # fieldPath: status.podIP
37+ # - name: POD_NAME
38+ # valueFrom:
39+ # fieldRef:
40+ # fieldPath: metadata.name
41+ # command: [ "elixir" ]
42+ # args: [
43+ # "--name",
44+ # "cluster-app@$(POD_NAME).beam-headless.default.svc.cluster.local",
45+ # "--cookie","$(ERLANG_COOKIE)",
46+ # "--erl",
47+ # "-kernel inet_dist_listen_min 9000 inet_dist_listen_max 9000",
48+ # "--no-halt",
49+ # "-S","mix",
50+ # "run"
51+ # ]
Original file line number Diff line number Diff line change 1+ # apiVersion: apps/v1
2+ # kind: Deployment
3+ # metadata:
4+ # name: livebook-deployment
5+ # spec:
6+ # replicas: 1
7+ # selector:
8+ # matchLabels:
9+ # component: livebook
10+ # template:
11+ # metadata:
12+ # labels:
13+ # component: livebook
14+ # cluster: beam
15+ # spec:
16+ # containers:
17+ # - name: livebook
18+ # image: antonmi/livebook
19+ # ports:
20+ # - containerPort: 8080
21+ # - containerPort: 8081
22+ # env:
23+ # - name: LIBCLUSTER_STRATEGY
24+ # value: "kubernetes.dns"
25+ # - name: LIVEBOOK_PASSWORD
26+ # value: "securesecret"
27+ # - name: LIVEBOOK_COOKIE
28+ # value: "secret"
29+ # - name: ERLANG_COOKIE
30+ # value: "secret"
31+ # - name: LIVEBOOK_DISTRIBUTION
32+ # value: "name"
33+ # - name: POD_IP
34+ # valueFrom:
35+ # fieldRef:
36+ # fieldPath: status.podIP
37+ # - name: LIVEBOOK_NODE
38+ # value: "cluster-app@$(POD_IP)"
39+ # - name: LIVEBOOK_DEFAULT_RUNTIME
40+ # value: "attached:$(LIVEBOOK_NODE):$(LIVEBOOK_COOKIE)"
Original file line number Diff line number Diff line change 1+ apiVersion : v1
2+ kind : Service
3+ metadata :
4+ name : livebook-service
5+ spec :
6+ type : LoadBalancer
7+ ports :
8+ - name : http
9+ port : 8080
10+ targetPort : 8080
11+ # - name: web-socket
12+ # port: 8081
13+ # targetPort: 8081
14+ selector :
15+ component : livebook
Original file line number Diff line number Diff line change 1+ apiVersion : v1
2+ kind : Service
3+ metadata :
4+ name : service-a
5+ spec :
6+ type : LoadBalancer
7+ ports :
8+ - port : 4001
9+ targetPort : 4001
10+ selector :
11+ component : app-a
Original file line number Diff line number Diff line change 1+ apiVersion : v1
2+ kind : Service
3+ metadata :
4+ name : service-b
5+ spec :
6+ type : LoadBalancer
7+ ports :
8+ - port : 4002
9+ targetPort : 4002
10+ selector :
11+ component : app-b
Original file line number Diff line number Diff line change 1+ # use for Cluster.Strategy.Kubernetes.DNS
2+ apiVersion : v1
3+ kind : Service
4+
5+ metadata :
6+ name : beam-headless
7+ labels :
8+ cluster : beam
9+ spec :
10+ clusterIP : None
11+ selector :
12+ cluster : beam
You can’t perform that action at this time.
0 commit comments