46 lines
1.1 KiB
Nix
46 lines
1.1 KiB
Nix
let
|
|
# Pin the deployment package-set to a specific version of nixpkgs
|
|
# pkgs = import (builtins.fetchTarball {
|
|
# url = "https://github.com/NixOS/nixpkgs/archive/e9148dc1c30e02aae80cc52f68ceb37b772066f3.tar.gz";
|
|
# sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36";
|
|
# }) {};
|
|
pkgs = import <nixpkgs> {};
|
|
|
|
master = {
|
|
deployment.tags = [ "master" ];
|
|
node.name = "k2-0";
|
|
node.address = "10.1.8.60";
|
|
features.k8s.master.enable = true;
|
|
features.k8s.nodes = nodes;
|
|
imports = [ ./cluster.nix ./hw/k2-0.nix ];
|
|
};
|
|
|
|
nodes = [
|
|
{ name = "k2-1"; address = "10.1.8.61"; }
|
|
{ name = "k2-2"; address = "10.1.8.62"; }
|
|
{ name = "k2-3"; address = "10.1.8.63"; }
|
|
{ name = "k2-4"; address = "10.1.8.64"; }
|
|
];
|
|
|
|
mkNode = x: {
|
|
"${x.name}" = { config, pkgs, ... }: {
|
|
deployment.tags = [ "node" ];
|
|
node = x;
|
|
imports = [ ./cluster.nix (./hw + "/${x.name}.nix") ];
|
|
};
|
|
};
|
|
|
|
in
|
|
{
|
|
network = {
|
|
inherit pkgs;
|
|
description = "k2";
|
|
ordering = {
|
|
tags = [ "master" "node" ];
|
|
};
|
|
};
|
|
} // builtins.foldl' (a: x: a // mkNode x) {
|
|
"${master.node.name}" = master;
|
|
} nodes
|
|
|