diff --git a/playbooks/roles/k8s/tasks/Debian.yml b/playbooks/roles/k8s/tasks/Debian.yml index 4a0766ac..3b91b07e 100644 --- a/playbooks/roles/k8s/tasks/Debian.yml +++ b/playbooks/roles/k8s/tasks/Debian.yml @@ -4,10 +4,10 @@ apt_key: url: https://packages.cloud.google.com/apt/doc/apt-key.gpg state: present - when: k8s_version is defined + when: k8s_package_version is defined - name: create k8s repo apt_repository: repo: deb http://apt.kubernetes.io/ kubernetes-xenial main state: present - when: k8s_version is defined + when: k8s_package_version is defined diff --git a/playbooks/roles/k8s/tasks/RedHat.yml b/playbooks/roles/k8s/tasks/RedHat.yml index e3e8a7e0..c2bd319d 100644 --- a/playbooks/roles/k8s/tasks/RedHat.yml +++ b/playbooks/roles/k8s/tasks/RedHat.yml @@ -8,9 +8,9 @@ gpgkey: https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg repo_gpgcheck: yes gpgcheck: yes - when: k8s_version is defined + when: k8s_package_version is defined # using this to avoid issue https://github.com/ansible/ansible/issues/20711 - name: make cache to import gpg keys command: "yum -q makecache -y --disablerepo='*' --enablerepo='Kubernetes'" - when: k8s_version is defined + when: k8s_package_version is defined diff --git a/playbooks/roles/k8s/tasks/configure_k8s_master_node.yml b/playbooks/roles/k8s/tasks/configure_k8s_master_node.yml index 4986cb98..08eb0bea 100644 --- a/playbooks/roles/k8s/tasks/configure_k8s_master_node.yml +++ b/playbooks/roles/k8s/tasks/configure_k8s_master_node.yml @@ -37,17 +37,6 @@ enabled: True when: master_running == false -- name: set k8s version to default - set_fact: - k8s_version: "v1.9.2" - -- name: set k8s version if not defined - set_fact: - k8s_version: "v{{ global_configuration.K8S_VERSION }}" - when: - - global_configuration is defined - - global_configuration.K8S_VERSION is defined - - debug: msg: "{{ hostvars[inventory_hostname].ansible_all_ipv4_addresses }}" @@ -77,7 +66,7 @@ - name: initialize k8s master with listen ip shell: | - kubeadm init --token-ttl 0 --kubernetes-version {{ k8s_version }} --apiserver-advertise-address {{ listen_ip }} --pod-network-cidr {{ kube_pod_subnet }} && + kubeadm init --token-ttl 0 --kubernetes-version v{{ k8s_version }} --apiserver-advertise-address {{ listen_ip }} --pod-network-cidr {{ kube_pod_subnet }} && mkdir -p $HOME/.kube && cp -u /etc/kubernetes/admin.conf $HOME/.kube/config && chown -R $(id -u):$(id -g) $HOME/.kube @@ -85,7 +74,7 @@ - name: initialize k8s master without listen ip shell: | - kubeadm init --token-ttl 0 --kubernetes-version {{ k8s_version }} --pod-network-cidr {{ kube_pod_subnet }} && + kubeadm init --token-ttl 0 --kubernetes-version v{{ k8s_version }} --pod-network-cidr {{ kube_pod_subnet }} && mkdir -p $HOME/.kube && cp -u /etc/kubernetes/admin.conf $HOME/.kube/config && chown -R $(id -u):$(id -g) $HOME/.kube diff --git a/playbooks/roles/k8s/tasks/main.yml b/playbooks/roles/k8s/tasks/main.yml index ca19ba2b..42587d28 100644 --- a/playbooks/roles/k8s/tasks/main.yml +++ b/playbooks/roles/k8s/tasks/main.yml @@ -7,41 +7,43 @@ set_fact: instance_name: "{{ hostvars[inventory_hostname].instance_name }}" -- name: set k8s version for RedHat if not defined +- name: set k8s version to default set_fact: - k8s_version: "-1.9.2-0" + k8s_version: "1.9.2" +- name: set k8s version from ENV if defined + set_fact: + k8s_version: "{{ global_configuration.K8S_VERSION }}" when: - - ansible_os_family == 'RedHat' - - instance_data.roles is defined - - instance_data.roles.k8s_master is defined or instance_data.roles.k8s_node is defined + - global_configuration is defined + - global_configuration.K8S_VERSION is defined -- name: set k8s version for RedHat if defined +# dashboard has own set of versions https://github.com/kubernetes/dashboard/tags +# and K8S_VERSION can't be used directly +- name: set k8s dashboard version to default + set_fact: + k8s_dashboard_version: "1.8.3" +- name: set k8s dashboard version if not defined set_fact: - k8s_version: "-{{ global_configuration.K8S_VERSION }}-0" + k8s_dashboard_version: "{{ global_configuration.K8S_DASHBOARD_VERSION }}" when: - - ansible_os_family == 'RedHat' - - instance_data.roles is defined - - instance_data.roles.k8s_master is defined or instance_data.roles.k8s_node is defined - global_configuration is defined - - global_configuration.K8S_VERSION is defined + - global_configuration.K8S_DASHBOARD_VERSION is defined -- name: set k8s version for Debian if not defined +- name: set k8s version for RedHat set_fact: - k8s_version: "=1.9.2-00" + k8s_package_version: "-{{ k8s_version }}-0" when: - - ansible_os_family == 'Debian' + - ansible_os_family == 'RedHat' - instance_data.roles is defined - instance_data.roles.k8s_master is defined or instance_data.roles.k8s_node is defined -- name: set k8s version for Debian if defined +- name: set k8s version for Debian if not defined set_fact: - k8s_version: "={{ global_configuration.K8S_VERSION }}-00" + k8s_package_version: "={{ k8s_version }}-00" when: - ansible_os_family == 'Debian' - instance_data.roles is defined - instance_data.roles.k8s_master is defined or instance_data.roles.k8s_node is defined - - global_configuration is defined - - global_configuration.K8S_VERSION is defined - name: OS specific package install include: "{{ ansible_os_family }}.yml" @@ -49,13 +51,13 @@ # kubetcl must be first in the list - kubeadm has dependency to kubectl without version - name: Install k8s packages if defined package: - name: "{{ item }}{{ k8s_version }}" + name: "{{ item }}{{ k8s_package_version }}" state: present with_items: - kubectl - kubelet - kubeadm - when: k8s_version is defined + when: k8s_package_version is defined - name: configure k8s master include: configure_k8s_master_node.yml diff --git a/playbooks/roles/k8s/templates/k8s-dashboard.yaml.j2 b/playbooks/roles/k8s/templates/k8s-dashboard.yaml.j2 index bed644cd..3f60bcce 100644 --- a/playbooks/roles/k8s/templates/k8s-dashboard.yaml.j2 +++ b/playbooks/roles/k8s/templates/k8s-dashboard.yaml.j2 @@ -115,7 +115,7 @@ spec: hostNetwork: true containers: - name: kubernetes-dashboard - image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3 + image: k8s.gcr.io/kubernetes-dashboard-amd64:v{{ k8s_dashboard_version }} ports: - containerPort: 8443 protocol: TCP