Skip to content

Commit 9786246

Browse files
author
Adriano Santos
committed
fix: correct cm
1 parent 16612c8 commit 9786246

File tree

5 files changed

+58
-45
lines changed

5 files changed

+58
-45
lines changed

lib/spawn/cluster/cluster_resolver.ex

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,6 @@ defmodule Spawn.Cluster.ClusterResolver do
135135
|> Enum.map(&:inet_parse.ntoa(&1))
136136
|> Enum.map(&"#{app_name}@#{&1}")
137137
|> Enum.map(&String.to_atom(&1))
138-
IO.inspect(&1, label: "Parsed addresses ---------------------")
138+
|> IO.inspect(label: "Parsed addresses ---------------------")
139139
end
140140
end

spawn_operator/spawn_operator/lib/spawn_operator/k8s/proxy/configmap/sidecar_configmap.ex

+2-1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ defmodule SpawnOperator.K8s.Proxy.CM.Configmap do
9999
# Optional. Default "true"
100100
spawn-eigr.io/actors-global-backpressure-enabled: "true"
101101
"""
102+
102103
@impl true
103104
def manifest(resource, _opts \\ []), do: gen_configmap(resource)
104105

@@ -107,7 +108,7 @@ defmodule SpawnOperator.K8s.Proxy.CM.Configmap do
107108
system: system,
108109
namespace: ns,
109110
name: name,
110-
params: _params,
111+
params: params,
111112
labels: _labels,
112113
annotations: annotations
113114
} = _resource

spawn_operator/spawn_operator/lib/spawn_operator/k8s/proxy/deployment.ex

+6-31
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
defmodule SpawnOperator.K8s.Proxy.Deployment do
22
@moduledoc false
3-
43
require Logger
54

5+
import SpawnOperator.Utils
6+
67
@behaviour SpawnOperator.K8s.Manifest
78

89
@default_actor_host_function_env [
@@ -84,13 +85,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
8485

8586
@default_termination_period_seconds 405
8687

87-
@erlang_profiles %{
88-
insecure_erl_flags:
89-
"+C multi_time_warp -mode embedded +sbwt none +sbwtdcpu none +sbwtdio none",
90-
tls_erl_flags:
91-
" -proto_dist inet_tls -ssl_dist_optfile /app/mtls.ssl.conf +C multi_time_warp -mode embedded +sbwt none +sbwtdcpu none +sbwtdio none"
92-
}
93-
9488
@impl true
9589
def manifest(resource, _opts \\ []), do: gen_deployment(resource)
9690

@@ -105,21 +99,13 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
10599
} = _resource
106100
) do
107101
host_params = Map.get(params, "host")
108-
109-
cluster =
110-
Map.get(params, "cluster", %{"features" => %{"erlangMtls" => %{"enabled" => false}}})
111-
|> IO.inspect(label: "cluster")
102+
IO.inspect(params, label: "spec")
112103

113104
erlang_mtls_enabled =
114-
Map.get(cluster, "features", %{})
115-
|> Map.get("erlangMtls", %{})
116-
|> Map.get("enabled", false)
117-
|> IO.inspect(label: "erlang_mtls_enabled")
105+
System.get_env("ERL_CLUSTER_MTL_ENABLED", "false")
106+
|> to_bool()
118107

119-
erlang_profile =
120-
if erlang_mtls_enabled,
121-
do: @erlang_profiles.tls_erl_flags,
122-
else: @erlang_profiles.insecure_erl_flags
108+
IO.inspect(erlang_mtls_enabled, label: "Erlang cluster tls enabled")
123109

124110
task_actors_config = %{"taskActors" => Map.get(host_params, "taskActors", %{})}
125111
topology = Map.get(params, "topology", %{})
@@ -202,7 +188,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
202188
host_params,
203189
annotations,
204190
task_actors_config,
205-
erlang_profile,
206191
erlang_mtls_enabled
207192
),
208193
"initContainers" => init_containers,
@@ -272,7 +257,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
272257
host_params,
273258
annotations,
274259
task_actors_config,
275-
flags,
276260
erlang_mtls_enabled
277261
) do
278262
actor_host_function_image = Map.get(host_params, "image")
@@ -288,10 +272,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
288272
"valueFrom" => %{
289273
"secretKeyRef" => %{"name" => "#{system}-secret", "key" => "RELEASE_COOKIE"}
290274
}
291-
},
292-
%{
293-
"name" => "ERL_FLAGS",
294-
"value" => flags
295275
}
296276
] ++ @default_actor_host_function_env
297277

@@ -351,7 +331,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
351331
host_params,
352332
annotations,
353333
task_actors_config,
354-
flags,
355334
erlang_mtls_enabled
356335
) do
357336
actor_host_function_image = Map.get(host_params, "image")
@@ -367,10 +346,6 @@ defmodule SpawnOperator.K8s.Proxy.Deployment do
367346
"valueFrom" => %{
368347
"secretKeyRef" => %{"name" => "#{system}-secret", "key" => "RELEASE_COOKIE"}
369348
}
370-
},
371-
%{
372-
"name" => "ERL_FLAGS",
373-
"value" => flags
374349
}
375350
] ++ @default_actor_host_function_env
376351

spawn_operator/spawn_operator/lib/spawn_operator/k8s/system/secret/actor_system_secret.ex

+42-12
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
55

66
import Bonny.Config, only: [conn: 0]
77

8+
@erlang_profiles %{
9+
insecure_erl_flags:
10+
"+C multi_time_warp -mode embedded +sbwt none +sbwtdcpu none +sbwtdio none",
11+
tls_erl_flags:
12+
" -proto_dist inet_tls -ssl_dist_optfile /app/mtls.ssl.conf +C multi_time_warp -mode embedded +sbwt none +sbwtdcpu none +sbwtdio none"
13+
}
14+
815
@impl true
916
def manifest(resource, _opts \\ []), do: gen_secret(resource)
1017

@@ -26,7 +33,7 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
2633

2734
data =
2835
Map.merge(distributed_options, storage_options)
29-
|> maybe_use_nats_cluster(name, ns, params)
36+
|> maybe_use_nats_cluster(name, ns, cluster_params)
3037

3138
%{
3239
"apiVersion" => "v1",
@@ -85,9 +92,20 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
8592
end
8693

8794
defp get_dist_options(system, ns, params) do
88-
8995
kind = Map.get(params, "kind", "erlang")
9096

97+
features =
98+
Map.get(params, "features", %{"erlangMtls" => %{"enabled" => false}})
99+
100+
erlang_mtls_enabled =
101+
Map.get(features, "erlangMtls", %{})
102+
|> Map.get("enabled", false)
103+
104+
erlang_profile =
105+
if erlang_mtls_enabled,
106+
do: @erlang_profiles.tls_erl_flags,
107+
else: @erlang_profiles.insecure_erl_flags
108+
91109
case String.to_existing_atom(kind) do
92110
:erlang ->
93111
cookie = Map.get(params, "cookie", default_cookie(ns)) |> Base.encode64()
@@ -97,6 +115,8 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
97115
cluster_heartbeat = "240000" |> Base.encode64()
98116

99117
%{
118+
"ERL_CLUSTER_MTL_ENABLED" => Base.encode64("#{erlang_mtls_enabled}"),
119+
"ERL_FLAGS" => Base.encode64(erlang_profile),
100120
"RELEASE_COOKIE" => cookie,
101121
"PROXY_ACTOR_SYSTEM_NAME" => Base.encode64(system),
102122
"PROXY_CLUSTER_POLLING" => cluster_poolling,
@@ -112,8 +132,6 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
112132
%{
113133
"PROXY_CLUSTER_STRATEGY" => cluster_strategy,
114134
"PROXY_HEADLESS_SERVICE" => cluster_service
115-
# "PROXY_TLS_CERT_PATH" => "",
116-
# "PROXY_TLS_KEY_PATH" => ""
117135
}
118136

119137
_other ->
@@ -122,28 +140,40 @@ defmodule SpawnOperator.K8s.System.Secret.ActorSystemSecret do
122140
end
123141

124142
defp maybe_use_nats_cluster(config, _name, namespace, params) do
125-
cluster_params = Map.get(params, "cluster", %{})
126-
features = Map.get(cluster_params, "features", %{})
143+
features =
144+
Map.get(params, "features", %{
145+
"nats" => %{
146+
"enabled" => false,
147+
"url" => "nats://nats.eigr-functions.svc.cluster.local:4222",
148+
"credentialsSecretRef" => "nats-connectin-secret"
149+
}
150+
})
151+
127152
nats_params = Map.get(features, "nats", %{})
128-
enabled = "#{Map.get(nats_params, "enabled", false)}"
153+
154+
nats_enabled =
155+
Map.get(nats_params, "enabled")
156+
157+
nats_url =
158+
Map.get(nats_params, "url")
129159

130160
nats_config =
131-
case enabled do
132-
"false" ->
161+
case nats_enabled do
162+
false ->
133163
%{}
134164

135-
"true" ->
165+
true ->
136166
nats_secret_ref = Map.fetch!(nats_params, "credentialsSecretRef")
137167

138168
{:ok, secret} =
139169
K8s.Client.get("v1", :secret,
140-
namespace: namespace,
170+
namespace: "eigr-functions",
141171
name: nats_secret_ref
142172
)
143173
|> then(&K8s.Client.run(conn(), &1))
144174

145175
secret_data = Map.get(secret, "data")
146-
nats_host_url = Map.get(secret_data, "url", nats_params["url"])
176+
nats_host_url = nats_url |> Base.encode64()
147177
nats_auth = Map.get(secret_data, "authEnabled", "false")
148178
nats_user = Map.get(secret_data, "username")
149179
nats_secret = Map.get(secret_data, "password")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
defmodule SpawnOperator.Utils do
2+
@moduledoc false
3+
4+
def to_bool("false"), do: false
5+
def to_bool("true"), do: true
6+
def to_bool(_), do: false
7+
end

0 commit comments

Comments
 (0)