mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
feat(k8s): beautify a bit
This commit is contained in:
parent
9aa861350c
commit
ade94ccefa
1 changed files with 11 additions and 9 deletions
|
|
@ -3,6 +3,8 @@
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
cfg = config.kubernetes;
|
||||||
|
|
||||||
removeKubenixOptions = filterAttrs (name: attr: name != "kubenix");
|
removeKubenixOptions = filterAttrs (name: attr: name != "kubenix");
|
||||||
|
|
||||||
getDefaults = resource: group: version: kind:
|
getDefaults = resource: group: version: kind:
|
||||||
|
|
@ -11,7 +13,7 @@ let
|
||||||
(default.group == null || default.group == group) &&
|
(default.group == null || default.group == group) &&
|
||||||
(default.version == null || default.version == version) &&
|
(default.version == null || default.version == version) &&
|
||||||
(default.kind == null || default.kind == kind)
|
(default.kind == null || default.kind == kind)
|
||||||
) config.kubernetes.api.defaults);
|
) cfg.api.defaults);
|
||||||
|
|
||||||
moduleToAttrs = value:
|
moduleToAttrs = value:
|
||||||
if isAttrs value
|
if isAttrs value
|
||||||
|
|
@ -120,7 +122,7 @@ in {
|
||||||
options.kubernetes.api = mkOption {
|
options.kubernetes.api = mkOption {
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
imports = [
|
imports = [
|
||||||
(./generated + ''/v'' + config.kubernetes.version + ".nix")
|
(./generated + ''/v'' + cfg.version + ".nix")
|
||||||
apiOptions
|
apiOptions
|
||||||
] ++ (map (cr: {config, ...}: {
|
] ++ (map (cr: {config, ...}: {
|
||||||
options.${cr.group}.${cr.version}.${cr.kind} = mkOption {
|
options.${cr.group}.${cr.version}.${cr.kind} = mkOption {
|
||||||
|
|
@ -158,7 +160,7 @@ in {
|
||||||
}));
|
}));
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
}) config.kubernetes.customResources);
|
}) cfg.customResources);
|
||||||
};
|
};
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
|
|
@ -219,8 +221,8 @@ in {
|
||||||
config.kubernetes.objects = flatten (map (gvk:
|
config.kubernetes.objects = flatten (map (gvk:
|
||||||
mapAttrsToList (name: resource:
|
mapAttrsToList (name: resource:
|
||||||
removeKubenixOptions (moduleToAttrs resource)
|
removeKubenixOptions (moduleToAttrs resource)
|
||||||
) config.kubernetes.api.${gvk.group}.${gvk.version}.${gvk.kind}
|
) cfg.api.${gvk.group}.${gvk.version}.${gvk.kind}
|
||||||
) config.kubernetes.api.resources);
|
) cfg.api.resources);
|
||||||
|
|
||||||
options.kubernetes.generated = mkOption {
|
options.kubernetes.generated = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
|
|
@ -228,12 +230,12 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config.kubernetes.generated = let
|
config.kubernetes.generated = let
|
||||||
kubernetesList = toKubernetesList config.kubernetes.objects;
|
kubernetesList = toKubernetesList cfg.objects;
|
||||||
|
|
||||||
hashedList = kubernetesList // {
|
hashedList = kubernetesList // {
|
||||||
labels."kubenix/build" = config.kubernetes.hash;
|
labels."kubenix/build" = cfg.hash;
|
||||||
items = map (resource: recursiveUpdate resource {
|
items = map (resource: recursiveUpdate resource {
|
||||||
metadata.labels."kubenix/build" = config.kubernetes.hash;
|
metadata.labels."kubenix/build" = cfg.hash;
|
||||||
}) kubernetesList.items;
|
}) kubernetesList.items;
|
||||||
};
|
};
|
||||||
in hashedList;
|
in hashedList;
|
||||||
|
|
@ -243,5 +245,5 @@ in {
|
||||||
description = "Output hash";
|
description = "Output hash";
|
||||||
};
|
};
|
||||||
|
|
||||||
config.kubernetes.hash = builtins.hashString "sha1" (builtins.toJSON config.kubernetes.objects);
|
config.kubernetes.hash = builtins.hashString "sha1" (builtins.toJSON cfg.objects);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue