diff --git a/builtin/playbooks/artifact_export.yaml b/builtin/playbooks/artifact_export.yaml index 31ee8c7d..9bbfc68d 100644 --- a/builtin/playbooks/artifact_export.yaml +++ b/builtin/playbooks/artifact_export.yaml @@ -9,4 +9,4 @@ when: .image_manifests | default list | len | lt 0 - name: Export artifact command: | - cd {{ .work_dir }} && tar -czvf kubekey-artifact.tar.gz kubekey/ + cd {{ .work_dir }}/kubekey && tar -czvf ../kubekey-artifact.tar.gz * diff --git a/builtin/roles/init/init-artifact/tasks/download_by_curl.yaml b/builtin/roles/init/init-artifact/tasks/download_by_curl.yaml index 6f0fa7b7..ff1ce4e3 100644 --- a/builtin/roles/init/init-artifact/tasks/download_by_curl.yaml +++ b/builtin/roles/init/init-artifact/tasks/download_by_curl.yaml @@ -173,7 +173,7 @@ - name: Check binaries for calicoctl command: | - artifact_name={{ get .artifact.artifact_url.calicoctl .item | splitList "/" | last }} + artifact_name=calicoctl artifact_path={{ .work_dir }}/kubekey/cni/{{ .calico_version }}/{{ .item }} if [ ! -f $artifact_path/$artifact_name ]; then mkdir -p $artifact_path diff --git a/builtin/roles/init/init-artifact/tasks/main.yaml b/builtin/roles/init/init-artifact/tasks/main.yaml index d8fa482d..a54be9f8 100644 --- a/builtin/roles/init/init-artifact/tasks/main.yaml +++ b/builtin/roles/init/init-artifact/tasks/main.yaml @@ -9,8 +9,9 @@ - name: Extract artifact to work_dir tags: ["always"] command: | - if [ ! -f "{{ .artifact_file }}" ]; then - tar -zxvf {{ .artifact_file }} -C {{ .work_dir }} + if [ -f "{{ .artifact_file }}" ]; then + mkdir -p {{ .work_dir }}/kubekey + tar -zxvf {{ .artifact_file }} -C {{ .work_dir }}/kubekey fi when: and .artifact_file (ne .artifact_file "") diff --git a/builtin/roles/install/kubernetes/tasks/install_binaries.yaml b/builtin/roles/install/kubernetes/tasks/install_binaries.yaml index 32f86a06..be14fff8 100644 --- a/builtin/roles/install/kubernetes/tasks/install_binaries.yaml +++ b/builtin/roles/install/kubernetes/tasks/install_binaries.yaml @@ -63,3 +63,30 @@ dest: /etc/systemd/system/kubelet.service - name: Register kubelet service command: systemctl daemon-reload && systemctl enable kubelet.service + +- name: Check if calicoctl is installed + ignore_errors: true + command: calicoctl --version + register: calicoctl_install_version +- name: Install calicoctl + when: + - and .calico_version (ne .calico_version "") + - | + or (.calicoctl_install_version.stderr | ne "") (.calicoctl_install_version.stdout | contains (printf "Client Version: %s" .calico_version) | not) + block: + - name: Sync calicoctl to remote + copy: + src: | + {{ .work_dir }}/kubekey/cni/{{ .calico_version }}/{{ .binary_type.stdout }}/calicoctl + dest: /usr/local/bin/calicoctl + mode: 0755 + - name: Sync kubelet env to remote + template: + src: kubeadm/kubelet.env + dest: /etc/systemd/system/kubelet.service.d/10-kubeadm.conf + - name: Sync kubelet service to remote + copy: + src: kubelet.service + dest: /etc/systemd/system/kubelet.service + - name: Register kubelet service + command: systemctl daemon-reload && systemctl enable kubelet.service