From da427f1518f1ce7d80847f629c87f6d9d4a9122b Mon Sep 17 00:00:00 2001 From: Xan Manning Date: Sat, 28 Dec 2019 15:50:17 +0000 Subject: [PATCH] Added new state "downloaded" - improved getting latest version --- README.md | 2 +- molecule/default/playbook-download.yml | 9 +++++++++ tasks/build/get-version.yml | 6 ++++-- tasks/main.yml | 2 +- tasks/state-downloaded.yml | 6 ++++++ vars/main.yml | 2 ++ 6 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 molecule/default/playbook-download.yml create mode 100644 tasks/state-downloaded.yml diff --git a/README.md b/README.md index 688f445..573f7e6 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ consistency. | Variable | Description | Default Value | |--------------------------------|--------------------------------------------------------------------------|--------------------------------| -| `k3s_cluster_state` | State of cluster, options: installed, started, stopped, restarted. | installed | +| `k3s_cluster_state` | State of cluster: installed, started, stopped, restarted, downloaded. | installed | | `k3s_release_version` | Use a specific version of k3s, eg. `v0.2.0`. Specify `false` for latest. | `false` | | `k3s_github_url` | Set the GitHub URL to install k3s from. | https://github.com/rancher/k3s | | `k3s_install_dir` | Installation directory for k3s. | `/usr/local/bin` | diff --git a/molecule/default/playbook-download.yml b/molecule/default/playbook-download.yml new file mode 100644 index 0000000..9e3efc4 --- /dev/null +++ b/molecule/default/playbook-download.yml @@ -0,0 +1,9 @@ +--- +- name: Converge + hosts: all + become: true + vars: + molecule_is_test: true + k3s_cluster_state: downloaded + roles: + - role: xanmanning.k3s diff --git a/tasks/build/get-version.yml b/tasks/build/get-version.yml index 8a91a1a..d4de9f6 100644 --- a/tasks/build/get-version.yml +++ b/tasks/build/get-version.yml @@ -2,9 +2,11 @@ - name: Get the latest release version from GitHub uri: - url: https://github.com/rancher/k3s/releases/latest + url: "{{ k3s_github_api_releases }}" + return_content: true + body_format: json register: k3s_latest_release - name: Ensure the release version is set as a fact set_fact: - k3s_release_version: "{{ k3s_latest_release.url.split('/')[-1] }}" + k3s_release_version: "{{ k3s_latest_release.json.tag_name }}" diff --git a/tasks/main.yml b/tasks/main.yml index 9a81157..7e98735 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,7 +3,7 @@ - name: Check to see if k3s_cluster_state is a supported value assert: that: - - k3s_cluster_state in ['installed', 'started', 'stopped', 'restarted'] + - k3s_cluster_state in ['installed', 'started', 'stopped', 'restarted', 'downloaded'] fail_msg: "k3s_cluster_state not valid. Check README.md for details." success_msg: "k3s_cluster_state is valid." when: k3s_cluster_state is defined diff --git a/tasks/state-downloaded.yml b/tasks/state-downloaded.yml new file mode 100644 index 0000000..6ec330d --- /dev/null +++ b/tasks/state-downloaded.yml @@ -0,0 +1,6 @@ +--- + +- import_tasks: build/get-version.yml + when: k3s_release_version is not defined or not k3s_release_version + +- import_tasks: build/download-k3s.yml diff --git a/vars/main.yml b/vars/main.yml index edb1832..22429dc 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -26,6 +26,8 @@ k3s_arch_lookup: arch: arm suffix: "-armhf" +k3s_github_api: "{{ k3s_github_url | replace('github.com', 'api.github.com') }}" +k3s_github_api_releases: "{{ k3s_github_api | replace('.com', '.com/repos') }}/releases/latest" k3s_github_download_url: "{{ k3s_github_url }}/releases/download" k3s_controller_count: []