diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01f1d0328..c9a9a4a72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ name: ci jobs: lint-unit: - uses: sous-chefs/.github/.github/workflows/lint-unit.yml@main + uses: sous-chefs/.github/.github/workflows/lint-unit.yml@6.0.0 permissions: actions: write checks: write @@ -32,7 +32,8 @@ jobs: - centos-stream-10 - debian-12 - debian-13 - - opensuse-leap-15 + - fedora-latest + - opensuse-leap-160 - oraclelinux-8 - oraclelinux-9 - rockylinux-8 @@ -63,17 +64,17 @@ jobs: # See: https://github.com/amazonlinux/amazon-linux-2023/issues/532 - os: amazonlinux-2023 suite: mod-wsgi - # mod_wsgi idempotency issue on openSUSE Leap 15 - package reinstalls on second run - - os: opensuse-leap-15 + # mod_wsgi idempotency issue on openSUSE Leap - package reinstalls on second run + - os: opensuse-leap-160 suite: mod-wsgi steps: - name: Check out code - uses: actions/checkout@v5 - - name: Install Chef - uses: actionshub/chef-install@main + uses: actions/checkout@v6 + - name: Install Cinc Workstation + uses: sous-chefs/.github/.github/actions/install-workstation@6.0.0 - name: Dokken - uses: actionshub/test-kitchen@main + uses: actionshub/test-kitchen@3.0.0 env: CHEF_LICENSE: accept-no-persist KITCHEN_LOCAL_YAML: kitchen.dokken.yml @@ -91,4 +92,4 @@ jobs: runs-on: ubuntu-latest needs: [integration] steps: - - run: echo ${{needs.integration.outputs}} + - run: echo "Integration complete" diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 3fa3ae322..fb373d6c6 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -17,8 +17,8 @@ jobs: contents: read steps: - name: Check out code - uses: actions/checkout@v5 - - name: Install Chef - uses: actionshub/chef-install@main + uses: actions/checkout@v6 + - name: Install Cinc Workstation + uses: sous-chefs/.github/.github/actions/install-workstation@6.0.0 - name: Install cookbooks run: berks install diff --git a/LIMITATIONS.md b/LIMITATIONS.md index e29223f0e..f92404b25 100644 --- a/LIMITATIONS.md +++ b/LIMITATIONS.md @@ -1,5 +1,5 @@ # Apache2 Cookbook Limitations -- Supported platforms are limited to the distributions covered by the Kitchen and CI matrices: AlmaLinux 8+, Amazon Linux 2023, CentOS Stream 9+, Debian 12+, Fedora, openSUSE Leap 15+, Oracle Linux 8+, Rocky Linux 8+, and Ubuntu 22.04+. +- Supported platforms are limited to the distributions covered by the Kitchen and CI matrices: AlmaLinux 8+, Amazon Linux 2023, CentOS Stream 9+, Debian 12+, Fedora, openSUSE Leap 16+, Oracle Linux 8+, Rocky Linux 8+, and Ubuntu 22.04+. - Platform-specific module package availability still depends on the underlying distribution repositories. - This modernization branch no longer advertises legacy CentOS, Scientific Linux, FreeBSD, openSUSE classic, SUSE, or Arch support. diff --git a/README.md b/README.md index a6e928a4a..3e5343e07 100644 --- a/README.md +++ b/README.md @@ -42,12 +42,15 @@ On ArchLinux, if you are using the `apache2::mod_auth_openid` recipe, you also n The following platforms and versions are tested and supported using [test-kitchen](https://kitchen.ci/) +- AlmaLinux 8+ - Amazon Linux 2023 -- CentOS 7+ (incl. Rocky & Alma) -- Debian 10+ +- CentOS Stream 9+ +- Debian 12+ - Fedora latest -- OpenSUSE Leap 15 -- Ubuntu 18.04+ +- OpenSUSE Leap 16+ +- Oracle Linux 8+ +- Rocky Linux 8+ +- Ubuntu 22.04+ ## Usage diff --git a/kitchen.dokken.yml b/kitchen.dokken.yml index b3392a24b..2ea48f7fa 100644 --- a/kitchen.dokken.yml +++ b/kitchen.dokken.yml @@ -52,9 +52,9 @@ platforms: image: dokken/fedora-latest pid_one_command: /usr/lib/systemd/systemd - - name: opensuse-leap-15 + - name: opensuse-leap-16.0 driver: - image: dokken/opensuse-leap-15 + image: dokken/opensuse-leap-16.0 pid_one_command: /usr/lib/systemd/systemd - name: oraclelinux-8 diff --git a/kitchen.global.yml b/kitchen.global.yml index 1740e4614..6d011c011 100644 --- a/kitchen.global.yml +++ b/kitchen.global.yml @@ -17,16 +17,18 @@ verifier: platforms: - name: almalinux-8 - name: almalinux-9 + - name: almalinux-10 - name: amazonlinux-2023 - name: centos-stream-9 - - name: debian-11 + - name: centos-stream-10 - name: debian-12 + - name: debian-13 - name: fedora-latest - - name: opensuse-leap-15 + - name: opensuse-leap-16.0 - name: oraclelinux-8 - name: oraclelinux-9 - name: rockylinux-8 - name: rockylinux-9 - - name: ubuntu-20.04 + - name: rockylinux-10 - name: ubuntu-22.04 - name: ubuntu-24.04 diff --git a/kitchen.yml b/kitchen.yml index fddd264a6..8567d10f8 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -22,7 +22,7 @@ platforms: - name: debian-12 - name: debian-13 - name: fedora-latest - - name: opensuse-leap-15 + - name: opensuse-leap-16.0 - name: oraclelinux-8 - name: oraclelinux-9 - name: rockylinux-8 diff --git a/libraries/helpers.rb b/libraries/helpers.rb index 882f92b80..96f184f76 100644 --- a/libraries/helpers.rb +++ b/libraries/helpers.rb @@ -242,11 +242,11 @@ def default_modules case node['platform_family'] when 'rhel', 'fedora', 'amazon' - default_modules.concat %w(log_config logio unixd systemd) + default_modules.push('log_config', 'logio', 'unixd', 'systemd') when 'arch', 'freebsd' - default_modules.concat %w(log_config logio unixd) + default_modules.push('log_config', 'logio', 'unixd') when 'suse' - default_modules.concat %w(log_config logio) + default_modules.push('log_config', 'logio') else default_modules end diff --git a/metadata.rb b/metadata.rb index e888648b1..156b0826b 100644 --- a/metadata.rb +++ b/metadata.rb @@ -15,7 +15,7 @@ supports 'centos_stream', '>= 9.0' supports 'debian', '>= 12.0' supports 'fedora' -supports 'opensuseleap', '>= 15.0' +supports 'opensuseleap', '>= 16.0' supports 'oracle', '>= 8.0' supports 'rocky', '>= 8.0' supports 'ubuntu', '>= 22.04' diff --git a/resources/config.rb b/resources/config.rb index ea9dcd94b..225b8d508 100644 --- a/resources/config.rb +++ b/resources/config.rb @@ -44,7 +44,7 @@ property :docroot_dir, String, default: lazy { default_docroot_dir }, - description: 'Apache document root.'\ + description: 'Apache document root.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :timeout, [Integer, String], @@ -58,7 +58,7 @@ property :run_dir, String, default: lazy { default_run_dir }, - description: ' Sets the DefaultRuntimeDir directive.'\ + description: ' Sets the DefaultRuntimeDir directive.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :template_cookbook, String, diff --git a/resources/default_site.rb b/resources/default_site.rb index 1f02166d4..f0f9a858d 100644 --- a/resources/default_site.rb +++ b/resources/default_site.rb @@ -33,12 +33,12 @@ property :docroot_dir, String, default: lazy { default_docroot_dir }, - description: 'Apache document root.'\ + description: 'Apache document root.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :apache_root_group, String, default: lazy { node['root_group'] }, - description: 'Group that the root user on the box runs as.'\ + description: 'Group that the root user on the box runs as.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :template_source, String, @@ -57,7 +57,7 @@ group new_resource.apache_root_group mode '0644' cookbook new_resource.template_cookbook - variables new_resource.variables.merge({ + variables new_resource.variables.merge( access_log: default_access_log, cgibin_dir: default_cgibin_dir, docroot_dir: new_resource.docroot_dir, @@ -66,8 +66,8 @@ log_level: new_resource.log_level, port: new_resource.port, server_admin: new_resource.server_admin, - site_name: new_resource.default_site_name, - }) + site_name: new_resource.default_site_name + ) end apache2_site new_resource.default_site_name do diff --git a/resources/install.rb b/resources/install.rb index 3d789473e..72d221b17 100644 --- a/resources/install.rb +++ b/resources/install.rb @@ -17,22 +17,22 @@ property :apache_user, String, default: lazy { default_apache_user }, - description: 'Set to override the default apache2 user.'\ + description: 'Set to override the default apache2 user.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :apache_group, String, default: lazy { default_apache_group }, - description: 'Set to override the default apache2 user.'\ + description: 'Set to override the default apache2 user.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :log_dir, String, default: lazy { default_log_dir }, - description: 'Log directory location.'\ + description: 'Log directory location.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :error_log, String, default: lazy { default_error_log }, - description: 'Error log location.'\ + description: 'Error log location.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :log_level, String, @@ -76,7 +76,7 @@ property :mpm, String, default: lazy { default_mpm }, - description: 'Multi-processing Module.'\ + description: 'Multi-processing Module.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :mpm_conf, Hash, @@ -111,12 +111,12 @@ property :docroot_dir, String, default: lazy { default_docroot_dir }, - description: 'Apache document root.'\ + description: 'Apache document root.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :run_dir, String, default: lazy { default_run_dir }, - description: 'Location for APACHE_RUN_DIR.'\ + description: 'Location for APACHE_RUN_DIR.' \ 'Defaults to platform specific locations, see libraries/helpers.rb' property :access_file_name, String, diff --git a/spec/libraries/mod_php_spec.rb b/spec/libraries/mod_php_spec.rb index e2f741ab4..2b866e8b2 100644 --- a/spec/libraries/mod_php_spec.rb +++ b/spec/libraries/mod_php_spec.rb @@ -44,10 +44,10 @@ class DummyClass < Chef::Node it { expect(subject.apache_mod_php_filename).to eq 'libphp8.3.so' } end - context 'opensuse 15.5' do + context 'opensuse 16.0' do let(:platform_family) { 'suse' } let(:platform) { 'opensuse' } - let(:platform_version) { '15.5' } + let(:platform_version) { '16.0' } it { expect(subject.apache_mod_php_filename).to eq 'mod_php8.so' } end end diff --git a/test/integration/basic_site/inspec.yml b/test/integration/basic_site/inspec.yml index d5eb7c1f8..44f8e5e39 100644 --- a/test/integration/basic_site/inspec.yml +++ b/test/integration/basic_site/inspec.yml @@ -2,9 +2,6 @@ name: apache2-basic title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/custom_template/inspec.yml b/test/integration/custom_template/inspec.yml index c60929878..9593fd331 100644 --- a/test/integration/custom_template/inspec.yml +++ b/test/integration/custom_template/inspec.yml @@ -2,10 +2,6 @@ name: apache2-default title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd - depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/default/inspec.yml b/test/integration/default/inspec.yml index 56da87203..eb58df3a3 100644 --- a/test/integration/default/inspec.yml +++ b/test/integration/default/inspec.yml @@ -2,6 +2,3 @@ name: apache2-default title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd diff --git a/test/integration/install_override/inspec.yml b/test/integration/install_override/inspec.yml index ad3280d13..23abf4861 100644 --- a/test/integration/install_override/inspec.yml +++ b/test/integration/install_override/inspec.yml @@ -2,9 +2,6 @@ name: apache2-overrides title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/mod_auth_cas/inspec.yml b/test/integration/mod_auth_cas/inspec.yml index 1bd810652..bac370433 100644 --- a/test/integration/mod_auth_cas/inspec.yml +++ b/test/integration/mod_auth_cas/inspec.yml @@ -2,9 +2,6 @@ name: apache2-auth-cas title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/mod_wsgi/inspec.yml b/test/integration/mod_wsgi/inspec.yml index 16b3c733e..03938d86e 100644 --- a/test/integration/mod_wsgi/inspec.yml +++ b/test/integration/mod_wsgi/inspec.yml @@ -2,9 +2,6 @@ name: apache2-mod-wsgi title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/module_template/inspec.yml b/test/integration/module_template/inspec.yml index c74129f0f..2f63e2275 100644 --- a/test/integration/module_template/inspec.yml +++ b/test/integration/module_template/inspec.yml @@ -2,9 +2,6 @@ name: apache2-module-templates title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/php/inspec.yml b/test/integration/php/inspec.yml index 6329a0802..8ecc60958 100644 --- a/test/integration/php/inspec.yml +++ b/test/integration/php/inspec.yml @@ -2,9 +2,6 @@ name: apache2-php title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/pkg_name/inspec.yml b/test/integration/pkg_name/inspec.yml index 79ec350cc..7b38e47f8 100644 --- a/test/integration/pkg_name/inspec.yml +++ b/test/integration/pkg_name/inspec.yml @@ -2,9 +2,6 @@ name: apache2-pkg-name title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/ports/inspec.yml b/test/integration/ports/inspec.yml index a7fff2027..9eb21bd4c 100644 --- a/test/integration/ports/inspec.yml +++ b/test/integration/ports/inspec.yml @@ -2,9 +2,6 @@ name: apache2-ports title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default diff --git a/test/integration/ssl/inspec.yml b/test/integration/ssl/inspec.yml index 8e6f7ec02..b6ec4b586 100644 --- a/test/integration/ssl/inspec.yml +++ b/test/integration/ssl/inspec.yml @@ -2,9 +2,6 @@ name: apache2-ssl title: Integration tests for apache2 cookbook summary: This InSpec profile contains integration tests for apache2 cookbook -supports: - - os-family: linux - - os-family: bsd depends: - name: apache2-default path: test/integration/default