Browse Source

Merge pull request #272 from blesson-james/devel

Issue #270: Fix for k8s pods DNS issue
Lucas A. Wilson 4 năm trước cách đây
mục cha
commit
7599c8c11f

+ 6 - 1
omnia_config.yml

@@ -21,4 +21,9 @@ mariadb_password: "password"
 # Kubernetes SDN network.
 # It can either be "calico" or "flannel".
 # Default value assigned is "calico".
-k8s_cni: "calico"
+k8s_cni: "calico"
+
+# Kubernetes pod network CIDR.
+# Default value is "10.244.0.0/16"
+# Make sure this value does not overlap with any of the host networks.
+k8s_pod_network_cidr: "10.244.0.0/16"

+ 1 - 1
platforms/roles/jupyterhub/vars/main.yml

@@ -23,4 +23,4 @@ helm_chart_version: 0.9.0
 
 timeout_min_sec: 60m
 
-jupyterhub_namespace: default
+jupyterhub_namespace: jupyterhub

+ 11 - 1
roles/cluster_validation/tasks/fetch_password.yml

@@ -54,7 +54,8 @@
   register: input_config_check
   when:
     - mariadb_password | length < 1 or
-      k8s_cni | length < 1
+      k8s_cni | length < 1 or
+      k8s_pod_network_cidr | length < 1
 
 - name: Assert mariadb_password
   assert:
@@ -74,10 +75,19 @@
     success_msg: "{{ success_msg_k8s_cni }}"
     fail_msg: "{{ fail_msg_k8s_cni }}"
 
+- name: Assert kubernetes pod network CIDR
+  assert:
+    that:
+      - k8s_pod_network_cidr | length > 9
+      - '"/" in k8s_pod_network_cidr '
+    success_msg: "{{ success_msg_k8s_pod_network_cidr }}"
+    fail_msg: "{{ fail_msg_k8s_pod_network_cidr }}"
+
 - name: Save input variables from file
   set_fact:
     db_password: "{{ mariadb_password }}"
     k8s_cni: "{{ k8s_cni }}"
+    k8s_pod_network_cidr: "{{ k8s_pod_network_cidr }}"
   no_log: True
 
 - name: Encrypt input config file

+ 2 - 0
roles/cluster_validation/vars/main.yml

@@ -21,6 +21,8 @@ fail_msg_mariadb_password: "maria_db password not given in correct format."
 success_msg_mariadb_password: "mariadb_password validated"
 success_msg_k8s_cni: "Kubernetes CNI Validated"
 fail_msg_k8s_cni: "Kubernetes CNI not correct."
+success_msg_k8s_pod_network_cidr: "Kubernetes pod network cidr validated"
+fail_msg_k8s_pod_network_cidr: "Kubernetes pod network cidr not given in correct format"
 
 #Usage: validations.yml
 skip_tag_fail_msg: "Can't skip both slurm and kubernetes"

+ 2 - 1
roles/k8s_start_manager/tasks/main.yml

@@ -44,7 +44,8 @@
   tags: init
 
 - name: Initialize kubeadm
-  command: "/bin/kubeadm init --pod-network-cidr='{{ pod_network_cidr_ip }}' --apiserver-advertise-address='{{ ansible_default_ipv4.address }}'"
+  command: "/bin/kubeadm init --pod-network-cidr='{{ hostvars['127.0.0.1']['k8s_pod_network_cidr'] }}' \
+    --apiserver-advertise-address='{{ ansible_default_ipv4.address }}'"
   changed_when: true
   when: "'master' not in k8s_nodes.stdout"
   register: init_output

+ 1 - 3
roles/k8s_start_manager/vars/main.yml

@@ -13,8 +13,6 @@
 #  limitations under the License.
 ---
 
-pod_network_cidr_ip: 10.244.0.0/16
-
 k8s_root_directory: /root/.kube
 
 k8s_root_directory_mode: 0755
@@ -43,4 +41,4 @@ k8s_clusterRoleBinding_file_mode: 0655
 
 calico_yml_url: https://docs.projectcalico.org/manifests/calico.yaml
 
-flannel_yml_url: https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
+flannel_yml_url: https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml