Project

General

Profile

Actions

Bug #23202

closed

Salt installer missing standalone passenger configs

Added by Lucas Di Pentima 5 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Deployment
Target version:
Story points:
-
Release relationship:
Auto

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.


Subtasks 1 (0 open1 closed)

Task #23222: Review 23202-installer-passenger-configsResolvedBrett Smith10/22/2025Actions

Related issues 1 (0 open1 closed)

Related to Arvados - Feature #23237: Ansible installer configures Passenger scaling optionsResolvedStephen SmithActions
Actions #1

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.

Actions #2

Updated by Brett Smith 5 months ago

  • Subtask #23222 added
Actions #3

Updated by Lucas Di Pentima 5 months ago

  • Status changed from New to In Progress
Actions #4

Updated by Brett Smith 5 months ago

  • Release set to 79
Actions #5

Updated by Lucas Di Pentima 5 months ago

23202-installer-passenger-configs at c478990a4

test-provision: #1332

  • 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.

Actions #6

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.

Actions #7

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.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.

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

Actions #8

Updated by Brett Smith 5 months ago

Lucas Di Pentima wrote in #note-7:

Makes sense, I originally used the override.conf name so that systemctl edit explicitly 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.

Actions #9

Updated by Lucas Di Pentima 5 months ago

  • Status changed from In Progress to Resolved
Actions #10

Updated by Brett Smith 5 months ago

  • Related to Feature #23237: Ansible installer configures Passenger scaling options added
Actions

Also available in: Atom PDF