Skip to content

Modernize Rundeck and Java defaults so integration passes on supported platforms #350

Description

@ramereth

Summary

The cookbook is pinned to a January 2022 Rundeck release that only works on now-EOL platforms. Integration testing cannot pass on any currently supported distro until the Rundeck and Java defaults are moved forward together.

Surfaced while fixing #348.

Current state

# resources/server_install.rb:98
property :version, String, default: '3.4.10.20220118-1'

# resources/dependencies.rb:22
temurin_package_install '8'

Rundeck 3.4.10 ships a SysV /etc/init.d/rundeckd script rather than a systemd unit. On every modern distro the converge installs the package successfully and then fails:

dnf_package[rundeck]  - install version 0:3.4.10.20220118-1 of package rundeck
service[rundeckd]     Failed to start rundeckd.service: Unit rundeckd.service not found.

Identical failure on all ten platforms tested in #348 — almalinux-8/9, centos-stream-9, fedora-latest, oraclelinux-8/9, rockylinux-8/9, ubuntu-2204, ubuntu-2404. This is the packaging issue described in rundeck/rundeck#7546.

The previous CI matrix (centos-7, amazonlinux-2, debian-10, centos-stream-8, ubuntu-1804, ubuntu-2004) masked this: six of those nine entries had no matching Kitchen instance at all, and the rest are EOL platforms where the SysV script still worked. So the cookbook has not been exercised against a supported platform in a long time.

Why this is not a small change

Bumping the Rundeck pin forces a Java bump:

Rundeck Java runtime
3.x / 4.x 8 or 11
5.x 11 / 17 — Java 8 dropped
6.x and later 17 minimum

The cookbook currently installs Temurin 8, so any move to Rundeck 5+ also requires changing resources/dependencies.rb.

Changing version's default alters behaviour for every consumer pinning nothing, so this is a feat! with a major version bump, not a CI fix.

Decisions needed

  1. Target Rundeck version. 4.x keeps Java 8/11 compatibility; 5.x requires Java 11/17; 6.x requires 17+. Jumping straight to a current release is the most useful but the largest behaviour change.
  2. Java version. temurin_package_install '8''11' or '17', matching the chosen Rundeck. Worth deciding whether Temurin remains the right distribution or whether openjdk_pkg_install is preferable now that distro packages are current.
  3. Whether version should keep a pinned default at all, or track the repository's latest. A pin gives reproducible builds; tracking latest avoids this exact staleness.
  4. Platform support. metadata.rb declares centos, fedora, oracle, redhat, scientific and ubuntu. scientific is long dead and worth dropping. Debian is absent from supports but present in kitchen.dokken.yml.
  5. Config compatibility. Rundeck 4/5 changed some framework and rundeck-config properties; the templates in resources/server_install.rb and the framework_properties handling will need review against the target version.

Acceptance

  • Integration passes on the platforms declared in metadata.rb.
  • rundeckd starts via systemd on all tested platforms.
  • Java default matches the Rundeck runtime requirement.
  • metadata.rb supports reflects reality.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions