4 Commits

Author SHA1 Message Date
egandro 875994ddea Merge f6f661f013 into e2e9881f0f 2024-01-25 04:27:13 +00:00
Techno Tim f6f661f013 Merge branch 'master' into fix-metallb-updates 2024-01-24 22:27:10 -06:00
Techno Tim 9054c279ac Merge branch 'master' into fix-metallb-updates 2024-01-19 08:37:47 -06:00
Harald Fielker 77b32ce12d added fix for metallb version upgrades 2023-11-05 02:31:29 +01:00
10 changed files with 58 additions and 67 deletions
-15
View File
@@ -9,18 +9,3 @@ updates:
ignore: ignore:
- dependency-name: "*" - dependency-name: "*"
update-types: ["version-update:semver-major"] update-types: ["version-update:semver-major"]
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
rebase-strategy: "auto"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
rebase-strategy: "auto"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
+4 -25
View File
@@ -63,31 +63,6 @@ jobs:
PY_COLORS: 1 PY_COLORS: 1
ANSIBLE_FORCE_COLOR: 1 ANSIBLE_FORCE_COLOR: 1
# these steps are necessary if not using ephemeral nodes
- name: Delete old Vagrant box versions
if: always() # do this even if a step before has failed
run: vagrant box prune --force
- name: Remove all local Vagrant boxes
if: always() # do this even if a step before has failed
run: vagrant box list | cut -f 1 -d ' ' | xargs -L 1 vagrant box remove -f
- name: Remove all Virtualbox VMs
if: always() # do this even if a step before has failed
run: VBoxManage list vms | awk -F'"' '{print $2}' | xargs -I {} VBoxManage unregistervm --delete "{}"
- name: Remove all Virtualbox HDs
if: always() # do this even if a step before has failed
run: VBoxManage list hdds | awk -F':' '/^UUID:/ {print $2}' | xargs -I {} VBoxManage closemedium disk "{}" --delete
- name: Remove all Virtualbox Networks
if: always() # do this even if a step before has failed
run: VBoxManage list hostonlyifs | grep '^Name:' | awk '{print $2}' | grep '^vboxnet' | xargs -I {} VBoxManage hostonlyif remove {}
- name: Remove Virtualbox network config
if: always() # do this even if a step before has failed
run: sudo rm /etc/vbox/networks.conf
- name: Upload log files - name: Upload log files
if: always() # do this even if a step before has failed if: always() # do this even if a step before has failed
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1 uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1
@@ -95,3 +70,7 @@ jobs:
name: logs name: logs
path: | path: |
${{ runner.temp }}/logs ${{ runner.temp }}/logs
- name: Delete old box versions
if: always() # do this even if a step before has failed
run: vagrant box prune --force
+3 -3
View File
@@ -1,5 +1,5 @@
--- ---
k3s_version: v1.27.9+k3s1 k3s_version: v1.25.16+k3s4
# this is the user that has ssh access to these machines # this is the user that has ssh access to these machines
ansible_user: ansibleuser ansible_user: ansibleuser
systemd_dir: /etc/systemd/system systemd_dir: /etc/systemd/system
@@ -66,9 +66,9 @@ metal_lb_ip_range: "192.168.30.80-192.168.30.90"
# Please read https://gist.github.com/triangletodd/02f595cd4c0dc9aac5f7763ca2264185 before using this. # Please read https://gist.github.com/triangletodd/02f595cd4c0dc9aac5f7763ca2264185 before using this.
# Most notably, your containers must be privileged, and must not have nesting set to true. # Most notably, your containers must be privileged, and must not have nesting set to true.
# Please note this script disables most of the security of lxc containers, with the trade off being that lxc # Please note this script disables most of the security of lxc containers, with the trade off being that lxc
# containers are significantly more resource efficient compared to full VMs. # containers are significantly more resource efficent compared to full VMs.
# Mixing and matching VMs and lxc containers is not supported, ymmv if you want to do this. # Mixing and matching VMs and lxc containers is not supported, ymmv if you want to do this.
# I would only really recommend using this if you have particularly low powered proxmox nodes where the overhead of # I would only really recommend using this if you have partiularly low powered proxmox nodes where the overhead of
# VMs would use a significant portion of your available resources. # VMs would use a significant portion of your available resources.
proxmox_lxc_configure: false proxmox_lxc_configure: false
# the user that you would use to ssh into the host, for example if you run ssh some-user@my-proxmox-host, # the user that you would use to ssh into the host, for example if you run ssh some-user@my-proxmox-host,
+6 -6
View File
@@ -7,7 +7,7 @@ platforms:
- name: control1 - name: control1
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -22,8 +22,8 @@ platforms:
ssh.password: "vagrant" ssh.password: "vagrant"
- name: control2 - name: control2
box: generic/debian12 box: generic/debian11
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -34,7 +34,7 @@ platforms:
- name: control3 - name: control3
box: generic/rocky9 box: generic/rocky9
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -45,7 +45,7 @@ platforms:
- name: node1 - name: node1
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -61,7 +61,7 @@ platforms:
- name: node2 - name: node2
box: generic/rocky9 box: generic/rocky9
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
+3 -3
View File
@@ -6,7 +6,7 @@ driver:
platforms: platforms:
- name: control1 - name: control1
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -22,7 +22,7 @@ platforms:
- name: control2 - name: control2
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
@@ -38,7 +38,7 @@ platforms:
- name: node1 - name: node1
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 1024 memory: 4096
cpus: 2 cpus: 2
groups: groups:
- k3s_cluster - k3s_cluster
+2 -2
View File
@@ -6,8 +6,8 @@ driver:
platforms: platforms:
- name: control1 - name: control1
box: generic/ubuntu2204 box: generic/ubuntu2204
memory: 4096 memory: 8192
cpus: 4 cpus: 8
config_options: config_options:
# We currently can not use public-key based authentication on Ubuntu 22.04, # We currently can not use public-key based authentication on Ubuntu 22.04,
# see: https://github.com/chef/bento/issues/1405 # see: https://github.com/chef/bento/issues/1405
+3 -3
View File
@@ -1,8 +1,8 @@
--- ---
- name: Create k3s-node.service.d directory - name: Create k3s.service.d directory
file: file:
path: '{{ systemd_dir }}/k3s-node.service.d' path: '{{ systemd_dir }}/k3s.service.d'
state: directory state: directory
owner: root owner: root
group: root group: root
@@ -12,7 +12,7 @@
- name: Copy K3s http_proxy conf file - name: Copy K3s http_proxy conf file
template: template:
src: "http_proxy.conf.j2" src: "http_proxy.conf.j2"
dest: "{{ systemd_dir }}/k3s-node.service.d/http_proxy.conf" dest: "{{ systemd_dir }}/k3s.service.d/http_proxy.conf"
owner: root owner: root
group: root group: root
mode: '0755' mode: '0755'
+19
View File
@@ -8,6 +8,25 @@
with_items: "{{ groups[group_name_master | default('master')] }}" with_items: "{{ groups[group_name_master | default('master')] }}"
run_once: true run_once: true
- name: Delete outdated metallb replicas
shell: |-
set -o pipefail
REPLICAS=$(k3s kubectl --namespace='metallb-system' get replicasets \
-l 'component=controller,app=metallb' \
-o jsonpath='{.items[0].spec.template.spec.containers[0].image}, {.items[0].metadata.name}' 2>/dev/null || true)
REPLICAS_SETS=$(echo ${REPLICAS} | grep -v '{{ metal_lb_controller_tag_version }}' | sed -e "s/^.*\s//g")
if [ -n "${REPLICAS_SETS}" ] ; then
for REPLICAS in "${REPLICAS_SETS}"
do
k3s kubectl --namespace='metallb-system' \
delete rs "${REPLICAS}"
done
fi
changed_when: false
run_once: true
with_items: "{{ groups[group_name_master | default('master')] }}"
- name: Copy metallb CRs manifest to first master - name: Copy metallb CRs manifest to first master
template: template:
src: "metallb.crs.j2" src: "metallb.crs.j2"
+18 -8
View File
@@ -17,19 +17,21 @@
when: when:
grep_cpuinfo_raspberrypi.rc == 0 or grep_device_tree_model_raspberrypi.rc == 0 grep_cpuinfo_raspberrypi.rc == 0 or grep_device_tree_model_raspberrypi.rc == 0
- name: Set detected_distribution to Raspbian (ARM64 on Raspbian, Debian Buster/Bullseye/Bookworm) - name: Set detected_distribution to Raspbian
set_fact:
detected_distribution: Raspbian
when: >
raspberry_pi|default(false) and
( ansible_facts.lsb.id|default("") == "Raspbian" or
ansible_facts.lsb.description|default("") is match("[Rr]aspbian.*") )
- name: Set detected_distribution to Raspbian (ARM64 on Debian Buster)
set_fact: set_fact:
detected_distribution: Raspbian detected_distribution: Raspbian
vars:
allowed_descriptions:
- "[Rr]aspbian.*"
- "Debian.*buster"
- "Debian.*bullseye"
- "Debian.*bookworm"
when: when:
- ansible_facts.architecture is search("aarch64") - ansible_facts.architecture is search("aarch64")
- raspberry_pi|default(false) - raspberry_pi|default(false)
- ansible_facts.lsb.description|default("") is match(allowed_descriptions | join('|')) - ansible_facts.lsb.description|default("") is match("Debian.*buster")
- name: Set detected_distribution_major_version - name: Set detected_distribution_major_version
set_fact: set_fact:
@@ -37,6 +39,14 @@
when: when:
- detected_distribution | default("") == "Raspbian" - detected_distribution | default("") == "Raspbian"
- name: Set detected_distribution to Raspbian (ARM64 on Debian Bullseye)
set_fact:
detected_distribution: Raspbian
when:
- ansible_facts.architecture is search("aarch64")
- raspberry_pi|default(false)
- ansible_facts.lsb.description|default("") is match("Debian.*bullseye")
- name: Execute OS related tasks on the Raspberry Pi - {{ action_ }} - name: Execute OS related tasks on the Raspberry Pi - {{ action_ }}
include_tasks: "{{ item }}" include_tasks: "{{ item }}"
with_first_found: with_first_found:
-2
View File
@@ -51,9 +51,7 @@
name: "{{ item }}" name: "{{ item }}"
state: absent state: absent
with_items: with_items:
- "{{ systemd_dir }}/k3s.service.d/http_proxy.conf"
- "{{ systemd_dir }}/k3s.service.d" - "{{ systemd_dir }}/k3s.service.d"
- "{{ systemd_dir }}/k3s-node.service.d/http_proxy.conf"
- "{{ systemd_dir }}/k3s-node.service.d" - "{{ systemd_dir }}/k3s-node.service.d"
when: proxy_env is defined when: proxy_env is defined