diff --git a/ironic/cmd/conductor.py b/ironic/cmd/conductor.py index ecd1aa13ab..7d65d2514f 100644 --- a/ironic/cmd/conductor.py +++ b/ironic/cmd/conductor.py @@ -81,7 +81,7 @@ def main(): profiler.setup('ironic_conductor', CONF.host) - launcher = service.launch(CONF, mgr) + launcher = service.launch(CONF, mgr, restart_method='mutate') launcher.wait() diff --git a/ironic/common/service.py b/ironic/common/service.py index a077889bb4..e0a8f1852d 100644 --- a/ironic/common/service.py +++ b/ironic/common/service.py @@ -36,4 +36,4 @@ def prepare_service(argv=None): def process_launcher(): - return service.ProcessLauncher(CONF) + return service.ProcessLauncher(CONF, restart_method='mutate') diff --git a/ironic/conf/default.py b/ironic/conf/default.py index 6611b96889..e1c709d39b 100644 --- a/ironic/conf/default.py +++ b/ironic/conf/default.py @@ -282,7 +282,7 @@ service_opts = [ 'hostname, FQDN, or IP address.')), cfg.StrOpt('pin_release_version', choices=versions.RELEASE_VERSIONS, - # TODO(xek): mutable=True, + mutable=True, help=_('Used for rolling upgrades. Setting this option ' 'downgrades (or pins) the Bare Metal API, ' 'the internal ironic RPC communication, and ' diff --git a/releasenotes/notes/sighup-service-reloads-configs-0e2462e3f064a2ff.yaml b/releasenotes/notes/sighup-service-reloads-configs-0e2462e3f064a2ff.yaml new file mode 100644 index 0000000000..ac3058ccaa --- /dev/null +++ b/releasenotes/notes/sighup-service-reloads-configs-0e2462e3f064a2ff.yaml @@ -0,0 +1,17 @@ +--- +features: + - | + Issuing a SIGHUP (e.g. ``pkill -HUP ironic``) to an ironic-api or + ironic-conductor service will cause the service to reload and use any + changed values for *mutable* configuration options. The mutable + configuration options are: + + * [DEFAULT]/debug + * [DEFAULT]/log_config_append + * [DEFAULT]/pin_release_version + + Mutable configuration options are indicated as such in the `sample configuration + file `_ + by ``Note: This option can be changed without restarting``. + + A warning is logged for any changes to immutable configuration options.