From 4a874754068a8e2b050ebe52c9185f63bab621e6 Mon Sep 17 00:00:00 2001 From: HaimKortovich Date: Thu, 16 Apr 2026 11:52:50 -0500 Subject: [PATCH] add database for eventstore --- config/prod.exs | 50 ++++++++++++++++++++++++++++++++++++++++++- config/runtime.exs | 43 ------------------------------------- ops/chart/values.yaml | 19 +++++++++++++++- 3 files changed, 67 insertions(+), 45 deletions(-) diff --git a/config/prod.exs b/config/prod.exs index a55f6ea..70c0342 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -1,3 +1,51 @@ import Config -config :logger, level: :debug +config :workload_service, WorkloadServiceWeb.Endpoint, + force_ssl: [rewrite_on: [:x_forwarded_proto]], + exclude: [ + hosts: ["localhost", "127.0.0.1"] + ] + +config :logger, level: :info + +database_url = + System.get_env("DATABASE_URL") || + raise """ + environment variable DATABASE_URL is missing. + For example: ecto://USER:PASS@HOST/DATABASE + """ + +config :workload_service, WorkloadService.Repo, + url: database_url, + pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10") + +event_store_database_url = + System.get_env("EVENTSTORE_DATABASE_URL") || + raise """ + environment variable EVENTSTORE_DATABASE_URL is missing. + For example: ecto://USER:PASS@HOST/DATABASE + """ + +config :workload_service, WorkloadService.EventStore, + serializer: Commanded.Serialization.JsonSerializer, + url: event_store_database_url, + pool_size: String.to_integer(System.get_env("EVENT_STORE_POOL_SIZE") || "10") + +secret_key_base = + System.get_env("SECRET_KEY_BASE") || + raise """ + environment variable SECRET_KEY_BASE is missing. + You can generate one by calling: mix phx.gen.secret + """ + +host = System.get_env("PHX_HOST") || "example.com" + +config :workload_service, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") + +config :customer_service, CustomerServiceWeb.Endpoint, + url: [host: host, port: String.to_integer(System.get_env("PORT", "8080")), scheme: "http"], + http: [ + ip: {0, 0, 0, 0, 0, 0, 0, 0}, + port: String.to_integer(System.get_env("PORT", "8080")) + ], + secret_key_base: secret_key_base diff --git a/config/runtime.exs b/config/runtime.exs index 1d80f49..09fbd98 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -21,46 +21,3 @@ end if cookie = System.get_env("RELEASE_COOKIE") do config :elixir, :cookie, cookie end - -config :customer_service, CustomerServiceWeb.Endpoint, - http: [port: String.to_integer(System.get_env("PORT", "8080"))] - -if config_env() == :prod do - database_url = - System.get_env("DATABASE_URL") || - raise """ - environment variable DATABASE_URL is missing. - For example: ecto://USER:PASS@HOST/DATABASE - """ - - maybe_ipv6 = if System.get_env("ECTO_IPV6") in ~w(true 1), do: [:inet6], else: [] - - config :customer_service, CustomerService.Repo, - url: database_url, - pool_size: 1, - socket_options: maybe_ipv6 - - config :customer_service, CustomerService.EventStore, - serializer: Commanded.Serialization.JsonSerializer, - schema: "eventstore", - url: database_url, - pool_size: 1 - - secret_key_base = - System.get_env("SECRET_KEY_BASE") || - raise """ - environment variable SECRET_KEY_BASE is missing. - You can generate one by calling: mix phx.gen.secret - """ - - host = System.get_env("PHX_HOST") || "example.com" - - config :customer_service, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") - - config :customer_service, CustomerServiceWeb.Endpoint, - url: [host: host, port: 80, scheme: "http"], - http: [ - ip: {0, 0, 0, 0, 0, 0, 0, 0} - ], - secret_key_base: secret_key_base -end diff --git a/ops/chart/values.yaml b/ops/chart/values.yaml index 1e62ec6..db448b4 100644 --- a/ops/chart/values.yaml +++ b/ops/chart/values.yaml @@ -31,6 +31,11 @@ controllers: secretKeyRef: name: customer-service-cluster-pg-app key: uri + EVENTSTORE_DATABASE_URL: + valueFrom: + secretKeyRef: + name: customer-service-cluster-pg-app + key: uri containers: main: image: @@ -49,7 +54,7 @@ controllers: DATABASE_URL: valueFrom: secretKeyRef: - name: customer-service-cluster-pg-app + name: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}-cluster-pg-app' key: uri SECRET_KEY_BASE: valueFrom: @@ -148,3 +153,15 @@ rawResources: owner: customer_service storage: size: 5Gi + + eventstore-database: + enabled: true + apiVersion: postgresql.cnpg.io/v1 + kind: Database + suffix: eventstore-database + spec: + spec: + name: customer_service_eventstore + owner: customer_service + cluster: + name: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}-cluster-pg'