This commit is contained in:
GTrunSec 2022-04-02 14:42:22 -07:00
parent 836fe9abd0
commit bc5c70db39
No known key found for this signature in database
GPG key ID: 2368FAFA4ABDD2A0
13 changed files with 68 additions and 57 deletions

View file

@ -1,7 +1,8 @@
{system ? builtins.currentSystem}: (
{system ? builtins.currentSystem}:
(
(import ./compat.nix).flake-compat {
src = ./.;
inherit system;
}
)
.defaultNix
)
.defaultNix

View file

@ -3,7 +3,8 @@
registry,
}: let
# evaluated configuration
inherit ((evalModules {
inherit
((evalModules {
module = {kubenix, ...}: {
imports = [
kubenix.modules.testing
@ -29,7 +30,9 @@
];
};
};
})) config;
}))
config
;
in {
inherit config;

View file

@ -12,7 +12,7 @@
nixpkgs,
...
} @ inputs:
(inputs.flake-utils.lib.eachSystem ["x86_64-linux"](
(inputs.flake-utils.lib.eachSystem ["x86_64-linux"] (
#inputs.flake-utils.lib.eachDefaultSystem (
system: let
pkgs = import inputs.nixpkgs {

View file

@ -305,7 +305,8 @@ with lib; let
genResourceOptions = resource:
with gen; let
submoduleForDefinition' = definition: submoduleForDefinition
submoduleForDefinition' = definition:
submoduleForDefinition
definition.ref
definition.name
definition.kind

View file

@ -1,7 +1,4 @@
{
lib,
...
}:
{lib, ...}:
with lib; {
options = {
kubenix.project = mkOption {

View file

@ -415,7 +415,8 @@ in {
features = ["k8s" "submodule"];
module = {config, ...}: {
# set module defaults
kubernetes.api.defaults = (filter (default: default.propagate) cfg.api.defaults)
kubernetes.api.defaults =
(filter (default: default.propagate) cfg.api.defaults)
++ [
# set module name and version for all kuberentes resources
{

View file

@ -236,7 +236,10 @@ in {
}: let
evaledSubmodule' = evalModules {
inherit specialArgs;
modules = config.modules ++ [./base.nix] ++ [
modules =
config.modules
++ [./base.nix]
++ [
{
_module.args.check = false;
}

View file

@ -12,10 +12,7 @@ with lib; let
kubecerts = "/var/lib/kubernetes/secrets";
# how we differ from the standard configuration of mkKubernetesBaseTest
extraConfiguration = {
config,
...
}: {
extraConfiguration = {config, ...}: {
virtualisation = {
memorySize = 2048;
};

View file

@ -1,7 +1,8 @@
{system ? builtins.currentSystem}: (
{system ? builtins.currentSystem}:
(
(import ./compat.nix).flake-compat {
src = ./.;
inherit system;
}
)
.shellNix
)
.shellNix

View file

@ -7,7 +7,8 @@
doThrowError ? true, # whether any testing error should throw an error
enabledTests ? null,
}: let
inherit ((evalModules {
inherit
((evalModules {
module = {
kubenix,
pkgs,
@ -48,6 +49,8 @@
];
};
};
})) config;
}))
config
;
in
config.testing // {recurseForDerivations = true;}

View file

@ -1,9 +1,14 @@
{ config, lib, pkgs, kubenix, helm, ... }:
{
config,
lib,
pkgs,
kubenix,
helm,
...
}:
with lib;
with kubenix.lib;
with pkgs.dockerTools;
let
with pkgs.dockerTools; let
corev1 = config.kubernetes.api.resources.core.v1;
appsv1 = config.kubernetes.api.resources.apps.v1;
@ -30,9 +35,8 @@ let
finalImageName = "docker.io/bitnami/bitnami-shell";
finalImageTag = "10";
};
in
{
imports = [ kubenix.modules.test kubenix.modules.helm kubenix.modules.k8s kubenix.modules.docker ];
in {
imports = [kubenix.modules.test kubenix.modules.helm kubenix.modules.k8s kubenix.modules.docker];
docker.images = {
postgresql.image = postgresql;
@ -43,13 +47,15 @@ in
test = {
name = "helm-simple";
description = "Simple k8s testing wheter name, apiVersion and kind are preset";
assertions = [{
assertions = [
{
message = "should have generated resources";
assertion =
appsv1.StatefulSet ? "app-psql-postgresql-primary" &&
appsv1.StatefulSet ? "app-psql-postgresql-read" &&
corev1.Secret ? "app-psql-postgresql" &&
corev1.Service ? "app-psql-postgresql-headless";
appsv1.StatefulSet
? "app-psql-postgresql-primary"
&& appsv1.StatefulSet ? "app-psql-postgresql-read"
&& corev1.Secret ? "app-psql-postgresql"
&& corev1.Service ? "app-psql-postgresql-headless";
}
{
message = "should have values passed";
@ -59,7 +65,8 @@ in
message = "should have namespace defined";
assertion =
appsv1.StatefulSet.app-psql-postgresql-primary.metadata.namespace == "test";
}];
}
];
script = ''
@pytest.mark.applymanifest('${config.kubernetes.resultYAML}')
def test_helm_deployment(kube):

View file

@ -1,7 +1,4 @@
{
kubenix,
...
}: {
{kubenix, ...}: {
imports = with kubenix.modules; [test k8s istio];
test = {

View file

@ -13,7 +13,7 @@ with lib; let
inherit (config.submodules.instances) instance5;
inherit (config.submodules.instances) versioned-submodule;
submodule = { ...}: {
submodule = {...}: {
imports = [kubenix.modules.submodule];
options.submodule.args = {