Bug #23202
closedSalt installer missing standalone passenger configs
Description
Since running passenger in standalone mode, some configurations were not migrated along. Specifically, passenger_max_pool_size and passenger_max_request_queue_size which are still being configured in /etc/nginx/conf.d/mod-http-passenger.conf need to be relocated either to Passengerfile.json or as envvars in the arvados-railsapi systemd unit.
Updated by Brett Smith 5 months ago
- Target version changed from Future to Development 2025-10-29
You don't want to do them in Passengerfile.json because the package ships a static version of that file with static configuration. Anything dynamic should go in the systemd unit.
Updated by Lucas Di Pentima 5 months ago
23202-installer-passenger-configs at c478990a4
- All agreed upon points are implemented / addressed. Describe changes from pre-implementation design.
- Yes. Config values are set as systemd unit overrides.
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- No
- Code is tested and passing, both automated and manual, what manual testing was done is described.
- Yes. Manually tested by deploying a multi-node cluster.
- The tested code incorporates recent main branch changes.
- Yes
- New or changed UI/UX has gotten feedback from stakeholders.
- N/A
- Documentation has been updated.
- N/A as it's a bug fix
- Behaves appropriately at the intended scale (describe intended scale).
- N/A
- Considered backwards and forwards compatibility issues between client and server.
- N/A
- Follows our coding standards and GUI style guidelines.
- N/A
This branch adds a salt state that creates a systemd unit override file for the arvados-railsapi service, with the appropriate Passenger environment variable values.
Old way of configuring passenger cleanup was attempted but proved to be non-trivial, we can do that in the future if needed but I thought to not spend too much time on it since the installer is in its way out.
Updated by Brett Smith 5 months ago
Lucas Di Pentima wrote in #note-5:
23202-installer-passenger-configs at c478990a4
What happens if we reconfigure __CONTROLLER_MAX_WORKERS__ and then run the installer to reconfigure the cluster when there is no new API server package? I'm concerned the latest commit means the customizations won't be loaded into systemd. It seems to only work if we're installing RailsAPI at the same time.
I think we should avoid using the filename override.conf because that's the name used by systemctl edit so we should treat it as reserved for manual changes. It would be nice if a new name sorted before override.conf so it's still easy for an administrator to override if needed.
Updated by Lucas Di Pentima 5 months ago
Brett Smith wrote in #note-6:
Lucas Di Pentima wrote in #note-5:
23202-installer-passenger-configs at c478990a4
What happens if we reconfigure
__CONTROLLER_MAX_WORKERS__and then run the installer to reconfigure the cluster when there is no new API server package? I'm concerned the latest commit means the customizations won't be loaded into systemd. It seems to only work if we're installing RailsAPI at the same time.
You're right, I lost that when changed from requiring the package to injecting the dependency into the service. I have now injected a watch into the service, because requiring the package or service from the unit file breaks the arvados-formula ordering (IMO) and makes salt to crash.
I think we should avoid using the filename
override.confbecause that's the name used bysystemctl editso we should treat it as reserved for manual changes. It would be nice if a new name sorted beforeoverride.confso it's still easy for an administrator to override if needed.
Makes sense, I originally used the override.conf name so that systemctl edit explicitly shows the current config but it isn't really necessary. I have now named it 26-installer.conf so it overrides whatever the formula has, and its ordered before override.conf.
Updates at 0fadc5559b
Test run: test-provision: #1334
Updated by Brett Smith 5 months ago
Lucas Di Pentima wrote in #note-7:
Makes sense, I originally used the
override.confname so thatsystemctl editexplicitly shows the current config but it isn't really necessary.
When you run ssytemctl edit, it includes the full unit definition in comments, including other override files a la systemctl cat. So you don't even lose any functionality with a different name.
Updates at 0fadc5559b
LGTM, thanks.
Updated by Lucas Di Pentima 5 months ago
- Status changed from In Progress to Resolved
Applied in changeset arvados|73bdc40353440070159fc516f9f58d59c8c31dd9.
Updated by Brett Smith 5 months ago
- Related to Feature #23237: Ansible installer configures Passenger scaling options added