Compare commits

..

66 Commits

Author SHA1 Message Date
Techno Tim
d9a64542fb Merge 01d4bb8f8a into edf0c9eebd 2024-01-23 00:13:11 +00:00
Timothy Stewart
01d4bb8f8a fix(ci): fix molecule 2024-01-22 18:13:00 -06:00
Timothy Stewart
bdc5d0970d fix(ci): fix homebrew 2024-01-22 17:05:21 -06:00
Timothy Stewart
8dc6b7632b fix(ci): fix homebrew 2024-01-22 16:40:07 -06:00
Timothy Stewart
3409f0d431 fix(ci): fix homebrew 2024-01-22 16:34:49 -06:00
Timothy Stewart
d786f615b8 fix(ci): fix homebrew 2024-01-22 16:34:20 -06:00
Timothy Stewart
647a3a8461 fix(ci): fix homebrew 2024-01-22 16:32:53 -06:00
Timothy Stewart
a83078d98d fix(ci): fix homebrew 2024-01-22 16:11:14 -06:00
Timothy Stewart
4d1d11bcb4 fix(ci): fix homebrew 2024-01-22 16:10:21 -06:00
Timothy Stewart
c9f50a792f fix(ci): fix homebrew 2024-01-22 16:07:58 -06:00
Timothy Stewart
74ca472a0f fix(molecule): remove lint 2024-01-22 16:00:20 -06:00
Timothy Stewart
c59d4c5ae4 fix(pip): updating dependencies 2024-01-22 15:50:28 -06:00
Timothy Stewart
27c477be70 fix(molecule): reduce resources 2024-01-22 11:32:48 -06:00
Timothy Stewart
4707002267 fix(ci): adjusting cache steps 2024-01-21 22:35:47 -06:00
Timothy Stewart
ffcc79300a fix(ci): adjusting cache steps 2024-01-21 22:25:22 -06:00
Timothy Stewart
0ae666dfe5 fix(post): Fix liquid formatting 2024-01-21 22:04:09 -06:00
Timothy Stewart
b9d94f3675 fix(ci): adjusting cache steps 2024-01-21 21:13:24 -06:00
Timothy Stewart
8acec7055a fix(ci): adjusting cache steps 2024-01-21 19:59:25 -06:00
Timothy Stewart
fc8ab77be4 fix(ci): adjusting cache steps 2024-01-21 18:42:29 -06:00
Timothy Stewart
f7869f447d fix(ci): adjusting cache steps 2024-01-21 18:32:57 -06:00
Timothy Stewart
eb89255d59 fix(ci): adjusting cache steps 2024-01-21 18:28:51 -06:00
Timothy Stewart
4b8c97c715 fix(ci): adjusting cache steps 2024-01-21 18:01:02 -06:00
Timothy Stewart
5a36416ccb fix(ci): adjusting cache steps 2024-01-21 17:54:20 -06:00
Timothy Stewart
59e76924b8 fix(ci): adjusting cache steps 2024-01-21 17:33:57 -06:00
Timothy Stewart
4f635eb0ef fix(ci): adjusting cache steps 2024-01-21 17:16:46 -06:00
Timothy Stewart
f6597e859d fix(ci): adjusting cache steps 2024-01-21 16:51:29 -06:00
Timothy Stewart
82d36572f1 fix(ci): adjusting cache steps 2024-01-21 16:47:41 -06:00
Timothy Stewart
7f7e0e7921 fix(ci): adjusting cache steps 2024-01-21 16:32:26 -06:00
Timothy Stewart
cdfee6f1e9 fix(ci): adjusting cache steps 2024-01-21 16:28:19 -06:00
Timothy Stewart
f767c32bf8 fix(ci): adjusting cache steps 2024-01-21 16:09:59 -06:00
Timothy Stewart
5cc46eb360 fix(ci): adjusting cache steps 2024-01-21 16:00:24 -06:00
Timothy Stewart
980622fdbd fix(ci): adjusting cache steps 2024-01-21 15:42:13 -06:00
Timothy Stewart
f8e408b3bd fix(ci): adjusting cache steps 2024-01-21 15:40:17 -06:00
Timothy Stewart
0c4bafa70c fix(ci): adjusting cache steps 2024-01-21 15:37:51 -06:00
Timothy Stewart
eb7046fb34 fix(ci): adjusting cache steps 2024-01-21 15:35:30 -06:00
Timothy Stewart
dfdcff7e11 fix(ci): adjusting cache steps 2024-01-21 15:26:36 -06:00
Timothy Stewart
d66e745979 fix(ci): adjusting cache steps 2024-01-21 15:20:26 -06:00
Timothy Stewart
c3597a9623 fix(ci): adjusting cache steps 2024-01-21 15:19:52 -06:00
Timothy Stewart
2333e85148 fix(ci): adjusting cache steps 2024-01-21 15:17:04 -06:00
Timothy Stewart
7c1b17a40c fix(ci): adjusting cache steps 2024-01-21 15:14:37 -06:00
Timothy Stewart
4b4922e1b6 fix(ci): adjusting cache steps 2024-01-21 15:11:38 -06:00
Timothy Stewart
f07009e0c5 fix(ci): move to macos13 2024-01-21 14:49:06 -06:00
Timothy Stewart
0e233e1d0f fix(ci): move to macos13 2024-01-21 14:35:45 -06:00
Timothy Stewart
22a617734d fix(ci): move to macos13 2024-01-21 14:24:51 -06:00
Timothy Stewart
272e9cde2b fix(ci): move to macos13 2024-01-21 14:24:37 -06:00
Timothy Stewart
03e0d00180 fix(ci): move to macos13 2024-01-21 14:11:24 -06:00
Timothy Stewart
68f8f20cd7 fix(ci): move to macos13 2024-01-21 13:57:12 -06:00
Timothy Stewart
10f545ff30 fix(ci): move to macos13 2024-01-21 13:56:20 -06:00
Timothy Stewart
5b7794c6bf fix(ci): move to macos13 2024-01-21 13:55:16 -06:00
Timothy Stewart
0c640c5a95 fix(ci): move to macos13 2024-01-21 13:53:56 -06:00
Timothy Stewart
9117ec4b7a fix(ci): move to macos13 2024-01-21 13:48:07 -06:00
Timothy Stewart
50d60e6164 fix(ci): move to macos13 2024-01-21 13:45:59 -06:00
Timothy Stewart
3345de29fc fix(ci): move to macos13 2024-01-21 13:44:14 -06:00
Timothy Stewart
b7248f89d9 fix(ci): move to macos13 2024-01-21 13:39:56 -06:00
Timothy Stewart
0715ab9440 fix(ci): move to macos13 2024-01-21 13:37:10 -06:00
Timothy Stewart
f2b87ec097 fix(ci): move to macos13 2024-01-21 13:20:36 -06:00
Timothy Stewart
3bb8984d7c fix(ci): Add a cache prestep 2024-01-21 13:15:43 -06:00
Timothy Stewart
a2d4e91aa5 fix(ci): Add a cache prestep 2024-01-21 13:06:16 -06:00
Timothy Stewart
7cfcd9727c fix(ci): Add a cache prestep 2024-01-21 12:52:28 -06:00
Timothy Stewart
7a8c7eccb6 fix(ci): Add a cache prestep 2024-01-21 12:45:33 -06:00
Timothy Stewart
f54eb1bf41 fix(ci): Add a cache prestep 2024-01-21 12:26:18 -06:00
Timothy Stewart
20ea0bc998 fix(ci): Add a cache prestep 2024-01-21 12:18:29 -06:00
Timothy Stewart
867eabcd7e fix(ci): Add a cache prestep 2024-01-21 12:16:21 -06:00
Timothy Stewart
9084c90675 fix(ci): Add a cache prestep 2024-01-21 12:11:54 -06:00
Timothy Stewart
fecf7c7fb3 fix(molecule): Reducing cores and memory 2024-01-21 11:10:43 -06:00
Timothy Stewart
ac4a6e7c20 fix(molecule): Reducing cores and memory 2024-01-21 10:47:38 -06:00
15 changed files with 132 additions and 84 deletions

View File

@@ -9,18 +9,3 @@ updates:
ignore:
- dependency-name: "*"
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"]

View File

@@ -5,7 +5,7 @@ on:
jobs:
molecule:
name: cache
runs-on: self-hosted
runs-on: macos-13
env:
PYTHON_VERSION: "3.11"
@@ -21,6 +21,32 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip' # caching pip dependencies
# - name: Cache Ansible
# uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
# id: cache-ansible
# with:
# path: ~/.ansible/collections
# key: ansible-${{ hashFiles('collections/requirements.yml') }}
# restore-keys: |
# ansible-
- name: Install dependencies
run: |
echo "::group::Upgrade pip"
python3 -m pip install --upgrade pip
echo "::endgroup::"
echo "::group::Install Python requirements from requirements.txt"
python3 -m pip install -r requirements.txt
echo "::endgroup::"
# - name: Install ansible dependencies
# if: steps.cache-ansible.outputs.cache-hit != 'true' # only run if false since this is just a cache step
# run: |
# echo "::group::Install Ansible role requirements from collections/requirements.yml"
# ansible-galaxy install -r collections/requirements.yml
# echo "::endgroup::"
- name: Cache Vagrant boxes
id: cache-vagrant
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
@@ -32,11 +58,30 @@ jobs:
restore-keys: |
vagrant-boxes
- name: Configure Homebrew cache
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
id: cache-homebrew
with:
path: |
~/Library/Caches/Homebrew
key: brew-${{ hashFiles('./Brewfile') }}
restore-keys: brew-
- name: Update Homebrew
if: | # only run if false since this is just a cache step
steps.cache-homebrew.outputs.cache-hit != 'true' || steps.cache-vagrant.outputs.cache-hit != 'true'
run: |
brew update --preinstall
- name: Install Homebrew dependencies
if: | # only run if false since this is just a cache step
steps.cache-homebrew.outputs.cache-hit != 'true' || steps.cache-cache-vagrant.outputs.cache-hit != 'true'
run: |
env HOMEBREW_NO_AUTO_UPDATE=1 brew bundle --no-upgrade --file ./Brewfile
- name: Download Vagrant boxes for all scenarios
# To save some cache space, all scenarios share the same cache key.
# On the other hand, this means that the cache contents should be
# the same across all scenarios. This step ensures that.
if: steps.cache-vagrant.outputs.cache-hit != 'true' # only run if false since this is just a cache step
run: |
./.github/download-boxes.sh
vagrant box list
run: ./.github/download-boxes.sh

View File

@@ -8,11 +8,11 @@ on:
paths-ignore:
- '**/README.md'
jobs:
pre:
cache:
uses: ./.github/workflows/cache.yml
lint:
uses: ./.github/workflows/lint.yml
needs: [pre]
needs: [cache]
test:
uses: ./.github/workflows/test.yml
needs: [pre, lint]
needs: [cache, lint]

View File

@@ -5,7 +5,7 @@ on:
jobs:
pre-commit-ci:
name: Pre-Commit
runs-on: self-hosted
runs-on: macos-13
env:
PYTHON_VERSION: "3.11"
@@ -42,7 +42,7 @@ jobs:
ensure-pinned-actions:
name: Ensure SHA Pinned Actions
runs-on: self-hosted
runs-on: macos-13
steps:
- name: Checkout code
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0

View File

@@ -5,7 +5,7 @@ on:
jobs:
molecule:
name: Molecule
runs-on: self-hosted
runs-on: macos-13
strategy:
matrix:
scenario:
@@ -22,6 +22,11 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}
# - name: Restore Ansible cache
# uses: actions/cache/restore@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
# with:
# path: ~/.ansible/collections
# key: ansible-${{ hashFiles('collections/requirements.yml') }}
- name: Configure VirtualBox
run: |-
sudo mkdir -p /etc/vbox
@@ -36,6 +41,21 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip' # caching pip dependencies
- name: Restore Homebrew cache
uses: actions/cache/restore@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
with:
path: |
~/Library/Caches/Homebrew
key: brew-${{ hashFiles('./Brewfile') }}
- name: Update Homebrew
run: |
brew update --preinstall
- name: Install Homebrew dependencies
run: |
env HOMEBREW_NO_AUTO_UPDATE=1 brew bundle --no-upgrade --file ./Brewfile
- name: Restore vagrant Boxes cache
uses: actions/cache/restore@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
with:
@@ -63,31 +83,6 @@ jobs:
PY_COLORS: 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
if: always() # do this even if a step before has failed
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1
@@ -95,3 +90,7 @@ jobs:
name: logs
path: |
${{ runner.temp }}/logs
- name: Delete old box versions
if: always() # do this even if a step before has failed
run: vagrant box prune --force

5
Brewfile Normal file
View File

@@ -0,0 +1,5 @@
tap "homebrew/bundle"
tap "homebrew/cask-versions"
cask "virtualbox"
cask "vagrant"

View File

@@ -1,5 +1,5 @@
---
k3s_version: v1.29.0+k3s1
k3s_version: v1.25.16+k3s4
# this is the user that has ssh access to these machines
ansible_user: ansibleuser
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.
# 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
# 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.
# 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.
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,

View File

@@ -7,7 +7,7 @@ platforms:
- name: control1
box: generic/ubuntu2204
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -22,8 +22,8 @@ platforms:
ssh.password: "vagrant"
- name: control2
box: generic/debian12
memory: 1024
box: generic/debian11
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -34,7 +34,7 @@ platforms:
- name: control3
box: generic/rocky9
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -45,7 +45,7 @@ platforms:
- name: node1
box: generic/ubuntu2204
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -61,7 +61,7 @@ platforms:
- name: node2
box: generic/rocky9
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -73,7 +73,7 @@ platforms:
provisioner:
name: ansible
env:
ANSIBLE_VERBOSITY: 1
ANSIBLE_VERBOSITY: 3
playbooks:
converge: ../resources/converge.yml
side_effect: ../resources/reset.yml

View File

@@ -6,7 +6,7 @@ driver:
platforms:
- name: control1
box: generic/ubuntu2204
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -22,7 +22,7 @@ platforms:
- name: control2
box: generic/ubuntu2204
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -38,7 +38,7 @@ platforms:
- name: node1
box: generic/ubuntu2204
memory: 1024
memory: 512
cpus: 2
groups:
- k3s_cluster
@@ -54,7 +54,7 @@ platforms:
provisioner:
name: ansible
env:
ANSIBLE_VERBOSITY: 1
ANSIBLE_VERBOSITY: 3
playbooks:
converge: ../resources/converge.yml
side_effect: ../resources/reset.yml

View File

@@ -6,8 +6,8 @@ driver:
platforms:
- name: control1
box: generic/ubuntu2204
memory: 4096
cpus: 4
memory: 512
cpus: 2
config_options:
# We currently can not use public-key based authentication on Ubuntu 22.04,
# see: https://github.com/chef/bento/issues/1405
@@ -22,7 +22,7 @@ platforms:
provisioner:
name: ansible
env:
ANSIBLE_VERBOSITY: 1
ANSIBLE_VERBOSITY: 3
playbooks:
converge: ../resources/converge.yml
side_effect: ../resources/reset.yml

View File

@@ -2,7 +2,7 @@ ansible-core>=2.16.2
jmespath>=1.0.1
jsonpatch>=1.33
kubernetes>=29.0.0
molecule-plugins[vagrant]
molecule-vagrant>=2.0.0
molecule>=6.0.3
netaddr>=0.10.1
pre-commit>=3.6.0

View File

@@ -39,6 +39,8 @@ cryptography==41.0.7
# via ansible-core
distlib==0.3.8
# via virtualenv
distro==1.9.0
# via selinux
enrich==1.2.7
# via molecule
filelock==3.13.1
@@ -53,6 +55,7 @@ jinja2==3.1.3
# via
# ansible-core
# molecule
# molecule-vagrant
jmespath==1.0.1
# via -r requirements.in
jsonpatch==1.33
@@ -76,8 +79,8 @@ mdurl==0.1.2
molecule==6.0.3
# via
# -r requirements.in
# molecule-plugins
molecule-plugins[vagrant]==23.5.0
# molecule-vagrant
molecule-vagrant==2.0.0
# via -r requirements.in
netaddr==0.10.1
# via -r requirements.in
@@ -113,7 +116,7 @@ pygments==2.17.2
python-dateutil==2.8.2
# via kubernetes
python-vagrant==1.0.0
# via molecule-plugins
# via molecule-vagrant
pyyaml==6.0.1
# via
# -r requirements.in
@@ -121,6 +124,7 @@ pyyaml==6.0.1
# ansible-core
# kubernetes
# molecule
# molecule-vagrant
# pre-commit
referencing==0.32.1
# via
@@ -148,6 +152,8 @@ ruamel-yaml==0.18.5
# via pre-commit-hooks
ruamel-yaml-clib==0.2.8
# via ruamel-yaml
selinux==0.3.0
# via molecule-vagrant
six==1.16.0
# via
# kubernetes

View File

@@ -1,8 +1,8 @@
---
- name: Create k3s-node.service.d directory
- name: Create k3s.service.d directory
file:
path: '{{ systemd_dir }}/k3s-node.service.d'
path: '{{ systemd_dir }}/k3s.service.d'
state: directory
owner: root
group: root
@@ -12,7 +12,7 @@
- name: Copy K3s http_proxy conf file
template:
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
group: root
mode: '0755'

View File

@@ -17,19 +17,21 @@
when:
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:
detected_distribution: Raspbian
vars:
allowed_descriptions:
- "[Rr]aspbian.*"
- "Debian.*buster"
- "Debian.*bullseye"
- "Debian.*bookworm"
when:
- ansible_facts.architecture is search("aarch64")
- 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
set_fact:
@@ -37,6 +39,14 @@
when:
- 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_ }}
include_tasks: "{{ item }}"
with_first_found:

View File

@@ -51,9 +51,7 @@
name: "{{ item }}"
state: absent
with_items:
- "{{ systemd_dir }}/k3s.service.d/http_proxy.conf"
- "{{ systemd_dir }}/k3s.service.d"
- "{{ systemd_dir }}/k3s-node.service.d/http_proxy.conf"
- "{{ systemd_dir }}/k3s-node.service.d"
when: proxy_env is defined