#  Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
---

- name: Disable swap (if not already disabled)
  command: /usr/sbin/swapoff -a
  changed_when: true
  tags: init

- name: Get hostname
  command: hostname
  changed_when: true
  register: node_hostname
  tags: init

- name: Reset kubeadm
  command: kubeadm reset -f
  changed_when: true
  failed_when: false
  when:
    - groups['manager'][0] != groups['compute'][0]
    - groups['compute']|length >= 1
    - node_hostname.stdout in hostvars['K8S_TOKEN_HOLDER']['k8s_nodes_not_ready']
  tags: init

- name: Execute kubeadm join command
  shell: >
    kubeadm join --token={{ hostvars['K8S_TOKEN_HOLDER']['token'] }}
    --discovery-token-ca-cert-hash sha256:{{ hostvars['K8S_TOKEN_HOLDER']['hash'] }}
    {{ hostvars['K8S_TOKEN_HOLDER']['ip'] }}:{{ apiserver_bind_port }}
  when:
    - groups['manager'][0] != groups['compute'][0]
    - groups['compute']|length >= 1
    - node_hostname.stdout not in hostvars['K8S_TOKEN_HOLDER']['k8s_nodes_ready']
  tags: init