main
Ricard Illa 2022-10-30 15:53:04 +01:00
parent 63abc810ce
commit 8fe7c11617
3 changed files with 127 additions and 0 deletions

28
roles/k3s/files/init.d/k3s Executable file
View File

@ -0,0 +1,28 @@
#!/sbin/openrc-run
depend() {
after network-online
want cgroups
}
start_pre() {
rm -f /tmp/k3s.*
}
supervisor=supervise-daemon
name=k3s
command="/usr/local/bin/k3s"
command_args="server \
>>/var/log/k3s.log 2>&1"
output_log=/var/log/k3s.log
error_log=/var/log/k3s.log
pidfile="/var/run/k3s.pid"
respawn_delay=5
respawn_max=0
set -o allexport
if [ -f /etc/environment ]; then source /etc/environment; fi
if [ -f /etc/rancher/k3s/k3s.env ]; then source /etc/rancher/k3s/k3s.env; fi
set +o allexport

70
roles/k3s/tasks/main.yml Normal file
View File

@ -0,0 +1,70 @@
---
- name: set k3s download suffix
set_fact:
k3s_suffix: "{{ k3s_suffix_lookup[ansible_architecture] }}"
- name: download k3s binary
get_url:
url: "{{ k3s_download_base_url }}/k3s{{ k3s_suffix }}"
dest: /usr/local/bin/k3s
checksum: "sha256:{{ k3s_download_base_url }}/sha256sum{{ k3s_suffix }}.txt"
mode: '0755'
- name: create k3s symlinks
file:
state: link
src: /usr/local/bin/k3s
dest: "/usr/local/bin/{{ item }}"
loop:
- kubectl
- crictl
- ctr
- name: create /etc/rancher/k3s directory
file:
path: /etc/rancher/k3s
state: directory
- name: create k3s.env
file:
state: touch
path: /etc/rancher/k3s/k3s.env
mode: '0600'
modification_time: preserve
access_time: preserve
- name: copy service file
copy:
src: init.d/k3s
dest: /etc/init.d
mode: '0755'
when: ansible_distribution == "Alpine"
- name: enable and start k3s
service:
name: k3s
state: started
enabled: true
when: ansible_distribution == "Alpine"
- name: add cgroup options cmdline.txt
replace:
path: /media/mmcblk0p1/cmdline.txt
regexp: '^([\w](?!.*\b{{ item }}\b).*)$'
replace: '\1 {{ item }}'
loop:
- "cgroup_memory=1"
- "cgroup_enable=memory"
- "cgroup_enable=cpuset"
- name: add k3s files to lbu
lbu:
include:
- /usr/local/bin/k3s
- /usr/local/bin/kubectl
- /usr/local/bin/crictl
- /usr/local/bin/ctr
- /etc/rancher/k3s/k3s.env
- /etc/init.d/k3s
when: ansible_distribution == "Alpine" and alpine_mode in ["diskless", "data"]

29
roles/k3s/vars/main.yml Normal file
View File

@ -0,0 +1,29 @@
---
# The version for a given channel can be found with
#
# ```sh
# CHANNEL_URL=${CHANNEL_URL:-'https://update.k3s.io/v1-release/channels'}
# CHANNEL=${CHANNEL:-'stable'}
# curl \
# --write-out '%{url_effective}' \
# --location \
# --silent \
# --show-error \
# "${CHANNEL_URL}/${CHANNEL}" \
# -o /dev/null |
# sed -e 's|.*/||'
# ```
k3s_version: v1.24.6+k3s1
k3s_suffix_lookup:
amd64: ""
x86_64: ""
arm64: "-arm64"
aarch64: "-arm64"
armv7l: "-armhf" # any other arm* should be `-armhf` too
s390x: "-s390x"
k3s_releases_url: "https://github.com/k3s-io/k3s/releases/download"
k3s_download_base_url: "{{ k3s_releases_url }}/{{ k3s_version }}"