Skip to content

Commit

Permalink
refactor tarball installation, version calculation, and added tar upg…
Browse files Browse the repository at this point in the history
…rade capability
  • Loading branch information
Michael DAmato authored and Michael DAmato committed Sep 22, 2023
1 parent b527959 commit 74d0f51
Show file tree
Hide file tree
Showing 6 changed files with 225 additions and 216 deletions.
66 changes: 66 additions & 0 deletions roles/rke2_common/tasks/calculate_rke2_version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
- name: "Calculate rke2 full version "

Check warning on line 1 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint for push

1:1 [document-start] missing document start "---"

Check warning on line 1 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint

1:1 [document-start] missing document start "---"

Check warning on line 1 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint

1:1 [document-start] missing document start "---"
when: ( install_rke2_version is not defined ) or ( install_rke2_version | length == 0 ) # noqa var-spacing
block:
- name: Stop if the provided is not valid
fail:
msg: "Provided channel is not valid"
when: rke2_channel not in channels

- name: Get full version name url
uri:
url: https://update.rke2.io/v1-release/channels/{{ rke2_channel }}
follow_redirects: all
register: rke2_version_url

- name: Set full version name
shell: set -o pipefail && echo {{ rke2_version_url.url }} | sed -e 's|.*/||'
register: rke2_full_version
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_full_version fact # noqa var-spacing
set_fact:
rke2_full_version: "{{ rke2_full_version.stdout if ((install_rke2_version is not defined) or (install_rke2_version|length == 0)) else install_rke2_version }}" # yamllint disable-line rule:line-length

- name: Set dot version
shell: set -o pipefail && echo {{ rke2_full_version }} | /usr/bin/cut -d'+' -f1
register: rke2_version_dot_tmp
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_dot fact
set_fact:
rke2_version_dot: "{{ rke2_version_dot_tmp.stdout }}"

- name: Set Maj.Min version
shell: set -o pipefail && echo {{ rke2_full_version }} | /bin/awk -F'.' '{ print $1"."$2 }' | sed "s|^v||g"
register: rke2_version_majmin_tmp
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_majmin fact
set_fact:
rke2_version_majmin: "{{ rke2_version_majmin_tmp.stdout }}"

- name: Set RPM version
shell: set -o pipefail && echo {{ rke2_full_version }} | sed -E -e "s/[\+-]/~/g" | sed -E -e "s/v(.*)/\1/"
register: rke2_version_rpm_tmp
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_rpm fact
set_fact:
rke2_version_rpm: "{{ rke2_version_rpm_tmp.stdout }}"


- name: Describe versions
debug:
msg:
- "Full version, with revision indication: {{ rke2_full_version }}"
- "Version without revision indication: {{ rke2_version_dot }}"
- "Major and Minor Only: {{ rke2_version_majmin }}"
- "RPM Version (tilde): {{ rke2_version_rpm }}"

Check failure on line 66 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint for push

66:54 [new-line-at-end-of-file] no new line character at the end of file

Check failure on line 66 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint

66:54 [new-line-at-end-of-file] no new line character at the end of file

Check failure on line 66 in roles/rke2_common/tasks/calculate_rke2_version.yml

View workflow job for this annotation

GitHub Actions / Lint

66:54 [new-line-at-end-of-file] no new line character at the end of file
26 changes: 5 additions & 21 deletions roles/rke2_common/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,12 @@
path: "{{ playbook_dir }}/tarball_install/rke2.linux-amd64.tar.gz"
register: rke2_binary_tarball_check
delegate_to: 127.0.0.1
become: no

- name: Check for the rke2 binary
stat:
path: /usr/local/bin/rke2
register: rke2_binary

- name: If the rke2 binary exists, determine if the version is changing
when: rke2_binary.stat.exists
block:
- name: Get current RKE2 version
shell: set -o pipefail && /usr/local/bin/rke2 -v | head -n 1 | cut -d ' ' -f 3
register: installed_rke2_version
changed_when: false
args:
executable: /usr/bin/bash

- name: Determine if current version differs what what is being installed
set_fact:
rke2_version_changed: true
when: "'stdout' in installed_rke2_version and installed_rke2_version['stdout'] != install_rke2_version"
become: False

