diff --git a/.gitignore b/.gitignore index b7ecd6b..b2be92b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1 @@ -.direnv -.devenv -.idea result -.pre-commit-config.yaml diff --git a/docs/packaging.md b/docs/packaging.md index c9408e0..eb5224f 100644 --- a/docs/packaging.md +++ b/docs/packaging.md @@ -30,6 +30,7 @@ In GitLab CI this should for example be `JOB-TOKEN: $CI_JOB_TOKEN`. A personal access token requires this format instead: `PRIVATE-TOKEN: `. !!! note + The script only uploads a version once. If the version already exists it will skip that Nixlet. ## General diff --git a/lib/default.nix b/lib/default.nix index 8fec02c..2f311bc 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -10,7 +10,7 @@ with lib; rec { }; modules = [ file - ({...}: { + (_: { # pass through all args to the values.nix module config = rawValues @@ -59,41 +59,42 @@ with lib; rec { eval = { system, project ? defaultProject, - overrides ? ({...}: {}), + overrides ? (_: {}), values ? {}, }: assert lib.assertMsg (project != null) "No default project set, please pass a project to the render method"; let nixletArg = baseNixletArg // {inherit project;}; - in (kubenix.evalModules.${system} { - module = {kubenix, ...}: { - imports = with kubenix.modules; [ - k8s - helm - docker - files - ./secretsModule.nix - ({...}: let - finalValues = mkValues "${path}/values.nix" { - rawValues = values; - nixlet = nixletArg; - }; - in { - imports = [path]; - _module.args.nixlet = - { - values = finalValues; - } - // nixletArg; - }) - overrides - ]; - kubenix.project = project; + in + kubenix.evalModules.${system} { + module = {kubenix, ...}: { + imports = with kubenix.modules; [ + k8s + helm + docker + files + ./secretsModule.nix + (_: let + finalValues = mkValues "${path}/values.nix" { + rawValues = values; + nixlet = nixletArg; + }; + in { + imports = [path]; + _module.args.nixlet = + { + values = finalValues; + } + // nixletArg; + }) + overrides + ]; + kubenix.project = project; + }; }; - }); render = { system, project ? defaultProject, - overrides ? ({...}: {}), + overrides ? (_: {}), values ? {}, }: (nixlet.eval { @@ -150,6 +151,6 @@ with lib; rec { ) ); - mkDocs = {nixlet, ...} @ opts: + mkDocs = opts: import ./valuesDocs.nix (opts // {inherit lib;}); } diff --git a/lib/valuesDocs.nix b/lib/valuesDocs.nix index e0a14ef..3ddf161 100644 --- a/lib/valuesDocs.nix +++ b/lib/valuesDocs.nix @@ -31,7 +31,7 @@ optionsNix = builtins.listToAttrs ( map (o: { - name = o.name; + inherit (o) name; value = removeAttrs o [ "visible" "internal" @@ -76,9 +76,9 @@ '') + "\n"; - opts = mapAttrsToList (name: opt: - optToMd opt) - optionsNix; + opts = + mapAttrsToList (_name: optToMd) + optionsNix; markdown = concatStringsSep "\n" opts; in builtins.toFile "values-doc.md" markdown diff --git a/nixlets/attic/service.nix b/nixlets/attic/service.nix index 84246b9..82959d1 100644 --- a/nixlets/attic/service.nix +++ b/nixlets/attic/service.nix @@ -10,7 +10,7 @@ with nixlet; { port = 8080; } ]; - type = values.service.type; + inherit (values.service) type; }; }; }; diff --git a/nixlets/mosquitto/service.nix b/nixlets/mosquitto/service.nix index df90272..ba67caa 100644 --- a/nixlets/mosquitto/service.nix +++ b/nixlets/mosquitto/service.nix @@ -7,11 +7,11 @@ with nixlet; { ports = [ { name = "mqtt"; - port = values.service.port; + inherit (values.service) port; targetPort = 1883; } ]; - type = values.service.type; + inherit (values.service) type; }; }; }; diff --git a/nixlets/postgres/service.nix b/nixlets/postgres/service.nix index d094985..f1f58e6 100644 --- a/nixlets/postgres/service.nix +++ b/nixlets/postgres/service.nix @@ -7,11 +7,11 @@ with nixlet; { ports = [ { name = "tcp"; - port = values.service.port; + inherit (values.service) port; targetPort = 5432; } ]; - type = values.service.type; + inherit (values.service) type; }; }; }; diff --git a/nixlets/surrealdb/deployment.nix b/nixlets/surrealdb/deployment.nix index 2c28d7d..e3b4f76 100644 --- a/nixlets/surrealdb/deployment.nix +++ b/nixlets/surrealdb/deployment.nix @@ -1,8 +1,4 @@ -{ - nixlet, - lib, - ... -}: +{nixlet, ...}: with nixlet; { kubernetes.resources = { deployments."${values.uniqueName}" = { diff --git a/nixlets/surrealdb/service.nix b/nixlets/surrealdb/service.nix index b9a1763..4fe7af5 100644 --- a/nixlets/surrealdb/service.nix +++ b/nixlets/surrealdb/service.nix @@ -8,10 +8,10 @@ with nixlet; { { name = "http"; targetPort = "http"; - port = values.service.port; + inherit (values.service) port; } ]; - type = values.service.type; + inherit (values.service) type; }; }; }; diff --git a/nixlets/tikv/service.nix b/nixlets/tikv/service.nix index 5495554..a525d71 100644 --- a/nixlets/tikv/service.nix +++ b/nixlets/tikv/service.nix @@ -10,7 +10,7 @@ with nixlet; { ports = [ { name = "pd-server"; - port = values.pd.service.port; + inherit (values.pd.service) port; } { name = "peer"; @@ -29,7 +29,7 @@ with nixlet; { ports = [ { name = "peer"; - port = values.tikv.service.port; + inherit (values.tikv.service) port; } ]; type = "ClusterIP"; @@ -44,10 +44,10 @@ with nixlet; { ports = [ { name = "server"; - port = values.pd.service.port; + inherit (values.pd.service) port; } ]; - type = values.pd.service.type; + inherit (values.pd.service) type; }; }; }; diff --git a/template/default.nix b/template/default.nix index 3246912..3cec3dc 100644 --- a/template/default.nix +++ b/template/default.nix @@ -1,4 +1,4 @@ -{nixlet, ...}: { +{...}: { imports = [ # import other files here ];