Skip to content

Commit

Permalink
Merge develop into master
Browse files Browse the repository at this point in the history
  • Loading branch information
lyraphase-runner authored Feb 2, 2025
2 parents bd6b80f + 4063ff3 commit ffe30d9
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 8 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-11, macos-12]
os: [macos-13, macos-14, macos-15]
steps:
- name: DEBUG What is GitHub Actions IP?
run: |
Expand Down Expand Up @@ -78,21 +78,21 @@ jobs:
run: |
echo BREWFILE_PATH=$BREWFILE_PATH
echo GITHUB_WORKSPACE=$GITHUB_WORKSPACE
if: env.debug_ci == 'true'
if: ${{ env.debug_ci == 'true' || runner.debug == '1' }}
- name: DEBUG - Print all shell env exports
run: export -p
if: env.debug_ci == 'true'
if: ${{ env.debug_ci == 'true' || runner.debug == '1' }}
- name: DEBUG - List workspace and Homebrew contents
run: |
ls -lAR ${GITHUB_WORKSPACE}
ls -lR /usr/local/Homebrew
if: env.debug_ci == 'true'
if: ${{ env.debug_ci == 'true' || runner.debug == '1' }}
- name: Generate Brewfile from soloistrc test fixture
run: make brewfile
- name: DEBUG - Where are Brewfiles?
run: |
find ${GITHUB_WORKSPACE} -iname 'Brewfile*'
if: env.debug_ci == 'true'
if: ${{ env.debug_ci == 'true' || runner.debug == '1' }}
- name: Configure Homebrew cache
uses: actions/cache@v4
with:
Expand Down Expand Up @@ -127,4 +127,4 @@ jobs:
- name: DEBUG - Where are Brewfiles? (exclude nodes and vendor dirs)
run: |
find ${GITHUB_WORKSPACE} \( -type d -a \( -name '*/nodes' -o -name '*/vendor' \) -prune \) -o -iname 'Brewfile*'
if: env.debug_ci == 'true'
if: ${{ env.debug_ci == 'true' || runner.debug == '1' }}
87 changes: 87 additions & 0 deletions .kitchen.libvirt.qemu-tls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<%
# Hack to fix a bug in TK. TK supports using an SSH gateway in its SSH transport, but appears not to support configuring
# separate keys for the gateway and the destination.
require 'kitchen/transport/ssh'
GATEWAY_KEYS = ["#{ENV['HOME']}/.ssh/identity.lyra"]
class Kitchen::Transport::Ssh::Connection
# Replace this method in TK core with a version that uses the logged in user's key to access the SSH gateway.
def establish_connection_via_gateway(opts)
retry_connection(opts) do
Net::SSH::Gateway.new(ssh_gateway, ssh_gateway_username, options.merge(keys: GATEWAY_KEYS))
.ssh(hostname, username, options)
end
end
end
%>
---
driver:
name: vagrant
provider: libvirt
vagrantfiles:
- 'test/fixtures/Vagrantfile.libvirt-qemu-tls'
synced_folders:
- [".", "/tmp/kitchen/soloist", "disabled: false, type: 'rsync'"]
# TODO: Find & fix bugs in Vagrant where it checks for vagrant-host path... needs to support remote NFS & 9p libvirt mounts
# TODO: Fix mount: false setting for 9p
# TODO: Fix auto-mount capability for Darwin / macOS... needs mount_9p support (see man mount_9p)
# Need to implement mount_9p_shared_folder capability for macOS / Darwin
# https://github.com/vagrant-libvirt/vagrant-libvirt/search?q=mount_9p_shared_folder
# NOTE: For qemu+ssh remote libvirt VM, create a fake directory matching hostpath on the host running vagrant
# In this use case, both hostpath & guestpath live on the same remote libvirt + qemu hypervisor host & VM (guest)
# - ["/opt/export/terabyte", "/System/Volumes/Data/terabyte", "hostpath: '/export/terabyte', guestpath: '/System/Volumes/Data/terabyte', disabled: false, type: '9p', mount: false, accessmode: 'squash', owner:'1000'"]
# - ["/export/terabyte", "/System/Volumes/Data/terabyte", "disabled: false, type: 'nfs', nfs_export: false, bsd__nfs_options: '-fstype=nfs,nolockd,resvport,hard,bg,intr,rw,tcp,nfc'"]
# ssh_gateway_username: trinitronx

# customize:
# memory: 1024

transport:
ssh_gateway: saturn.internal
ssh_gateway_username: trinitronx
# username: vagrant

provisioner:
# name: chef_zero
transport:
ssh_gateway: saturn.internal
ssh_gateway_username: trinitronx

# deprecations_as_errors: true
deprecations_as_errors: false
# multiple_converge: 2
# enforce_idempotency: true

verifier:
name: inspec
## Client error, can't connect to 'ssh' backend: Only one of proxy_command or bastion_host needs to be specified]
## Apparently the transport ssh_gateway option is actually passed through to InSpec
# proxy_command: ssh saturn.local -q0 %h:%p

platforms:
- name: ubuntu-20.04
driver:
box: generic/ubuntu2004
lifecycle:
pre_converge:
- remote: sudo addgroup --system admin
- remote: sudo usermod -a -G admin kitchen
- name: macos-12-1
driver:
box: lyraphase-runner/macos-monterey-base
box_url: http://saturn.local:8888/lyraphase-runner-macos-monterey-base.box
communicator: ssh
gui: true
customize:
memory: 4096
# cpus: 2

suites:
- name: default
run_list:
- recipe[sprout-base::default]
attributes:
mysql_test:
version: '8.0'
# includes: [ubuntu-20.04, macos-latest]
6 changes: 5 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ repos:
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
exclude: \.kitchen\.libvirt\.ssh\.yml
exclude: |
(?x)^(
\.kitchen\.libvirt\.ssh\.yml|
\.kitchen\.libvirt\.qemu-tls\.yml
)$
- id: end-of-file-fixer
- id: trailing-whitespace
exclude: .*\.patch
Expand Down
3 changes: 2 additions & 1 deletion bootstrap-scripts/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,10 @@ prevent_sudo_timeout() {
}

# Kill sudo timestamp refresh PID and invalidate sudo timestamp
# shellcheck disable=SC2317 # false-positive koalaman/shellcheck#2660
kill_timeout_loop() {
echo "Killing $timeout_loop_PID due to trap"
kill -TERM $timeout_loop_PID
kill -TERM "$timeout_loop_PID"
sudo -K
}
trap kill_timeout_loop EXIT HUP TSTP QUIT SEGV TERM INT ABRT # trap all common terminate signals
Expand Down
1 change: 1 addition & 0 deletions soloistrc.lyra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ node_attributes:
- shellcheck
- yamllint
- ansible-builder
- ansible-creator
- ansible-lint
- sshpass
- ansible
Expand Down
18 changes: 18 additions & 0 deletions test/fixtures/Vagrantfile.libvirt-qemu-tls
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'

Vagrant.configure("2") do |config|

#config.ssh.host = 'saturn.local'
#config.ssh.port = 2222
config.ssh.proxy_command = 'ssh -t -T saturn.internal exec nc -q0 %h %p'
config.vm.synced_folder ".", "/tmp/vagrant", disabled: true

config.vm.provider :libvirt do |libvirt|
libvirt.uri = 'qemu+tls://saturn.internal/system'
libvirt.system_uri = 'qemu+tls://saturn.internal/system'
#libvirt.forward_ssh_port = true
end
end

0 comments on commit ffe30d9

Please sign in to comment.