mirror of
https://github.com/PyratLabs/ansible-role-k3s
synced 2025-01-08 18:50:19 +01:00
Added the ability to set k3s_release_version as a release channel
This commit is contained in:
parent
e3301a59e4
commit
5ce8dec6ff
4 changed files with 36 additions and 9 deletions
21
README.md
21
README.md
|
@ -46,7 +46,7 @@ consistency.
|
||||||
| Variable | Description | Default Value |
|
| Variable | Description | Default Value |
|
||||||
|----------------------------------|-------------------------------------------------------------------------------------|-----------------------------------------|
|
|----------------------------------|-------------------------------------------------------------------------------------|-----------------------------------------|
|
||||||
| `k3s_cluster_state` | State of cluster: installed, started, stopped, restarted, downloaded, uninstalled. | installed |
|
| `k3s_cluster_state` | State of cluster: installed, started, stopped, restarted, downloaded, uninstalled. | installed |
|
||||||
| `k3s_release_version` | Use a specific version of k3s, eg. `v0.2.0`. Specify `false` for latest. | `false` |
|
| `k3s_release_version` | Use a specific version of k3s, eg. `v0.2.0`. Specify `false` for stable. | `false` |
|
||||||
| `k3s_build_cluster` | When multiple `play_hosts` are available, attempt to cluster. Read notes below. | `true` |
|
| `k3s_build_cluster` | When multiple `play_hosts` are available, attempt to cluster. Read notes below. | `true` |
|
||||||
| `k3s_github_url` | Set the GitHub URL to install k3s from. | https://github.com/rancher/k3s |
|
| `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` |
|
| `k3s_install_dir` | Installation directory for k3s. | `/usr/local/bin` |
|
||||||
|
@ -89,12 +89,23 @@ consistency.
|
||||||
|
|
||||||
#### Important note about `k3s_release_version`
|
#### Important note about `k3s_release_version`
|
||||||
|
|
||||||
If you do not set a `k3s_release_version` the latest version of k3s will be
|
If you do not set a `k3s_release_version` the latest version from the stable
|
||||||
installed. If you are developing against a specific version of k3s you must
|
channel of k3s will be installed. If you are developing against a specific
|
||||||
ensure this is set in your Ansible configuration, eg:
|
version of k3s you must ensure this is set in your Ansible configuration, eg:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
k3s_release_version: v0.2.0
|
k3s_release_version: v1.16.9+k3s1
|
||||||
|
```
|
||||||
|
|
||||||
|
It is also possible to install specific K3s "Channels", below are some
|
||||||
|
examples for `k3s_release_version`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
k3s_release_version: false # defaults to 'stable' channel
|
||||||
|
k3s_release_version: stable # latest 'stable' release
|
||||||
|
k3s_release_version: testing # latest 'testing' release
|
||||||
|
k3s_release_version: v1.18 # latest v1.18 release
|
||||||
|
k3s_release_version: v1.17-testing # latest v1.17 testing release
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Important note about `k3s_build_cluster`
|
#### Important note about `k3s_build_cluster`
|
||||||
|
|
|
@ -1,12 +1,24 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Get the latest release version from GitHub
|
- name: Ensure k3s_release_version is set to default if false
|
||||||
|
set_fact:
|
||||||
|
k3s_release_version: "{{ k3s_release_channel }}"
|
||||||
|
when: k3s_release_version is defined and not k3s_release_version
|
||||||
|
|
||||||
|
- name: Ensure the default release channel is set
|
||||||
|
set_fact:
|
||||||
|
k3s_release_channel: "{{ k3s_release_version | default('stable') }}"
|
||||||
|
|
||||||
|
- name: Get the latest release version from k3s.io
|
||||||
uri:
|
uri:
|
||||||
url: "{{ k3s_github_api_releases }}"
|
url: "{{ k3s_api_releases }}"
|
||||||
return_content: true
|
return_content: true
|
||||||
body_format: json
|
body_format: json
|
||||||
register: k3s_latest_release
|
register: k3s_latest_release
|
||||||
|
|
||||||
- name: Ensure the release version is set as a fact
|
- name: Ensure the release version is set as a fact
|
||||||
set_fact:
|
set_fact:
|
||||||
k3s_release_version: "{{ k3s_latest_release.json.tag_name }}"
|
k3s_release_version: "{{ item.latest }}"
|
||||||
|
loop: "{{ k3s_latest_release.json.data }}"
|
||||||
|
when: item.name == k3s_release_channel
|
||||||
|
and item.type == "channel"
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
- import_tasks: teardown/drain-and-remove-nodes.yml
|
- import_tasks: teardown/drain-and-remove-nodes.yml
|
||||||
|
|
||||||
- import_tasks: build/get-version.yml
|
- import_tasks: build/get-version.yml
|
||||||
when: k3s_release_version is not defined or not k3s_release_version
|
when: k3s_release_version is not defined
|
||||||
|
or not k3s_release_version
|
||||||
|
or k3s_release_version is not regex('\\+k3s[1-9]$')
|
||||||
|
|
||||||
- import_tasks: validate/main.yml
|
- import_tasks: validate/main.yml
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,10 @@ k3s_arch_lookup:
|
||||||
arch: arm
|
arch: arm
|
||||||
suffix: "-armhf"
|
suffix: "-armhf"
|
||||||
|
|
||||||
|
k3s_release_channel: stable
|
||||||
k3s_github_api: "{{ k3s_github_url | replace('github.com', 'api.github.com') }}"
|
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_api_releases: "{{ k3s_github_api | replace('.com', '.com/repos') }}/releases/latest"
|
||||||
|
k3s_api_releases: https://update.k3s.io/v1-release/channels
|
||||||
k3s_github_download_url: "{{ k3s_github_url }}/releases/download"
|
k3s_github_download_url: "{{ k3s_github_url }}/releases/download"
|
||||||
k3s_controller_count: []
|
k3s_controller_count: []
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue