summary refs log tree commit diff
path: root/nixos/modules/services/cluster/kubernetes/addons/dns.nix
diff options
context:
space:
mode:
authorJonas Juselius <jonas.juselius@gmail.com>2019-03-09 11:57:41 +0100
committerDanylo Hlynskyi <abcz2.uprola@gmail.com>2019-03-09 12:57:41 +0200
commit279716c330701cc85ebc63747ed7cbf6d313288c (patch)
tree9aa1d6d92ebea761a77b2ffeb630fe5510e69406 /nixos/modules/services/cluster/kubernetes/addons/dns.nix
parent3671047632b9dd3632d483f5171a2611cd748b5f (diff)
downloadnixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar.gz
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar.bz2
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar.lz
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar.xz
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.tar.zst
nixpkgs-279716c330701cc85ebc63747ed7cbf6d313288c.zip
nixos/kubernetes: add dns addonmanger reconcile mode option (#55834)
Allow coredns ConfigMap and Depolyment to be editable by the user. An use
case is augmenting the default, generated dns records with local services.
Diffstat (limited to 'nixos/modules/services/cluster/kubernetes/addons/dns.nix')
-rw-r--r--nixos/modules/services/cluster/kubernetes/addons/dns.nix16
1 files changed, 14 insertions, 2 deletions
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 8f3234bfc70..4368159ea6e 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -38,6 +38,18 @@ in {
       type = types.int;
     };
 
+    reconcileMode = mkOption {
+      description = ''
+        Controls the addon manager reconciliation mode for the DNS addon.
+
+        Setting reconcile mode to EnsureExists makes it possible to tailor DNS behavior by editing the coredns ConfigMap.
+
+        See: <link xlink:href="https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/README.md"/>.
+      '';
+      default = "Reconcile";
+      type = types.enum [ "Reconcile" "EnsureExists" ];
+    };
+
     coredns = mkOption {
       description = "Docker image to seed for the CoreDNS container.";
       type = types.attrs;
@@ -131,7 +143,7 @@ in {
         kind = "ConfigMap";
         metadata = {
           labels = {
-            "addonmanager.kubernetes.io/mode" = "Reconcile";
+            "addonmanager.kubernetes.io/mode" = cfg.reconcileMode;
             "k8s-app" = "kube-dns";
             "kubernetes.io/cluster-service" = "true";
           };
@@ -162,7 +174,7 @@ in {
         kind = "Deployment";
         metadata = {
           labels = {
-            "addonmanager.kubernetes.io/mode" = "Reconcile";
+            "addonmanager.kubernetes.io/mode" = cfg.reconcileMode;
             "k8s-app" = "kube-dns";
             "kubernetes.io/cluster-service" = "true";
             "kubernetes.io/name" = "CoreDNS";