From 1db7318c3f4e8a50f07e45ae458ab8fcca6686cb Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Tue, 15 Nov 2022 15:48:15 +0100
Subject: [PATCH] lib.host: add consul option

---
 krebs/3modules/lass/default.nix | 7 +++++++
 lib/types.nix                   | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix
index dd516428b..ca0c757a3 100644
--- a/krebs/3modules/lass/default.nix
+++ b/krebs/3modules/lass/default.nix
@@ -10,6 +10,7 @@ in {
   };
   hosts = mapAttrs (_: recursiveUpdate {
     owner = config.krebs.users.lass;
+    consul = true;
     ci = true;
     monitoring = true;
   }) {
@@ -412,6 +413,7 @@ in {
     };
     xerxes = {
       cores = 2;
+      consul = false;
       nets = rec {
         retiolum = {
           ip4.addr = "10.243.1.3";
@@ -632,6 +634,7 @@ in {
     };
 
     phone = {
+      consul = false;
       nets = {
         wiregrill = {
           ip4.addr = "10.244.1.13";
@@ -647,6 +650,7 @@ in {
       syncthing.id = "PWKVXPB-JCNO6E4-KVIQ7CK-6FSOWHM-AWORMDU-HVVYLKW-44DQTYW-XZT7DQJ";
     };
     tablet = {
+      consul = false;
       nets = {
         wiregrill = {
           ip4.addr = "10.244.1.14";
@@ -661,6 +665,7 @@ in {
       ci = false;
     };
     hilum = {
+      consul = false;
       cores = 1;
       nets = {
         retiolum = {
@@ -836,6 +841,7 @@ in {
     };
 
     lasspi = {
+      consul = false;
       cores = 1;
       nets = {
         retiolum = {
@@ -879,6 +885,7 @@ in {
     };
 
     domsen-pixel = {
+      consul = false;
       nets = {
         wiregrill = {
           ip4.addr = "10.244.1.17";
diff --git a/lib/types.nix b/lib/types.nix
index f312b734b..0e0e093fb 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -58,6 +58,14 @@ rec {
         default = false;
       };
 
+      consul = mkOption {
+        description = ''
+          Whether the host is a member of the global consul network
+        '';
+        type = bool;
+        default = false;
+      };
+
       owner = mkOption {
         type = user;
       };