Check warning on line 21 in roles/rke2_common/tasks/main.yml

View workflow job for this annotation

GitHub Actions / Lint for push

21:11 [truthy] truthy value should be one of [false, no, true, yes]

Check warning on line 21 in roles/rke2_common/tasks/main.yml

View workflow job for this annotation

GitHub Actions / Lint

21:11 [truthy] truthy value should be one of [false, no, true, yes]

Check warning on line 21 in roles/rke2_common/tasks/main.yml

View workflow job for this annotation

GitHub Actions / Lint

21:11 [truthy] truthy value should be one of [false, no, true, yes]

- name: Include calculate_rke2_version.yml
include_tasks: calculate_rke2_version.yml
when: not rke2_binary_tarball_check.stat.exists

- name: SLES/Ubuntu/Tarball Installation
include_tasks: tarball_install.yml
when:
Expand Down
18 changes: 18 additions & 0 deletions roles/rke2_common/tasks/previous_install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,21 @@
when: >
ansible_facts.services["rke2-agent.service"] is defined
and not ansible_facts.services["rke2-agent.service"].status == 'disabled'
- name: Check for the rke2 binary
stat:
path: /usr/local/bin/rke2
register: rke2_binary

- name: Get current RKE2 version if already installed
shell: set -o pipefail && /usr/local/bin/rke2 -v | head -n 1 | cut -d ' ' -f 3
register: installed_rke2_version_tmp
changed_when: false
args:
executable: /usr/bin/bash
when: rke2_binary.stat.exists

- name: Determine if current version differs what what is being installed
set_fact:
installed_rke2_version: "{{installed_rke2_version_tmp.stdout}}"
when: rke2_binary.stat.exists
64 changes: 0 additions & 64 deletions roles/rke2_common/tasks/rpm_install.yml
Original file line number Diff line number Diff line change
@@ -1,69 +1,5 @@
---

- name: "Calculate rke2 full version "
when: ( install_rke2_version is not defined ) or ( install_rke2_version | length == 0 ) # noqa var-spacing
block:
- name: Stop if the provided is not valid
fail:
msg: "Provided channel is not valid"
when: rke2_channel not in channels

- name: Get full version name url
uri:
url: https://update.rke2.io/v1-release/channels/{{ rke2_channel }}
follow_redirects: all
register: rke2_version_url

- name: Set full version name
shell: set -o pipefail && echo {{ rke2_version_url.url }} | sed -e 's|.*/||'
register: rke2_full_version
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_full_version fact # noqa var-spacing
set_fact:
rke2_full_version: "{{ rke2_full_version.stdout if ((install_rke2_version is not defined) or (install_rke2_version|length == 0)) else install_rke2_version }}" # yamllint disable-line rule:line-length

- name: Set dot version
shell: set -o pipefail && echo {{ rke2_full_version }} | /usr/bin/cut -d'+' -f1
register: rke2_version_dot
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_dot fact
set_fact:
rke2_version_dot: "{{ rke2_version_dot.stdout }}"

- name: Set Maj.Min version
shell: set -o pipefail && echo {{ rke2_full_version }} | /bin/awk -F'.' '{ print $1"."$2 }' | sed "s|^v||g"
register: rke2_version_majmin
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_majmin fact
set_fact:
rke2_version_majmin: "{{ rke2_version_majmin.stdout }}"

- name: Set RPM version
shell: set -o pipefail && echo {{ rke2_full_version }} | sed -E -e "s/[\+-]/~/g" | sed -E -e "s/v(.*)/\1/"
register: rke2_version_rpm
changed_when: false
args:
executable: /usr/bin/bash

- name: Set rke2_version_rpm fact
set_fact:
rke2_version_rpm: "{{ rke2_version_rpm.stdout }}"

- name: Describe versions
debug:
msg:
- "Full version: {{ rke2_full_version }}, dot version: {{ rke2_version_dot }}"
- "Maj.Min version: {{ rke2_version_majmin }}, rpm version: {{ rke2_version_rpm }}"

# Does the Rancher RKE2 Common repo exist already
- name: Check to see if rke2-common.repo exists
stat:
Expand Down
Loading

0 comments on commit 74d0f51

Please sign in to comment.