mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
feat: deprecate mkValueOrSecretOption with mkSecretOption
This commit is contained in:
parent
1db416b1e1
commit
5179a8d0a7
4 changed files with 35 additions and 28 deletions
|
|
@ -14,7 +14,7 @@ let
|
|||
args = {
|
||||
inherit pkgs;
|
||||
name = "default";
|
||||
k8s = { inherit loadJSON loadYAML toYAML toBase64 octalToDecimal mkValueOrSecretOption; };
|
||||
k8s = { inherit loadJSON loadYAML toYAML toBase64 octalToDecimal mkSecretOption; };
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
33
lib.nix
33
lib.nix
|
|
@ -44,28 +44,29 @@ rec {
|
|||
value = acc.value + (toInt char) * (exp 8 acc.i);
|
||||
}) {i = 0; value = 0;} (stringToCharacters value)).value;
|
||||
|
||||
mkValueOrSecretOption = {...}@options: mkOption ({
|
||||
type = types.nullOr (types.either types.str (types.submodule {
|
||||
options.secret = mkOption {
|
||||
description = "Name of the secret where password is stored";
|
||||
mkSecretOption = {...}@options: mkOption (options // {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
description = "Name of the secret where secret is stored";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
options.key = mkOption {
|
||||
description = "Name of the key where password is stored";
|
||||
key = mkOption {
|
||||
description = "Name of the key where secret is stored";
|
||||
type = types.str;
|
||||
default = "password";
|
||||
};
|
||||
}));
|
||||
};
|
||||
|
||||
apply = value:
|
||||
if isAttrs value
|
||||
then {
|
||||
config = mkIf (hasAttr "default" options) (mkAllDefault options.default 1000);
|
||||
});
|
||||
|
||||
apply = value: {
|
||||
valueFrom.secretKeyRef = {
|
||||
name = value.secret;
|
||||
key = value.key;
|
||||
inherit (value) name key;
|
||||
};
|
||||
}
|
||||
else {inherit value;};
|
||||
} // options);
|
||||
};
|
||||
|
||||
default = {};
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
kubernetes.version = "1.7";
|
||||
kubernetes.version = "1.9";
|
||||
|
||||
require = [./modules.nix ./deployment.nix];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,12 @@ with lib;
|
|||
default = 80;
|
||||
};
|
||||
|
||||
password = mkValueOrSecretOption {
|
||||
password = mkSecretOption {
|
||||
description = "Nginx simple auth credentials";
|
||||
default.secret = "test";
|
||||
default = {
|
||||
name = "test";
|
||||
key = "password";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -47,7 +50,10 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
kubernetes.modules.app-v1.module = "nginx";
|
||||
kubernetes.modules.app-v1 = {
|
||||
module = "nginx";
|
||||
configuration.password.name = "test2";
|
||||
};
|
||||
kubernetes.modules.app-v2 = {
|
||||
module = "nginx";
|
||||
configuration.port = 8080;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue