diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 10c21d23c..779dde6c9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -90,6 +90,12 @@ jobs: - name: Start VMs run: | ./forge vms start --vms "quadlet client ${{ matrix.database == 'external' && 'database' || '' }}" + - name: Resolve VM FQDNs + run: | + echo "QUADLET_FQDN=$(vagrant ssh quadlet -- hostname -f)" >> "${GITHUB_ENV}" + if [ "${{ matrix.database }}" = "external" ]; then + echo "DATABASE_FQDN=$(vagrant ssh database -- hostname -f)" >> "${GITHUB_ENV}" + fi - name: Configure remote-database if: matrix.database == 'external' run: | @@ -122,7 +128,7 @@ jobs: ./foremanctl pull-images - name: Run deployment run: | - ./foremanctl deploy --certificate-source=${{ matrix.certificate_source }} ${{ matrix.database == 'external' && '--database-mode=external --database-host=database.example.com --database-ssl-ca $(pwd)/.var/lib/foremanctl/db-ca.crt --database-ssl-mode verify-full' || '' }} ${{ matrix.certificate_source == 'custom_server' && '--certificate-server-certificate /root/custom-certificates/certs/quadlet.example.com.crt --certificate-server-key /root/custom-certificates/private/quadlet.example.com.key --certificate-server-ca-certificate /root/custom-certificates/certs/server-ca.crt' || '' }} --foreman-initial-admin-password=changeme --initial-organization "Foreman CI" --initial-location "Internet" --tuning development + ./foremanctl deploy --certificate-source=${{ matrix.certificate_source }} ${{ matrix.database == 'external' && format('--database-mode=external --database-host={0} --database-ssl-ca $(pwd)/.var/lib/foremanctl/db-ca.crt --database-ssl-mode verify-full', env.DATABASE_FQDN) || '' }} ${{ matrix.certificate_source == 'custom_server' && format('--certificate-server-certificate /root/custom-certificates/certs/{0}.crt --certificate-server-key /root/custom-certificates/private/{0}.key --certificate-server-ca-certificate /root/custom-certificates/certs/server-ca.crt', env.QUADLET_FQDN) || '' }} --foreman-initial-admin-password=changeme --initial-organization "Foreman CI" --initial-location "Internet" --tuning development - name: Add optional feature - hammer run: | ./foremanctl deploy --add-feature hammer diff --git a/Vagrantfile b/Vagrantfile index 4226a9765..42b781a5d 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,3 +1,7 @@ +require 'digest' + +prefix = Digest::MD5.hexdigest(Dir.pwd)[0..7] + Vagrant.configure("2") do |config| config.vm.synced_folder ".", "/vagrant" @@ -12,9 +16,10 @@ Vagrant.configure("2") do |config| config.vm.define "quadlet" do |override| override.vm.box = ENV.fetch("FOREMANCTL_BASE_BOX", "centos/stream9") - override.vm.hostname = "quadlet.example.com" + override.vm.hostname = "quadlet.#{prefix}.example.com" override.vm.provider "libvirt" do |libvirt, provider| + libvirt.default_prefix = prefix libvirt.memory = 10240 libvirt.cpus = 4 libvirt.machine_virtual_size = 30 @@ -23,19 +28,22 @@ Vagrant.configure("2") do |config| config.vm.define "client" do |override| override.vm.box = "centos/stream9" - override.vm.hostname = "client.example.com" + override.vm.hostname = "client.#{prefix}.example.com" override.vm.provider "libvirt" do |libvirt, provider| + libvirt.default_prefix = prefix libvirt.memory = 1024 end end config.vm.define "database" do |override| override.vm.box = "centos/stream9" - override.vm.hostname = "database.example.com" + override.vm.hostname = "database.#{prefix}.example.com" override.vm.provider "libvirt" do |libvirt, provider| + libvirt.default_prefix = prefix libvirt.memory = 2048 end end end + diff --git a/tests/conftest.py b/tests/conftest.py index 656632c90..385da6fcd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -30,8 +30,8 @@ def server_hostname(): @pytest.fixture(scope="module") -def server_fqdn(server_hostname): - return f'{server_hostname}.example.com' +def server_fqdn(server): + return server.check_output('hostname -f') @pytest.fixture(scope="module") @@ -40,8 +40,8 @@ def client_hostname(): @pytest.fixture(scope="module") -def client_fqdn(client_hostname): - return f'{client_hostname}.example.com' +def client_fqdn(client): + return client.check_output('hostname -f') @pytest.fixture(scope="module")