diff --git a/.vscode/settings.json b/.vscode/settings.json
index 6a785bf..c50dc51 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,6 +1,6 @@
 {
     "yaml.schemas": {
         "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook": "file:///home/royalcat/projects/cloud-cluster/.ansible/cluster.yaml",
-        "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/inventory.json": "file:///home/royalcat/projects/cloud-cluster/.ansible/inventory.yaml"
+        "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/inventory.json": "file:///home/royalcat/projects/cloud-cluster/.ansible/inventory.yaml",
     }
 }
\ No newline at end of file
diff --git a/ingress-system/cloudflare-api-token.yaml b/ingress-system/cloudflare-api-token.yaml
index 48b5dc5..ab5a11f 100644
--- a/ingress-system/cloudflare-api-token.yaml
+++ b/ingress-system/cloudflare-api-token.yaml
@@ -4,4 +4,4 @@ metadata:
   name: cloudflare-api-token
   namespace: ingress-system
 stringData:
-  token: 9gCqm5J98tBKKZlcH5oUvQ5GmNKAxtSoRa5TfWea
+  apiToken: 9gCqm5J98tBKKZlcH5oUvQ5GmNKAxtSoRa5TfWea
diff --git a/ingress-system/external-dns-service-account.yaml b/ingress-system/external-dns-service-account.yaml
new file mode 100644
index 0000000..03861a4
--- /dev/null
+++ b/ingress-system/external-dns-service-account.yaml
@@ -0,0 +1,38 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: external-dns
+  namespace: ingress-system
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: external-dns
+  namespace: ingress-system
+rules:
+  - apiGroups: [""]
+    resources: ["services", "endpoints", "pods"]
+    verbs: ["get", "watch", "list"]
+  - apiGroups: ["extensions", "networking.k8s.io"]
+    resources: ["ingresses"]
+    verbs: ["get", "watch", "list"]
+  - apiGroups: ["externaldns.k8s.io"]
+    resources: ["dnsendpoints"]
+    verbs: ["get", "watch", "list"]
+  - apiGroups: ["externaldns.k8s.io"]
+    resources: ["dnsendpoints/status"]
+    verbs: ["update"]
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: external-dns-viewer
+  namespace: ingress-system
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: external-dns
+subjects:
+  - kind: ServiceAccount
+    name: external-dns
+    namespace: ingress-system
diff --git a/ingress-system/external-dns.yaml b/ingress-system/external-dns.yaml
index 34e0367..ce6c24d 100644
--- a/ingress-system/external-dns.yaml
+++ b/ingress-system/external-dns.yaml
@@ -14,9 +14,20 @@ spec:
       labels:
         app.kubernetes.io/name: external-dns
     spec:
+      serviceAccountName: external-dns
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+              - matchExpressions:
+                  - key: topology.kubernetes.io/region
+                    operator: NotIn
+                    values:
+                      - russia-west
+                      - russia-east
       containers:
         - name: external-dns
-          image: registry.k8s.io/external-dns/external-dns:v0.15.1
+          image: registry.k8s.io/external-dns/external-dns:v0.16.1
           args:
             - --source=crd
             - --provider=cloudflare
diff --git a/minecraft/mc-router.yaml b/minecraft/mc-router.yaml
index cd4e06e..5b3525e 100644
--- a/minecraft/mc-router.yaml
+++ b/minecraft/mc-router.yaml
@@ -124,7 +124,7 @@ metadata:
 subjects:
   - kind: ServiceAccount
     name: mc-shutdown
-    namespace: default
+    namespace: minecraft
 roleRef:
   kind: ClusterRole
   name: mc-shutdown
@@ -142,7 +142,7 @@ metadata:
   name: mc-shutdown
   namespace: minecraft
 spec:
-  schedule: "*/30 * * * *"
+  schedule: "*/5 * * * *"
   concurrencyPolicy: Forbid
   jobTemplate:
     spec:
diff --git a/minecraft/prominence-2-rpg-service.yaml b/minecraft/prominence-2-rpg-service.yaml
index 0ff5f43..055ed8d 100644
--- a/minecraft/prominence-2-rpg-service.yaml
+++ b/minecraft/prominence-2-rpg-service.yaml
@@ -6,7 +6,6 @@ metadata:
   labels:
     app.kubernetes.io/name: prominence-2-rpg
   annotations:
-    mc-router.itzg.me/defaultServer: "true"
     mc-router.itzg.me/externalServerName: "prominence-2-rpg.mc.konfa.ch"
 spec:
   selector:
diff --git a/minecraft/tfg-service.yaml b/minecraft/tfg-service.yaml
index 585140e..65fbd6c 100644
--- a/minecraft/tfg-service.yaml
+++ b/minecraft/tfg-service.yaml
@@ -6,7 +6,6 @@ metadata:
   labels:
     app.kubernetes.io/name: tfg
   annotations:
-    mc-router.itzg.me/defaultServer: "true"
     mc-router.itzg.me/externalServerName: "tfg.mc.konfa.ch"
 spec:
   selector:
@@ -26,7 +25,7 @@ spec:
   selector:
     app.kubernetes.io/name: tfg
   ports:
-    - name: "25565"
+    - name: "minecraft"
       port: 25565
       targetPort: 25565
       nodePort: 32565
diff --git a/node-feature-discovery/00-namespace.yaml b/node-feature-discovery/00-namespace.yaml
new file mode 100644
index 0000000..8e54de2
--- /dev/null
+++ b/node-feature-discovery/00-namespace.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: node-feature-discovery