Create helper function to create NixNG images
Move NixNG images to separate directory
This commit is contained in:
parent
e3ff293c0c
commit
8e09ef5c1e
6 changed files with 31 additions and 39 deletions
10
kubenix.nix
10
kubenix.nix
|
@ -11,9 +11,15 @@ inputs@{ self, servers, flutils, nixpkgs, kubenix, ... }: flutils.lib.eachDefaul
|
||||||
|
|
||||||
mkKubernetes = name: module: namespace: (kubenix.evalModules.${system} {
|
mkKubernetes = name: module: namespace: (kubenix.evalModules.${system} {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit namespace system machines;
|
inherit namespace system machines self;
|
||||||
inherit (inputs) nixhelm blog-pim dns nixpkgs nixng;
|
inherit (inputs) nixhelm blog-pim dns nixpkgs nixng;
|
||||||
inherit (self) globals;
|
inherit (self) globals;
|
||||||
|
|
||||||
|
utils = import ./utils.nix {
|
||||||
|
inherit pkgs;
|
||||||
|
inherit (inputs) nixpkgs nixng;
|
||||||
|
inherit (self) globals;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
module = { kubenix, ... }:
|
module = { kubenix, ... }:
|
||||||
|
@ -57,7 +63,7 @@ inputs@{ self, servers, flutils, nixpkgs, kubenix, ... }: flutils.lib.eachDefaul
|
||||||
k8sMachines = lib.filterAttrs (n: m: m.kubernetesNodeLabels != null) machines;
|
k8sMachines = lib.filterAttrs (n: m: m.kubernetesNodeLabels != null) machines;
|
||||||
k8sServerNames = builtins.concatStringsSep " " (builtins.attrNames k8sMachines);
|
k8sServerNames = builtins.concatStringsSep " " (builtins.attrNames k8sMachines);
|
||||||
in
|
in
|
||||||
''
|
/* bash */ ''
|
||||||
wrapProgram $out/bin/applyset-deploy.sh \
|
wrapProgram $out/bin/applyset-deploy.sh \
|
||||||
--suffix PATH : "$out/bin" \
|
--suffix PATH : "$out/bin" \
|
||||||
--run 'export KUBECONFIG=''${KUBECONFIG:-${toString kubeconfig}}' \
|
--run 'export KUBECONFIG=''${KUBECONFIG:-${toString kubeconfig}}' \
|
||||||
|
|
|
@ -1,21 +1,4 @@
|
||||||
{ nixpkgs, pkgs, lib, nixng, config, globals, ... }:
|
{ self, utils, lib, config, globals, ... }: {
|
||||||
let
|
|
||||||
|
|
||||||
atticStream = (import ./attic-image.nix {
|
|
||||||
inherit nixpkgs nixng globals;
|
|
||||||
inherit (nixng) nglib;
|
|
||||||
}).config.system.build.ociImage.stream;
|
|
||||||
|
|
||||||
atticImage = pkgs.stdenv.mkDerivation {
|
|
||||||
name = "attic.tar";
|
|
||||||
src = atticStream;
|
|
||||||
dontUnpack = true;
|
|
||||||
buildPhase = ''
|
|
||||||
$src > $out
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.attic.enable = lib.mkEnableOption "attic";
|
options.attic.enable = lib.mkEnableOption "attic";
|
||||||
|
|
||||||
config = lib.mkIf config.attic.enable {
|
config = lib.mkIf config.attic.enable {
|
||||||
|
@ -52,7 +35,7 @@ in
|
||||||
|
|
||||||
spec = {
|
spec = {
|
||||||
containers.attic = {
|
containers.attic = {
|
||||||
image = "nix:0${atticImage}";
|
image = utils.nixSnapshotterRef (utils.mkNixNGImage "attic" "${self}/images/attic.nix");
|
||||||
ports.web.containerPort = 8080;
|
ports.web.containerPort = 8080;
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
|
|
|
@ -1,20 +1,4 @@
|
||||||
{ nixpkgs, pkgs, nixng, globals, config, lib, ... }:
|
{ self, utils, globals, config, lib, ... }: {
|
||||||
let
|
|
||||||
dnsmasqStream = (import ./dnsmasq-image.nix {
|
|
||||||
inherit nixpkgs nixng globals;
|
|
||||||
inherit (nixng) nglib;
|
|
||||||
}).config.system.build.ociImage.stream;
|
|
||||||
|
|
||||||
dnsmasqImage = pkgs.stdenv.mkDerivation {
|
|
||||||
name = "dnsmasq.tar";
|
|
||||||
src = dnsmasqStream;
|
|
||||||
dontUnpack = true;
|
|
||||||
buildPhase = ''
|
|
||||||
$src > $out
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.dnsmasq.enable = lib.mkEnableOption "dnsmasq";
|
options.dnsmasq.enable = lib.mkEnableOption "dnsmasq";
|
||||||
|
|
||||||
config = lib.mkIf config.dnsmasq.enable {
|
config = lib.mkIf config.dnsmasq.enable {
|
||||||
|
@ -26,7 +10,7 @@ in
|
||||||
metadata.labels.app = "dnsmasq";
|
metadata.labels.app = "dnsmasq";
|
||||||
|
|
||||||
spec.containers.dnsmasq = {
|
spec.containers.dnsmasq = {
|
||||||
image = "nix:0${dnsmasqImage}";
|
image = utils.nixSnapshotterRef (utils.mkNixNGImage "dnsmasq" "${self}/images/dnsmasq.nix");
|
||||||
imagePullPolicy = "Always";
|
imagePullPolicy = "Always";
|
||||||
|
|
||||||
ports.dns = {
|
ports.dns = {
|
||||||
|
|
19
utils.nix
Normal file
19
utils.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ pkgs, nixpkgs, nixng, globals, ... }: {
|
||||||
|
mkNixNGImage = name: file:
|
||||||
|
let
|
||||||
|
stream = (import file {
|
||||||
|
inherit nixpkgs nixng globals;
|
||||||
|
inherit (nixng) nglib;
|
||||||
|
}).config.system.build.ociImage.stream;
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "${name}.tar";
|
||||||
|
src = stream;
|
||||||
|
dontUnpack = true;
|
||||||
|
buildPhase = ''
|
||||||
|
$src > $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nixSnapshotterRef = imagePath: "nix:0${imagePath}";
|
||||||
|
}
|
Loading…
Reference in a new issue