Skip to content

Commit

Permalink
chore: add network and region options to module system
Browse files Browse the repository at this point in the history
  • Loading branch information
gytis-ivaskevicius committed May 3, 2024
1 parent 1e44038 commit 129b140
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 53 deletions.
4 changes: 2 additions & 2 deletions nix/cardano-services/deployments/asset.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
BUILD_INFO = values.cardano-services.buildInfo;
ALLOWED_ORIGINS = values.backend.allowedOrigins;

NETWORK = values.network;
NETWORK = config.network;
OGMIOS_SRV_SERVICE_NAME = values.backend.ogmiosSrvServiceName;
LOGGER_MIN_SEVERITY = values.cardano-services.loggingLevel;
ENABLE_METRICS = "true";
Expand Down Expand Up @@ -70,7 +70,7 @@
env = {
BUILD_INFO = values.cardano-services.buildInfo;

NETWORK = values.network;
NETWORK = config.network;
LOGGER_MIN_SEVERITY = values.cardano-services.loggingLevel;
OGMIOS_SRV_SERVICE_NAME = values.backend.ogmiosSrvServiceName;
PROJECTION_NAMES = "asset";
Expand Down
2 changes: 1 addition & 1 deletion nix/cardano-services/deployments/backend-ingress.nix
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"alb.ingress.kubernetes.io/healthcheck-interval-seconds" = toString values.backend.albHealthcheck.interval;
"alb.ingress.kubernetes.io/healthcheck-timeout-seconds" = toString values.backend.albHealthcheck.timeout;
# Use latency routing policy
"external-dns.alpha.kubernetes.io/aws-region" = values.region;
"external-dns.alpha.kubernetes.io/aws-region" = config.region;
"external-dns.alpha.kubernetes.io/set-identifier" = values.backend.dnsId;
"alb.ingress.kubernetes.io/group.name" = chart.namespace;
# ACM
Expand Down
6 changes: 3 additions & 3 deletions nix/cardano-services/deployments/backend.provider.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

env =
{
NETWORK = values.network;
NETWORK = config.network;
ENABLE_METRICS = "true";
SERVICE_NAMES = "asset,chain-history,network-info,rewards,stake-pool,tx-submit,utxo";
OGMIOS_SRV_SERVICE_NAME = values.backend.ogmiosSrvServiceName;
Expand All @@ -33,9 +33,9 @@
PAGINATION_PAGE_SIZE_LIMIT = "5500";

HANDLE_PROVIDER_SERVER_URL =
if values.network == "mainnet"
if config.network == "mainnet"
then "https://api.handle.me"
else "https://${values.network}.api.handle.me";
else "https://${config.network}.api.handle.me";

BUILD_INFO = values.cardano-services.buildInfo;
ALLOWED_ORIGINS = values.backend.allowedOrigins;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
values,
chart,
utils,
config,
...
}: {
templates.blockfrost-worker-deployment = lib.mkIf values.blockfrost-worker.enabled {
Expand Down Expand Up @@ -46,7 +47,7 @@
runAsGroup = 0;
};
env = utils.mkPodEnv {
NETWORK = values.network;
NETWORK = config.network;
LOGGER_MIN_SEVERITY = values.cardano-services.loggingLevel;
BUILD_INFO = values.cardano-services.buildInfo;

Expand Down
75 changes: 34 additions & 41 deletions nix/cardano-services/deployments/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ in
name = "${final.namespace}-cardanojs";
chart = ./Chart.yaml;
context = "eks-devs";
kubeconfig = "$PRJ_ROOT/.kube/${values.region}";
kubeconfig = "$PRJ_ROOT/.kube/${final.region}";

utils = {
mkPodEnv = lib.mapAttrsToList (
Expand All @@ -53,7 +53,7 @@ in
appLabels = app: {
inherit app;
release = values.releaseName or final.name;
network = values.network;
network = final.network;
};
};

Expand Down Expand Up @@ -109,7 +109,7 @@ in
loggingLevel = "info";
tokenMetadataServerUrl = "http://${final.namespace}-cardano-stack-metadata.${final.namespace}.svc.cluster.local";
ingresOrder = 0;
certificateArn = tf-outputs.${values.region}.acm_arn;
certificateArn = tf-outputs.${final.region}.acm_arn;
additionalRoutes = [];
};

Expand All @@ -122,9 +122,9 @@ in
enabled = false;
metadata-fetch-mode = "smash";
smash-url =
if values.network == "mainnet"
if final.network == "mainnet"
then "https://smash.cardano-mainnet.iohk.io/api/v1"
else "https://${values.network}-smash.world.dev.cardano.org/api/v1";
else "https://${final.network}-smash.world.dev.cardano.org/api/v1";
resources.limits = mkPodResources "300Mi" "300m";
resources.requests = mkPodResources "150Mi" "200m";
};
Expand All @@ -133,10 +133,10 @@ in
allowedOrigins = lib.concatStringsSep "," allowedOrigins;
passHandleDBArgs = true;
hostnames = ["${final.namespace}.${baseUrl}"];
dnsId = lib.toLower "${values.region}-${final.namespace}-backend";
dnsId = lib.toLower "${final.region}-${final.namespace}-backend";
ogmiosSrvServiceName = "${final.namespace}-cardano-core.${final.namespace}.svc.cluster.local";

wafARN = tf-outputs.${values.region}.waf_arn;
wafARN = tf-outputs.${final.region}.waf_arn;
# Healthcheck paramteres for ALB
# For mainnet, default value of timeout of 5 is too short, so have to increase it significantly
# Interval cannot be less than timeout
Expand All @@ -163,6 +163,7 @@ in
};
};
imports = [
./options.nix
./provider.resource.nix
./projector.resource.nix
./backend.provider.nix
Expand All @@ -178,6 +179,8 @@ in
targets = {
"dev-preview@us-east-1" = final: {
namespace = "dev-preview";
network = "preview";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -198,8 +201,6 @@ in
};

values = {
network = "preview";
region = "us-east-1";
cardano-services = {
ingresOrder = 99;
additionalRoutes = [
Expand All @@ -224,6 +225,8 @@ in
"dev-sanchonet@us-east-1@v1" = final: {
namespace = "dev-sanchonet";
name = "${final.namespace}-cardanojs-v1";
network = "sanchonet";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -243,9 +246,6 @@ in
};

values = {
network = "sanchonet";
region = "us-east-1";

blockfrost-worker.enabled = false;
pg-boss-worker.enabled = true;

Expand Down Expand Up @@ -295,6 +295,8 @@ in

"dev-mainnet@us-east-1" = final: {
namespace = "dev-mainnet";
network = "mainnet";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -316,8 +318,6 @@ in
};

values = {
network = "mainnet";
region = "us-east-1";
cardano-services = {
ingresOrder = 99;
additionalRoutes = [
Expand All @@ -342,6 +342,8 @@ in
name = "${final.namespace}-cardanojs-v2";
namespace = "dev-preprod";
context = "eks-devs";
network = "preprod";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -360,9 +362,6 @@ in
};

values = {
network = "preprod";
region = "us-east-1";

backend.allowedOrigins = lib.concatStringsSep "," allowedOriginsDev;
backend.hostnames = ["${final.namespace}.${baseUrl}"];

Expand All @@ -379,6 +378,8 @@ in
name = "${final.namespace}-cardanojs-v2";
namespace = "staging-preprod";
context = "eks-devs";
network = "preprod";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -397,9 +398,6 @@ in
};

values = {
network = "preprod";
region = "us-east-1";

backend.hostnames = ["${final.namespace}.${baseUrl}"];
blockfrost-worker.enabled = true;
pg-boss-worker.enabled = true;
Expand All @@ -413,6 +411,8 @@ in
name = "${final.namespace}-cardanojs-v2";
namespace = "live-mainnet";
context = "eks-admin";
network = "mainnet";
region = "us-east-2";

providers = {
backend = {
Expand All @@ -436,8 +436,6 @@ in
};

values = {
network = "mainnet";
region = "us-east-2";
cardano-services = {
ingresOrder = 98;
additionalRoutes = [
Expand Down Expand Up @@ -479,6 +477,8 @@ in
name = "${final.namespace}-cardanojs-v2";
namespace = "live-preprod";
context = "eks-admin";
network = "preprod";
region = "us-east-2";

providers = {
backend = {
Expand All @@ -502,9 +502,6 @@ in
};

values = {
network = "preprod";
region = "us-east-2";

backend.hostnames = ["backend.${final.namespace}.eks.${baseUrl}" "${final.namespace}.${baseUrl}"];
blockfrost-worker.enabled = true;
pg-boss-worker.enabled = true;
Expand Down Expand Up @@ -589,6 +586,8 @@ in
name = "${final.namespace}-cardanojs-v1";
namespace = "live-preview";
context = "eks-admin";
network = "preview";
region = "us-east-2";

providers = {
backend = {
Expand All @@ -598,9 +597,6 @@ in
};

values = {
network = "preview";
region = "us-east-2";

backend.hostnames = ["backend.${final.namespace}.eks.${baseUrl}" "${final.namespace}.${baseUrl}"];
backend.passHandleDBArgs = false;
backend.routes = [
Expand Down Expand Up @@ -629,6 +625,8 @@ in
name = "${final.namespace}-cardanojs-v2";
namespace = "live-preview";
context = "eks-admin";
network = "preview";
region = "us-east-2";

providers = {
backend = {
Expand All @@ -652,9 +650,6 @@ in
};

values = {
network = "preview";
region = "us-east-2";

backend.hostnames = ["backend.${final.namespace}.eks.${baseUrl}" "${final.namespace}.${baseUrl}"];
blockfrost-worker.enabled = true;
pg-boss-worker.enabled = true;
Expand Down Expand Up @@ -738,6 +733,8 @@ in

"ops-preview-1@us-east-1" = final: {
namespace = "ops-preview-1";
network = "preview";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -746,8 +743,6 @@ in
};

values = {
network = "preview";
region = "us-east-1";
cardano-services = {
ingresOrder = 99;
};
Expand All @@ -757,21 +752,23 @@ in
"ops-preview-1@us-east-1@v2" = final: {
name = "${final.namespace}-cardanojs-v2";
namespace = "ops-preview-1";
network = "preview";
region = "us-east-1";

projectors = {
stake-pool.enabled = true;
};

values = {
network = "preview";
region = "us-east-1";
ingress.enabled = false;
pg-boss-worker.enabled = true;
};
};

"ops-preprod-1@us-east-1" = final: {
namespace = "ops-preprod-1";
network = "preprod";
region = "us-east-1";

providers = {
backend = {
Expand All @@ -780,9 +777,6 @@ in
};

values = {
network = "preprod";
region = "us-east-1";

cardano-services = {
ingresOrder = 99;
};
Expand All @@ -792,6 +786,8 @@ in
"live-sanchonet@us-east-2@v1" = final: {
namespace = "live-sanchonet";
name = "${final.namespace}-cardanojs-v1";
network = "sanchonet";
region = "us-east-2";

providers = {
backend = {
Expand All @@ -809,9 +805,6 @@ in
};

values = {
network = "sanchonet";
region = "us-east-2";

blockfrost-worker.enabled = false;
pg-boss-worker.enabled = true;
backend.routes = let
Expand Down
4 changes: 2 additions & 2 deletions nix/cardano-services/deployments/handle.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
ENABLE_METRICS = "true";
HANDLE_POLICY_IDS = "f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a";
LOGGER_MIN_SEVERITY = values.cardano-services.loggingLevel;
NETWORK = values.network;
NETWORK = config.network;
OGMIOS_SRV_SERVICE_NAME = values.backend.ogmiosSrvServiceName;
SERVICE_NAMES = "handle";

Expand Down Expand Up @@ -66,7 +66,7 @@
port = 3000;

env = {
NETWORK = values.network;
NETWORK = config.network;
LOGGER_MIN_SEVERITY = values.cardano-services.loggingLevel;
OGMIOS_SRV_SERVICE_NAME = values.backend.ogmiosSrvServiceName;
PROJECTION_NAMES = "handle";
Expand Down
15 changes: 15 additions & 0 deletions nix/cardano-services/deployments/options.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{lib, ...}: let
inherit (lib) types;
in {
options = {
region = lib.mkOption {
type = types.enum ["us-east-1" "us-east-2" "eu-central-1"];
description = "Region of the deployment";
};

network = lib.mkOption {
type = types.enum ["mainnet" "preprod" "preview" "sanchonet"];
description = "Network of the deployment";
};
};
}

0 comments on commit 129b140

Please sign in to comment.