main.yml 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. - name: Include vars
  2. include_vars: ../vars/default.yml
  3. - name: Get Kubectl Bin version
  4. shell: |
  5. get_kubelet_version() {
  6. local version_string="$1"
  7. local version_regex="v[0-9]+\.[0-9]+(\.[0-9]+)?"
  8. if [[ $version_string =~ $version_regex ]]; then
  9. echo "${BASH_REMATCH[0]}"
  10. else
  11. echo "Invalid version string: $version_string"
  12. return 1
  13. fi
  14. }
  15. kubelet --version|awk '{print $2}'
  16. version_output=$(kubectl version --client |grep 'Client Version')
  17. get_kubelet_version "$version_output"
  18. version_output=$(kubeadm version)
  19. get_kubelet_version "$version_output"
  20. register: kubectl_version_ret
  21. become: yes
  22. args:
  23. executable: /bin/bash
  24. - debug: var=kubectl_version_ret.stdout
  25. - name: Assert kubelet version
  26. assert:
  27. that:
  28. - 'item is version(K8S_VERSION_GE, ">=")'
  29. - 'item is version(K8S_VERSION_LT, "<")'
  30. fail_msg: "k8s's version must be {{K8S_VERSION_GE}}~{{K8S_VERSION_LT}}, got {{item}}."
  31. loop: "{{ kubectl_version_ret.stdout.split('\n') | list }}"