Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // hosts.toml
- [kluster]
- master = "il"
- [hosts.il]
- disk_uuid = "01b3bcba-c0ef-4538-8dd2-f7dee2952322"
- host = "192.168.10.121"
- [hosts.ee]
- disk_uuid = "7278ee48-598d-40fd-9765-a0b0db9ba1d9"
- host = "192.168.10.122"
- [hosts.sam]
- disk_uuid = "f433b748-e485-4668-a7fd-fc5d92fbd682"
- host = "192.168.10.123"
- // default.nix
- let
- pkgs = import <nixpkgs> {};
- metadata = builtins.fromTOML (builtins.readFile ./hosts.toml);
- master_ip = metadata.hosts."${metadata.kluster.master}".host;
- master_hostname = metadata.kluster.master;
- master_api = "https://${master_hostname}:443";
- kubernetes_master = hostname: {
- roles = ["master" "node"];
- masterAddress = master_hostname;
- easyCerts = true;
- apiserver = {
- securePort = 443;
- advertiseAddress = master_ip;
- };
- addons.dns.enable = true;
- addons.dashboard.enable = true;
- };
- kubernetes_node = hostname: {
- roles = ["node"];
- masterAddress = master_hostname;
- easyCerts = true;
- kubelet.kubeconfig.server = master_api;
- apiserverAddress = master_api;
- addons.dns.enable = true;
- };
- node = { hostname, ... }: {
- imports = [
- ./base.nix
- ];
- networking.hostName = hostname;
- networking.extraHosts = "${master_ip} ${master_hostname}";
- deployment.targetHost = metadata.hosts."${hostname}".host;
- deployment.targetEnv = "none";
- fileSystems."/" = {
- fsType = "ext4";
- device = metadata.hosts."${hostname}".disk_uuid;
- };
- # environment.systemPackages = with pkgs; [
- # kubernetes
- # kubectl
- # ];
- # services.kubernetes = if metadata.kluster.master == hostname
- # then kubernetes_master hostname
- # else kubernetes_node hostname;
- };
- in
- {
- network = {
- description = "kubernetes cluster";
- enableRollback = true;
- };
- il = node { hostname = "il"; };
- ee = node { hostname = "ee"; };
- sam = node { hostname = "sam"; };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement