mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
fix(modules): fix customResources
This commit is contained in:
parent
3eb8bc0731
commit
d582830627
4 changed files with 56 additions and 20 deletions
|
|
@ -8,7 +8,7 @@ with import ./lib.nix { inherit pkgs; inherit (pkgs) lib; };
|
||||||
let
|
let
|
||||||
evalKubernetesModules = configuration: evalModules rec {
|
evalKubernetesModules = configuration: evalModules rec {
|
||||||
modules = [
|
modules = [
|
||||||
(import ./kubernetes.nix {})
|
./kubernetes.nix
|
||||||
./modules.nix configuration
|
./modules.nix configuration
|
||||||
];
|
];
|
||||||
args = {
|
args = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
{ customResourceDefinitions ? null }:
|
|
||||||
|
|
||||||
{ config, lib, k8s, pkgs, ... }:
|
{ config, lib, k8s, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
@ -251,7 +249,7 @@ let
|
||||||
|
|
||||||
customResourceOptions = mapAttrs (groupName: crd:
|
customResourceOptions = mapAttrs (groupName: crd:
|
||||||
mkOption {
|
mkOption {
|
||||||
description = "Custom resource for ${name}";
|
description = "Custom resource for ${groupName}";
|
||||||
type = types.attrsOf (types.submodule ({name, ...}: {
|
type = types.attrsOf (types.submodule ({name, ...}: {
|
||||||
options = {
|
options = {
|
||||||
apiVersion = mkOption {
|
apiVersion = mkOption {
|
||||||
|
|
@ -285,11 +283,7 @@ let
|
||||||
}));
|
}));
|
||||||
default = {};
|
default = {};
|
||||||
}
|
}
|
||||||
) (
|
) config.kubernetes.resources.customResourceDefinitions;
|
||||||
if customResourceDefinitions == null
|
|
||||||
then config.kubernetes.resources.customResourceDefinitions
|
|
||||||
else customResourceDefinitions
|
|
||||||
);
|
|
||||||
in {
|
in {
|
||||||
inherit swaggerDefinitions definitions exportedDefinitions kubernetesResourceOptions customResourceOptions;
|
inherit swaggerDefinitions definitions exportedDefinitions kubernetesResourceOptions customResourceOptions;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
12
modules.nix
12
modules.nix
|
|
@ -54,10 +54,7 @@ let
|
||||||
_module.args.name = module.name;
|
_module.args.name = module.name;
|
||||||
_module.args.module = module;
|
_module.args.module = module;
|
||||||
}
|
}
|
||||||
(import ./kubernetes.nix {
|
./kubernetes.nix
|
||||||
customResourceDefinitions =
|
|
||||||
config.kubernetes.resources.customResourceDefinitions;
|
|
||||||
})
|
|
||||||
./modules.nix
|
./modules.nix
|
||||||
(moduleDefinition.module)
|
(moduleDefinition.module)
|
||||||
{
|
{
|
||||||
|
|
@ -72,6 +69,11 @@ let
|
||||||
mapAttrs' (name: resource: nameValuePair "${serviceName}-${name}" resource) resources
|
mapAttrs' (name: resource: nameValuePair "${serviceName}-${name}" resource) resources
|
||||||
) resources;
|
) resources;
|
||||||
|
|
||||||
|
prefixGroupResources = resources: serviceName:
|
||||||
|
mapAttrs' (groupName: resources:
|
||||||
|
nameValuePair "${serviceName}-${groupName}" resources
|
||||||
|
) resources;
|
||||||
|
|
||||||
defaultModuleConfigurationOptions = mapAttrs (name: moduleDefinition: mkOption {
|
defaultModuleConfigurationOptions = mapAttrs (name: moduleDefinition: mkOption {
|
||||||
description = "Module default configuration for ${name} module";
|
description = "Module default configuration for ${name} module";
|
||||||
type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs);
|
type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs);
|
||||||
|
|
@ -153,7 +155,7 @@ in {
|
||||||
|
|
||||||
kubernetes.customResources = mkMerge (
|
kubernetes.customResources = mkMerge (
|
||||||
mapAttrsToList (name: module:
|
mapAttrsToList (name: module:
|
||||||
prefixResources (moduleToAttrs module.configuration.kubernetes.customResources) module.name
|
prefixGroupResources (moduleToAttrs module.configuration.kubernetes.customResources) module.name
|
||||||
) config.kubernetes.modules
|
) config.kubernetes.modules
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{lib, k8s, ...}:
|
{lib, k8s, config, ...}:
|
||||||
|
|
||||||
with k8s;
|
with k8s;
|
||||||
with lib;
|
with lib;
|
||||||
|
|
@ -40,11 +40,6 @@ with lib;
|
||||||
metadata.name = mkForce "${name}-nginx";
|
metadata.name = mkForce "${name}-nginx";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
kubernetes.customResources.cron.my-awesome-cron-object = mkMerge [
|
|
||||||
(k8s.loadJSON ./cr.json)
|
|
||||||
{metadata.name = name;}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -52,15 +47,60 @@ with lib;
|
||||||
module = "nginx";
|
module = "nginx";
|
||||||
configuration.password.name = "test2";
|
configuration.password.name = "test2";
|
||||||
configuration.password.key = "password";
|
configuration.password.key = "password";
|
||||||
|
|
||||||
|
configuration.kubernetes.resources.customResourceDefinitions.secret-claims = {
|
||||||
|
kind = "CustomResourceDefinition";
|
||||||
|
apiVersion = "apiextensions.k8s.io/v1beta1";
|
||||||
|
metadata.name = "secretclaims.vaultproject.io";
|
||||||
|
spec = {
|
||||||
|
group = "vaultproject.io";
|
||||||
|
version = "v1";
|
||||||
|
scope = "Namespaced";
|
||||||
|
names = {
|
||||||
|
plural = "secretclaims";
|
||||||
|
kind = "SecretClaim";
|
||||||
|
shortNames = ["scl"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configuration.kubernetes.customResources.secret-claims.claim = {
|
||||||
|
metadata.name = "test";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
kubernetes.modules.app-v2 = {
|
kubernetes.modules.app-v2 = {
|
||||||
module = "nginx";
|
module = "nginx";
|
||||||
configuration.port = 8080;
|
configuration.port = 8080;
|
||||||
|
|
||||||
|
configuration.kubernetes.modules.subsubmodule = {
|
||||||
|
module = "nginx";
|
||||||
|
configuration.kubernetes.resources.customResourceDefinitions.secret-claims = {
|
||||||
|
kind = "CustomResourceDefinition";
|
||||||
|
apiVersion = "apiextensions.k8s.io/v1beta1";
|
||||||
|
metadata.name = "secretclaims.vaultproject.io";
|
||||||
|
spec = {
|
||||||
|
group = "vaultproject.io";
|
||||||
|
version = "v1";
|
||||||
|
scope = "Namespaced";
|
||||||
|
names = {
|
||||||
|
plural = "secretclaims";
|
||||||
|
kind = "SecretClaim";
|
||||||
|
shortNames = ["scl"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configuration.kubernetes.customResources.secret-claims.claim = {
|
||||||
|
metadata.name = "test";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
kubernetes.resources.services.nginx = loadJSON ./service.json;
|
kubernetes.resources.services.nginx = loadJSON ./service.json;
|
||||||
|
|
||||||
kubernetes.defaultModuleConfiguration.all = {
|
kubernetes.defaultModuleConfiguration.all = {
|
||||||
|
config.kubernetes.moduleDefinitions = config.kubernetes.moduleDefinitions;
|
||||||
config.kubernetes.defaults.deployments.spec.replicas = 3;
|
config.kubernetes.defaults.deployments.spec.replicas = 3;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue