# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrant box for testing k3s with cgroup v2. # Invoked via k3s/.github/workflows/cgroup2.yaml . # # The following files need to be present in this directory: # - k3s # - k3s.service # - k3s-rootless.service # - util/ Vagrant.configure("2") do |config| config.vm.box = "fedora/34-cloud-base" memory = 2048 cpus = 2 config.vm.provider :virtualbox do |v| v.memory = memory v.cpus = cpus end config.vm.provider :libvirt do |v| v.memory = memory v.cpus = cpus end config.vm.provision "install-k3s", type: "shell", run: "once" do |sh| sh.inline = <<~SHELL set -eux -o pipefail # Install k3s binary install -m 755 /vagrant/k3s /usr/local/bin ln -sf /usr/local/bin/k3s /usr/local/bin/kubectl # Install k3s systemd service (not launched here) cp -f /vagrant/k3s.service /etc/systemd/system/k3s.service touch /etc/systemd/system/k3s.service.env systemctl daemon-reload # Install sonobuoy binary curl -fsSL https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.20.0/sonobuoy_0.20.0_linux_amd64.tar.gz | tar xzvC /usr/local/bin sonobuoy # [Rootless] Configure sysctl echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/rootless.conf sysctl --system # [Rootless] Enable cgroup v2 delegation mkdir -p /etc/systemd/system/user@.service.d cat <<-EOF > /etc/systemd/system/user@.service.d/delegate.conf [Service] Delegate=yes EOF systemctl daemon-reload # [Rootless] Enable systemd lingering loginctl enable-linger vagrant # [Rootless] Install k3s-rootless systemd service (not launched here) mkdir -p /home/vagrant/.config/systemd/user cp -f /vagrant/k3s-rootless.service /home/vagrant/.config/systemd/user/k3s-rootless.service chown -R vagrant:vagrant /home/vagrant/.config SHELL end end