From 9de4e72563b432580fbd9069b181f01e1c0f3881 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Thu, 22 Dec 2022 21:25:41 -0500 Subject: [PATCH] Rebuild config including gravity stuff --- doc/source/admin/galaxy_options.rst | 3 + lib/galaxy/config/sample/galaxy.yml.sample | 172 +++++++++++++++++++-- 2 files changed, 165 insertions(+), 10 deletions(-) diff --git a/doc/source/admin/galaxy_options.rst b/doc/source/admin/galaxy_options.rst index de6cb6b9144..7253a266130 100644 --- a/doc/source/admin/galaxy_options.rst +++ b/doc/source/admin/galaxy_options.rst @@ -5074,3 +5074,6 @@ . :Default: ``themes_conf.yml`` :Type: str + + + diff --git a/lib/galaxy/config/sample/galaxy.yml.sample b/lib/galaxy/config/sample/galaxy.yml.sample index 0fae965ef56..ccbc06ef76a 100644 --- a/lib/galaxy/config/sample/galaxy.yml.sample +++ b/lib/galaxy/config/sample/galaxy.yml.sample @@ -1,35 +1,74 @@ # Galaxy is configured by default to be usable in a single-user development # environment. To tune the application for a multi-user production # environment, see the documentation at: -# +# # https://docs.galaxyproject.org/en/master/admin/production.html -# +# # Throughout this sample configuration file, except where stated otherwise, # uncommented values override the default if left unset, whereas commented # values are set to the default value. Relative paths are relative to the root # Galaxy directory. -# +# # Examples of many of these options are explained in more detail in the Galaxy # Community Hub. -# +# # https://galaxyproject.org/admin/config -# +# # Config hackers are encouraged to check there before asking for help. -# +# # Configuration for Gravity process manager. # ``uwsgi:`` section will be ignored if Galaxy is started via Gravity commands (e.g ``./run.sh``, ``galaxy`` or ``galaxyctl``). gravity: + # Process manager to use. + # ``supervisor`` is the default process manager when Gravity is invoked as a non-root user. + # ``systemd`` is the default when Gravity is invoked as root. + # Valid options are: supervisor, systemd + # process_manager: + + # What command to write to the process manager configs + # `gravity` (`galaxyctl exec `) is the default + # `direct` (each service's actual command) is also supported. + # Valid options are: gravity, direct + # service_command_style: gravity + + # Use the process manager's *service instance* functionality for services that can run multiple instances. + # Presently this includes services like gunicorn and Galaxy dynamic job handlers. Service instances are only supported if + # ``service_command_style`` is ``gravity``, and so this option is automatically set to ``false`` if + # ``service_command_style`` is set to ``direct``. + # use_service_instances: true + + # umask under which services should be executed. Setting ``umask`` on an individual service overrides this value. + # umask: '022' + + # Memory limit (in GB), processes exceeding the limit will be killed. Default is no limit. If set, this is default value + # for all services. Setting ``memory_limit`` on an individual service overrides this value. Ignored if ``process_manager`` + # is ``supervisor``. + # memory_limit: + + # Specify Galaxy config file (galaxy.yml), if the Gravity config is separate from the Galaxy config. Assumed to be the + # same file as the Gravity config if a ``galaxy`` key exists at the root level, otherwise, this option is required. + # galaxy_config_file: + # Specify Galaxy's root directory. # Gravity will attempt to find the root directory, but you can set the directory explicitly with this option. # galaxy_root: + # User to run Galaxy as, required when using the systemd process manager as root. + # Ignored if ``process_manager`` is ``supervisor`` or user-mode (non-root) ``systemd``. + # galaxy_user: + + # Group to run Galaxy as, optional when using the systemd process manager as root. + # Ignored if ``process_manager`` is ``supervisor`` or user-mode (non-root) ``systemd``. + # galaxy_group: + # Set to a directory that should contain log files for the processes controlled by Gravity. - # If not specified defaults to ``/log``. + # If not specified defaults to ``/gravity/log``. # log_dir: # Set to Galaxy's virtualenv directory. - # If not specified, Gravity assumes all processes are on PATH. + # If not specified, Gravity assumes all processes are on PATH. This option is required in most circumstances when using + # the ``systemd`` process manager. # virtualenv: # Select the application server. @@ -43,7 +82,7 @@ gravity: # this is hidden from you when running a single instance. # instance_name: _default_ - # Configuration for Gunicorn. + # Configuration for Gunicorn. Can be a list to run multiple gunicorns for rolling restarts. gunicorn: # Enable Galaxy gunicorn server. @@ -70,6 +109,23 @@ gravity: # Consumes less memory when multiple processes are configured. Default is ``false`` if using unicornherder, else ``true``. # preload: + # umask under which service should be executed + # umask: + + # Value of supervisor startsecs, systemd TimeoutStartSec + # start_timeout: 15 + + # Value of supervisor stopwaitsecs, systemd TimeoutStopSec + # stop_timeout: 65 + + # Amount of time to wait for a server to become alive when performing rolling restarts. + # restart_timeout: 300 + + # Memory limit (in GB). If the service exceeds the limit, it will be killed. Default is no limit or the value of the + # ``memory_limit`` setting at the top level of the Gravity configuration, if set. Ignored if ``process_manager`` is + # ``supervisor``. + # memory_limit: + # Extra environment variables and their values to set when running the service. A dictionary where keys are the variable # names. # environment: {} @@ -100,6 +156,20 @@ gravity: # Extra arguments to pass to Celery command line. # extra_args: + # umask under which service should be executed + # umask: + + # Value of supervisor startsecs, systemd TimeoutStartSec + # start_timeout: 10 + + # Value of supervisor stopwaitsecs, systemd TimeoutStopSec + # stop_timeout: 10 + + # Memory limit (in GB). If the service exceeds the limit, it will be killed. Default is no limit or the value of the + # ``memory_limit`` setting at the top level of the Gravity configuration, if set. Ignored if ``process_manager`` is + # ``supervisor``. + # memory_limit: + # Extra environment variables and their values to set when running the service. A dictionary where keys are the variable # names. # environment: {} @@ -117,7 +187,8 @@ gravity: # port: 4002 # Routes file to monitor. - # Should be set to the same path as ``interactivetools_map`` in the ``galaxy:`` section. + # Should be set to the same path as ``interactivetools_map`` in the ``galaxy:`` section. This is ignored if + # ``interactivetools_map is set``. # sessions: database/interactivetools_map.sqlite # Include verbose messages in gx-it-proxy @@ -135,6 +206,20 @@ gravity: # This is an advanced option that is only needed when proxying to remote interactive tool container that cannot be reached through the local network. # reverse_proxy: false + # umask under which service should be executed + # umask: + + # Value of supervisor startsecs, systemd TimeoutStartSec + # start_timeout: 10 + + # Value of supervisor stopwaitsecs, systemd TimeoutStopSec + # stop_timeout: 10 + + # Memory limit (in GB). If the service exceeds the limit, it will be killed. Default is no limit or the value of the + # ``memory_limit`` setting at the top level of the Gravity configuration, if set. Ignored if ``process_manager`` is + # ``supervisor``. + # memory_limit: + # Extra environment variables and their values to set when running the service. A dictionary where keys are the variable # names. # environment: {} @@ -175,6 +260,72 @@ gravity: # Extra arguments to pass to tusd command line. # extra_args: + # umask under which service should be executed + # umask: + + # Value of supervisor startsecs, systemd TimeoutStartSec + # start_timeout: 10 + + # Value of supervisor stopwaitsecs, systemd TimeoutStopSec + # stop_timeout: 10 + + # Memory limit (in GB). If the service exceeds the limit, it will be killed. Default is no limit or the value of the + # ``memory_limit`` setting at the top level of the Gravity configuration, if set. Ignored if ``process_manager`` is + # ``supervisor``. + # memory_limit: + + # Extra environment variables and their values to set when running the service. A dictionary where keys are the variable + # names. + # environment: {} + + # Configuration for Galaxy Reports. + reports: + + # Enable Galaxy Reports server. + # enable: false + + # Path to reports.yml, relative to galaxy.yml if not absolute + # config_file: reports.yml + + # The socket to bind. A string of the form: ``HOST``, ``HOST:PORT``, ``unix:PATH``, ``fd://FD``. An IP is a valid HOST. + # bind: localhost:9001 + + # Controls the number of Galaxy Reports application processes Gunicorn will spawn. + # It is not generally necessary to increase this for the low-traffic Reports server. + # workers: 1 + + # Gunicorn workers silent for more than this many seconds are killed and restarted. + # Value is a positive number or 0. Setting it to 0 has the effect of infinite timeouts by disabling timeouts for all workers entirely. + # timeout: 300 + + # URL prefix to serve from. + # The corresponding nginx configuration is (replace and with the values from these options): + # + # location // { + # proxy_pass http:///; + # } + # + # If is a unix socket, you will need a ``:`` after the socket path but before the trailing slash like so: + # proxy_pass http://unix:/run/reports.sock:/; + # url_prefix: + + # Extra arguments to pass to Gunicorn command line. + # extra_args: + + # umask under which service should be executed + # umask: + + # Value of supervisor startsecs, systemd TimeoutStartSec + # start_timeout: 10 + + # Value of supervisor stopwaitsecs, systemd TimeoutStopSec + # stop_timeout: 10 + + # Memory limit (in GB). If the service exceeds the limit, it will be killed. Default is no limit or the value of the + # ``memory_limit`` setting at the top level of the Gravity configuration, if set. Ignored if ``process_manager`` is + # ``supervisor``. + # memory_limit: + # Extra environment variables and their values to set when running the service. A dictionary where keys are the variable # names. # environment: {} @@ -2552,3 +2703,4 @@ galaxy: # The value of this option will be resolved with respect to # . #themes_config_file: themes_conf.yml +