52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
{ lib, config, ... }:
|
|
let
|
|
cfg = config.apps.atlantis;
|
|
env = config.apps.env;
|
|
|
|
values = lib.apps.appValues {
|
|
inherit env;
|
|
base = ../values/atlantis;
|
|
extraValues = {};
|
|
};
|
|
|
|
kustomize = r:
|
|
if r.kind == "Deployment" then
|
|
lib.attrsets.recursiveUpdate r {
|
|
spec.template.spec.containers =
|
|
builtins.map (x:
|
|
x // {
|
|
livenessProbe.httpGet.path = "/healthz";
|
|
readinessProble.httpGet.path = "/healthz";
|
|
env = x.env ++ [ { name = "INERNAL_PORT"; value = 8000; } ];
|
|
}) r.spec.template.spec.containers;
|
|
}
|
|
else if r.kind == "Service" then
|
|
{}
|
|
else r;
|
|
in
|
|
{
|
|
options.apps.atlantis = lib.apps.appOptions {
|
|
revision = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "main";
|
|
description = "Revision";
|
|
};
|
|
|
|
hostname = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = if env == "prod"
|
|
then "maps.oceanbox.io"
|
|
else "atlantis.beta.oceanbox.io";
|
|
description = "Revision";
|
|
};
|
|
};
|
|
|
|
config = lib.apps.appConfig cfg "${env}-atlantis" {
|
|
helm.releases."${env}-atlantis" = {
|
|
inherit values;
|
|
chart = ../charts/atlantis;
|
|
transformer = rs: builtins.map (x: kustomize x) rs;
|
|
};
|
|
};
|
|
}
|