This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 260977b92c9 Remove unused webserver configs (#48066)
260977b92c9 is described below
commit 260977b92c92e841b0b2a007a1851fb096e59ef5
Author: Jed Cunningham <[email protected]>
AuthorDate: Sat Mar 22 07:59:18 2025 -0600
Remove unused webserver configs (#48066)
This is my first pass through them - these are all unused.
---
.../logging-monitoring/index.rst | 2 -
.../logging-monitoring/tracking-user-activity.rst | 40 ----
.../docs/administration-and-deployment/plugins.rst | 12 --
airflow-core/docs/core-concepts/dag-run.rst | 12 --
airflow-core/docs/core-concepts/params.rst | 4 -
airflow-core/docs/faq.rst | 8 -
airflow-core/docs/howto/run-behind-proxy.rst | 19 --
airflow-core/docs/img/example_passing_conf.png | Bin 53383 -> 0 bytes
airflow-core/docs/integration.rst | 1 -
airflow-core/docs/ui.rst | 2 +-
.../cli/commands/remote_commands/config_command.py | 112 ++++++++++
.../src/airflow/config_templates/config.yml | 231 ---------------------
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
newsfragments/48066.significant.rst | 78 +++++++
providers/fab/tests/unit/fab/utils.py | 3 -
15 files changed, 192 insertions(+), 334 deletions(-)
diff --git
a/airflow-core/docs/administration-and-deployment/logging-monitoring/index.rst
b/airflow-core/docs/administration-and-deployment/logging-monitoring/index.rst
index 519013bf487..c9bd8661591 100644
---
a/airflow-core/docs/administration-and-deployment/logging-monitoring/index.rst
+++
b/airflow-core/docs/administration-and-deployment/logging-monitoring/index.rst
@@ -37,5 +37,3 @@ In addition to the standard logging and metrics capabilities,
Airflow supports t
check-health
errors
-
- tracking-user-activity
diff --git
a/airflow-core/docs/administration-and-deployment/logging-monitoring/tracking-user-activity.rst
b/airflow-core/docs/administration-and-deployment/logging-monitoring/tracking-user-activity.rst
deleted file mode 100644
index 28a7959544b..00000000000
---
a/airflow-core/docs/administration-and-deployment/logging-monitoring/tracking-user-activity.rst
+++ /dev/null
@@ -1,40 +0,0 @@
- .. Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- .. http://www.apache.org/licenses/LICENSE-2.0
-
- .. Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
-Tracking User Activity
-======================
-
-You can configure Airflow to route anonymous data to
-`Google Analytics <https://analytics.google.com/>`_,
-`Segment <https://segment.com/>`_, `Metarouter <https://www.metarouter.io/>`_,
or `Matomo <https://matomo.org/>`_.
-
-Edit ``airflow.cfg`` and set the ``webserver`` block to have an
``analytics_tool`` and ``analytics_id`` (and ``analytics_url`` if you're using
``matomo``):
-
-.. code-block:: ini
-
- [webserver]
- # Send anonymous user activity to Google Analytics, Segment, or Metarouter
- analytics_tool = google_analytics # valid options: google_analytics,
segment, metarouter, matomo
- analytics_id = XXXXXXXXXXX
- analytics_url = https://your-matomo-instance.example.com # only required for
Matomo
-
-.. note:: You can see view injected tracker html within Airflow's source code
at
- ``airflow/www/templates/airflow/main.html``. The related global
- variables are set in ``airflow/www/templates/app.py``.
-
-.. note::
- For more information on setting the configuration, see
:doc:`../../howto/set-config`
diff --git a/airflow-core/docs/administration-and-deployment/plugins.rst
b/airflow-core/docs/administration-and-deployment/plugins.rst
index 904788f6b33..d2091c4936b 100644
--- a/airflow-core/docs/administration-and-deployment/plugins.rst
+++ b/airflow-core/docs/administration-and-deployment/plugins.rst
@@ -317,18 +317,6 @@ Then inside pyproject.toml:
[project.entry-points."airflow.plugins"]
my_plugin = "my_package.my_plugin:MyAirflowPlugin"
-Automatic reloading webserver
------------------------------
-
-To enable automatic reloading of the webserver, when changes in a directory
with plugins has been detected,
-you should set ``reload_on_plugin_change`` option in ``[webserver]`` section
to ``True``.
-
-.. note::
- For more information on setting the configuration, see
:doc:`/howto/set-config`
-
-.. note::
- See :doc:`../administration-and-deployment/modules_management` for details
on how Python and Airflow manage modules.
-
Troubleshooting
---------------
diff --git a/airflow-core/docs/core-concepts/dag-run.rst
b/airflow-core/docs/core-concepts/dag-run.rst
index 4742d47a77f..922b87ccb69 100644
--- a/airflow-core/docs/core-concepts/dag-run.rst
+++ b/airflow-core/docs/core-concepts/dag-run.rst
@@ -267,18 +267,6 @@ Using CLI
airflow dags trigger --conf '{"conf1": "value1"}' example_parameterized_dag
-Using UI
-^^^^^^^^^^
-
-In the UI the parameters to trigger a DAG can be better represented via
``params`` definition as described in
-:ref:`concepts:params` documentation. Via defined params a proper form for
value entry is rendered.
-
-If the DAG does not define ``params`` the form is usually skipped, via the
configuration option ``show_trigger_form_if_no_params``
-it is possible to force the display the classic form of a dict-only entry to
pass configuration options.
-
-.. image:: ../img/example_passing_conf.png
-
-Please consider to convert such usage to ``params`` as this is the more
convenient way and allows also validation of user input.
To Keep in Mind
''''''''''''''''
diff --git a/airflow-core/docs/core-concepts/params.rst
b/airflow-core/docs/core-concepts/params.rst
index 2f46588d6c8..5ac024f497f 100644
--- a/airflow-core/docs/core-concepts/params.rst
+++ b/airflow-core/docs/core-concepts/params.rst
@@ -400,10 +400,6 @@ Finally the fourth section shows advanced form elements.
.. image:: ../img/trigger-dag-tutorial-form-4.png
-.. versionadded:: 2.7.0
- The trigger form can also be forced to be displayed also if no params are
defined using the configuration switch
- ``webserver.show_trigger_form_if_no_params``.
-
.. versionchanged:: 3.0.0
By default custom HTML is not allowed to prevent injection of scripts or
other malicious HTML code. The previous field named
``description_html`` is now super-seeded with the attribute
``description_md``. ``description_html`` is not supported anymore.
diff --git a/airflow-core/docs/faq.rst b/airflow-core/docs/faq.rst
index 216afd285b4..16fb0c5b56d 100644
--- a/airflow-core/docs/faq.rst
+++ b/airflow-core/docs/faq.rst
@@ -464,14 +464,6 @@ How do I stop the sync perms happening multiple times per
webserver?
Set the value of ``[fab] update_fab_perms`` configuration in ``airflow.cfg``
to ``False``.
-How to reduce the airflow UI page load time?
-------------------------------------------------
-
-If your DAG takes long time to load, you could reduce the value of
``default_dag_run_display_number`` configuration
-in ``airflow.cfg`` to a smaller value. This configurable controls the number
of DAG runs to show in UI with default
-value ``25``.
-
-
Why did the pause DAG toggle turn red?
--------------------------------------
diff --git a/airflow-core/docs/howto/run-behind-proxy.rst
b/airflow-core/docs/howto/run-behind-proxy.rst
index 1ef59d610a6..1e30b7152ee 100644
--- a/airflow-core/docs/howto/run-behind-proxy.rst
+++ b/airflow-core/docs/howto/run-behind-proxy.rst
@@ -63,22 +63,3 @@ Your reverse proxy (ex: nginx) should be configured as
follow:
proxy_set_header Connection "upgrade";
}
}
-
-To ensure that Airflow generates URLs with the correct scheme when
-running behind a TLS-terminating proxy, you should configure the proxy
-to set the ``X-Forwarded-Proto`` header, and enable the ``ProxyFix``
-middleware in your ``airflow.cfg``::
-
- [webserver]
- enable_proxy_fix = True
-
-If you need to configure the individual parameters to the ``ProxyFix``
middleware,
-you can set them individually in your ``airflow.cfg``::
-
- [webserver]
- proxy_fix_x_for = 1
- proxy_fix_x_host = 3
-
-.. note::
- You should only enable the ``ProxyFix`` middleware when running
- Airflow behind a trusted proxy (AWS ELB, nginx, etc.).
diff --git a/airflow-core/docs/img/example_passing_conf.png
b/airflow-core/docs/img/example_passing_conf.png
deleted file mode 100644
index f49be45852a..00000000000
Binary files a/airflow-core/docs/img/example_passing_conf.png and /dev/null
differ
diff --git a/airflow-core/docs/integration.rst
b/airflow-core/docs/integration.rst
index 968ba997e7f..4d27ea4158d 100644
--- a/airflow-core/docs/integration.rst
+++ b/airflow-core/docs/integration.rst
@@ -30,7 +30,6 @@ Airflow has a mechanism that allows you to expand its
functionality and integrat
* :doc:`Plugins </administration-and-deployment/plugins>`
* :doc:`Listeners </administration-and-deployment/listeners>`
* :doc:`Secrets backends </security/secrets/secrets-backend/index>`
-* :doc:`Tracking systems
</administration-and-deployment/logging-monitoring/tracking-user-activity>`
* :doc:`Web UI Authentication backends </security/api>`
* :doc:`Serialization </authoring-and-scheduling/serializers>`
diff --git a/airflow-core/docs/ui.rst b/airflow-core/docs/ui.rst
index 5f8a60e50e1..b9ef8fb4616 100644
--- a/airflow-core/docs/ui.rst
+++ b/airflow-core/docs/ui.rst
@@ -29,7 +29,7 @@ Dags View
List of the dags in your environment, and a set of shortcuts to useful pages.
You can see exactly how many tasks succeeded, failed, or are currently
-running at a glance. To hide completed tasks set
``show_recent_stats_for_completed_runs = False``
+running at a glance.
In order to filter dags (e.g. by team), you can add tags in each DAG.
The filter is saved in a cookie and can be reset by the reset button.
diff --git
a/airflow-core/src/airflow/cli/commands/remote_commands/config_command.py
b/airflow-core/src/airflow/cli/commands/remote_commands/config_command.py
index 63ccf561a51..667ee735b25 100644
--- a/airflow-core/src/airflow/cli/commands/remote_commands/config_command.py
+++ b/airflow-core/src/airflow/cli/commands/remote_commands/config_command.py
@@ -349,6 +349,118 @@ CONFIGS_CHANGES = [
config=ConfigParameter("webserver", "access_logformat"),
was_deprecated=False,
),
+ ConfigChange(
+ config=ConfigParameter("webserver", "web_server_master_timeout"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "worker_refresh_batch_size"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "worker_refresh_interval"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "reload_on_plugin_change"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "worker_class"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "expose_stacktrace"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "log_fetch_delay_sec"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "log_auto_tailing_offset"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "log_animation_speed"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "default_dag_run_display_number"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "enable_proxy_fix"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "proxy_fix_x_for"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "proxy_fix_x_proto"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "proxy_fix_x_host"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "proxy_fix_x_port"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "proxy_fix_x_prefix"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "cookie_secure"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "analytics_tool"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "analytics_id"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "analytics_url"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver",
"show_recent_stats_for_completed_runs"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "run_internal_api"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "caching_hash_method"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "show_trigger_form_if_no_params"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver",
"num_recent_configurations_for_trigger"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "allowed_payload_size"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "max_form_memory_size"),
+ was_deprecated=False,
+ ),
+ ConfigChange(
+ config=ConfigParameter("webserver", "max_form_parts"),
+ was_deprecated=False,
+ ),
# policy
ConfigChange(
config=ConfigParameter("policy", "airflow_local_settings"),
diff --git a/airflow-core/src/airflow/config_templates/config.yml
b/airflow-core/src/airflow/config_templates/config.yml
index 4bc56d83e01..569c24adb2d 100644
--- a/airflow-core/src/airflow/config_templates/config.yml
+++ b/airflow-core/src/airflow/config_templates/config.yml
@@ -1720,38 +1720,6 @@ webserver:
type: string
example: securecookie
default: database
- web_server_master_timeout:
- description: |
- Number of seconds the webserver waits before killing gunicorn master
that doesn't respond
- version_added: ~
- type: string
- example: ~
- default: "120"
- worker_refresh_batch_size:
- description: |
- Number of workers to refresh at a time through Gunicorn's built-in
worker management.
- When set to 0, worker refresh is disabled. When nonzero, airflow
periodically refreshes
- webserver workers by bringing up new ones and killing old ones.
- version_added: ~
- type: string
- example: ~
- default: "1"
- worker_refresh_interval:
- description: |
- Number of seconds to wait before refreshing a batch of workers.
- version_added: ~
- type: string
- example: ~
- default: "6000"
- reload_on_plugin_change:
- description: |
- If set to ``True``, Airflow will track files in plugins_folder
directory. When it detects changes,
- then reload the gunicorn. If set to ``True``, gunicorn starts without
preloading, which is slower,
- uses more memory, and may cause race conditions. Avoid setting this to
``True`` in production.
- version_added: 1.10.11
- type: boolean
- example: ~
- default: "False"
secret_key:
description: |
Secret key used to run your flask app. It should be as random as
possible. However, when running
@@ -1766,29 +1734,6 @@ webserver:
sensitive: true
example: ~
default: "{SECRET_KEY}"
- worker_class:
- description: |
- The worker class gunicorn should use. Choices include
- ``sync`` (default), ``eventlet``, ``gevent``.
-
- .. warning::
-
- When using ``gevent`` you might also want to set the
``_AIRFLOW_PATCH_GEVENT``
- environment variable to ``"1"`` to make sure gevent patching is
done as early as possible.
-
- Be careful to set ``_AIRFLOW_PATCH_GEVENT`` only on the web server
as gevent patching may
- affect the scheduler behavior via the ``multiprocessing`` sockets
module and cause crash.
-
- See related Issues / PRs for more details:
-
- * https://github.com/benoitc/gunicorn/issues/2796
- * https://github.com/apache/airflow/issues/8212
- * https://github.com/apache/airflow/pull/28283
-
- version_added: ~
- type: string
- example: ~
- default: "sync"
expose_config:
description: |
Expose the configuration file in the web server. Set to
``non-sensitive-only`` to show all values
@@ -1805,13 +1750,6 @@ webserver:
type: string
example: ~
default: "False"
- expose_stacktrace:
- description: |
- Expose stacktrace in the web server
- version_added: 1.10.8
- type: string
- example: ~
- default: "False"
grid_view_sorting_order:
description: |
Sorting order in grid view. Valid values are: ``topological``,
``hierarchical_alphabetical``
@@ -1827,27 +1765,6 @@ webserver:
type: string
example: ~
default: "5"
- log_fetch_delay_sec:
- description: |
- Time interval (in secs) to wait before next log fetching.
- version_added: 1.10.8
- type: integer
- example: ~
- default: "2"
- log_auto_tailing_offset:
- description: |
- Distance away from page bottom to enable auto tailing.
- version_added: 1.10.8
- type: integer
- example: ~
- default: "30"
- log_animation_speed:
- description: |
- Animation speed for auto tailing log display.
- version_added: 1.10.8
- type: integer
- example: ~
- default: "1000"
hide_paused_dags_by_default:
description: |
By default, the webserver shows paused DAGs. Flip this to hide paused
@@ -1898,72 +1815,6 @@ webserver:
type: string
example: ~
default: "#51504f"
- default_dag_run_display_number:
- description: |
- Default dagrun to show in UI
- version_added: ~
- type: string
- example: ~
- default: "25"
- enable_proxy_fix:
- description: |
- Enable werkzeug ``ProxyFix`` middleware for reverse proxy
- version_added: 1.10.1
- type: boolean
- example: ~
- default: "False"
- proxy_fix_x_for:
- description: |
- Number of values to trust for ``X-Forwarded-For``.
- See `Werkzeug: X-Forwarded-For Proxy Fix
-
<https://werkzeug.palletsprojects.com/en/2.3.x/middleware/proxy_fix/>`__ for
more details.
- version_added: 1.10.7
- type: integer
- example: ~
- default: "1"
- proxy_fix_x_proto:
- description: |
- Number of values to trust for ``X-Forwarded-Proto``.
- See `Werkzeug: X-Forwarded-For Proxy Fix
-
<https://werkzeug.palletsprojects.com/en/2.3.x/middleware/proxy_fix/>`__ for
more details.
- version_added: 1.10.7
- type: integer
- example: ~
- default: "1"
- proxy_fix_x_host:
- description: |
- Number of values to trust for ``X-Forwarded-Host``.
- See `Werkzeug: X-Forwarded-For Proxy Fix
-
<https://werkzeug.palletsprojects.com/en/2.3.x/middleware/proxy_fix/>`__ for
more details.
- version_added: 1.10.7
- type: integer
- example: ~
- default: "1"
- proxy_fix_x_port:
- description: |
- Number of values to trust for ``X-Forwarded-Port``.
- See `Werkzeug: X-Forwarded-For Proxy Fix
-
<https://werkzeug.palletsprojects.com/en/2.3.x/middleware/proxy_fix/>`__ for
more details.
- version_added: 1.10.7
- type: integer
- example: ~
- default: "1"
- proxy_fix_x_prefix:
- description: |
- Number of values to trust for ``X-Forwarded-Prefix``.
- See `Werkzeug: X-Forwarded-For Proxy Fix
-
<https://werkzeug.palletsprojects.com/en/2.3.x/middleware/proxy_fix/>`__ for
more details.
- version_added: 1.10.7
- type: integer
- example: ~
- default: "1"
- cookie_secure:
- description: |
- Set secure flag on session cookie
- version_added: 1.10.3
- type: string
- example: ~
- default: "False"
default_wrap:
description: |
Default setting for wrap toggle on DAG code and TI log views.
@@ -1978,35 +1829,6 @@ webserver:
type: boolean
example: ~
default: "True"
- analytics_tool:
- description: |
- Send anonymous user activity to your analytics tool
- choose from ``google_analytics``, ``segment``, ``metarouter``, or
``matomo``
- version_added: ~
- type: string
- example: ~
- default: ~
- analytics_id:
- description: |
- Unique ID of your account in the analytics tool
- version_added: 1.10.5
- type: string
- example: ~
- default: ~
- analytics_url:
- description: |
- Your instances url, only applicable to Matomo.
- version_added: 2.9.0
- type: string
- example: https://your.matomo.instance.com/
- default: ~
- show_recent_stats_for_completed_runs:
- description: |
- 'Recent Tasks' stats will show for old DagRuns if set
- version_added: 2.0.0
- type: boolean
- example: ~
- default: "True"
session_lifetime_minutes:
description: |
The UI cookie lifetime in minutes. User will be logged out from UI
after
@@ -2069,43 +1891,6 @@ webserver:
type: boolean
example: ~
default: "True"
- run_internal_api:
- description: |
- Boolean for running Internal API in the webserver.
- version_added: 2.6.0
- type: boolean
- example: ~
- default: "False"
- caching_hash_method:
- description: |
- The caching algorithm used by the webserver. Must be a valid hashlib
function name.
- version_added: 2.6.0
- type: string
- example: "sha256"
- default: "md5"
- show_trigger_form_if_no_params:
- description: |
- Behavior of the trigger DAG run button for DAGs without params.
``False`` to skip and trigger
- without displaying a form to add a **dag_run.conf**, ``True`` to
always display the form.
- The form is displayed always if parameters are defined.
- version_added: 2.7.0
- type: boolean
- example: ~
- default: "False"
- num_recent_configurations_for_trigger:
- description: |
- Number of recent DAG run configurations in the selector on the trigger
web form.
- version_added: 2.9.0
- type: integer
- example: "10"
- default: "5"
- allowed_payload_size:
- description: |
- The maximum size of the request payload (in MB) that can be sent.
- version_added: 2.8.1
- type: float
- example: ~
- default: "1.0"
require_confirmation_dag_change:
description: |
Require confirmation when changing a DAG in the web UI. This is to
prevent accidental changes
@@ -2116,22 +1901,6 @@ webserver:
type: boolean
example: ~
default: "False"
- max_form_memory_size:
- description: |
- The maximum size in bytes any non-file form field may be in a
multipart/form-data body.
- If this limit is exceeded, a 413 RequestEntityTooLarge error is raised
by webserver.
- version_added: 2.10.5
- type: integer
- example: ~
- default: "500000"
- max_form_parts:
- description: |
- The maximum number of fields that may be present in a
multipart/form-data body.
- If this limit is exceeded, a 413 RequestEntityTooLarge error is raised
by webserver.
- version_added: 2.10.5
- type: integer
- example: ~
- default: "1000"
email:
description: |
Configuration email backend and whether to
diff --git a/dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py
b/dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py
index 2a573c8327d..c8685ed32db 100644
--- a/dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py
@@ -603,7 +603,7 @@ COPY --chown=airflow:0
airflow-core/src/airflow/example_dags/ /opt/airflow/dags/
COPY --chown=airflow:0
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/
/opt/airflow/pod_templates/
-ENV GUNICORN_CMD_ARGS='--preload' AIRFLOW__WEBSERVER__WORKER_REFRESH_INTERVAL=0
+ENV GUNICORN_CMD_ARGS='--preload'
"""
image = f"{params.airflow_image_kubernetes}:latest"
docker_build_result = run_command(
diff --git a/newsfragments/48066.significant.rst
b/newsfragments/48066.significant.rst
new file mode 100644
index 00000000000..236b0437290
--- /dev/null
+++ b/newsfragments/48066.significant.rst
@@ -0,0 +1,78 @@
+Unused webserver configuration options have been removed
+
+The following configuration options are now unused and have been removed:
+
+- ``[webserver] web_server_master_timeout``
+- ``[webserver] worker_refresh_batch_size``
+- ``[webserver] worker_refresh_interval``
+- ``[webserver] reload_on_plugin_change``
+- ``[webserver] worker_class``
+- ``[webserver] expose_stacktrace``
+- ``[webserver] log_fetch_delay_sec``
+- ``[webserver] log_auto_tailing_offset``
+- ``[webserver] log_animation_speed``
+- ``[webserver] default_dag_run_display_number``
+- ``[webserver] enable_proxy_fix``
+- ``[webserver] proxy_fix_x_for``
+- ``[webserver] proxy_fix_x_proto``
+- ``[webserver] proxy_fix_x_host``
+- ``[webserver] proxy_fix_x_port``
+- ``[webserver] proxy_fix_x_prefix``
+- ``[webserver] cookie_secure``
+- ``[webserver] analytics_tool``
+- ``[webserver] analytics_id``
+- ``[webserver] analytics_url``
+- ``[webserver] show_recent_stats_for_completed_runs``
+- ``[webserver] run_internal_api``
+- ``[webserver] caching_hash_method``
+- ``[webserver] show_trigger_form_if_no_params``
+- ``[webserver] num_recent_configurations_for_trigger``
+- ``[webserver] allowed_payload_size``
+- ``[webserver] max_form_memory_size``
+- ``[webserver] max_form_parts``
+
+* Types of change
+
+ * [ ] Dag changes
+ * [x] Config changes
+ * [ ] API changes
+ * [ ] CLI changes
+ * [ ] Behaviour changes
+ * [ ] Plugin changes
+ * [ ] Dependency changes
+ * [ ] Code interface changes
+
+.. List the migration rules needed for this change (see
https://github.com/apache/airflow/issues/41641)
+
+* Migration rules needed
+
+ * ``airflow config lint``
+
+ * [ ] Remove configuration option ``[webserver] web_server_master_timeout``
+ * [ ] Remove configuration option ``[webserver] worker_refresh_batch_size``
+ * [ ] Remove configuration option ``[webserver] worker_refresh_interval``
+ * [ ] Remove configuration option ``[webserver] reload_on_plugin_change``
+ * [ ] Remove configuration option ``[webserver] worker_class``
+ * [ ] Remove configuration option ``[webserver] expose_stacktrace``
+ * [ ] Remove configuration option ``[webserver] log_fetch_delay_sec``
+ * [ ] Remove configuration option ``[webserver] log_auto_tailing_offset``
+ * [ ] Remove configuration option ``[webserver] log_animation_speed``
+ * [ ] Remove configuration option ``[webserver]
default_dag_run_display_number``
+ * [ ] Remove configuration option ``[webserver] enable_proxy_fix``
+ * [ ] Remove configuration option ``[webserver] proxy_fix_x_for``
+ * [ ] Remove configuration option ``[webserver] proxy_fix_x_proto``
+ * [ ] Remove configuration option ``[webserver] proxy_fix_x_host``
+ * [ ] Remove configuration option ``[webserver] proxy_fix_x_port``
+ * [ ] Remove configuration option ``[webserver] proxy_fix_x_prefix``
+ * [ ] Remove configuration option ``[webserver] cookie_secure``
+ * [ ] Remove configuration option ``[webserver] analytics_tool``
+ * [ ] Remove configuration option ``[webserver] analytics_id``
+ * [ ] Remove configuration option ``[webserver] analytics_url``
+ * [ ] Remove configuration option ``[webserver]
show_recent_stats_for_completed_runs``
+ * [ ] Remove configuration option ``[webserver] run_internal_api``
+ * [ ] Remove configuration option ``[webserver] caching_hash_method``
+ * [ ] Remove configuration option ``[webserver]
show_trigger_form_if_no_params``
+ * [ ] Remove configuration option ``[webserver]
num_recent_configurations_for_trigger``
+ * [ ] Remove configuration option ``[webserver] allowed_payload_size``
+ * [ ] Remove configuration option ``[webserver] max_form_memory_size``
+ * [ ] Remove configuration option ``[webserver] max_form_parts``
diff --git a/providers/fab/tests/unit/fab/utils.py
b/providers/fab/tests/unit/fab/utils.py
index ca78a5a4ab4..782bf23c276 100644
--- a/providers/fab/tests/unit/fab/utils.py
+++ b/providers/fab/tests/unit/fab/utils.py
@@ -219,9 +219,6 @@ class _TemplateWithContext(NamedTuple):
"navbar_hover_color",
"navbar_text_hover_color",
"navbar_logo_text_color",
- "log_fetch_delay_sec",
- "log_auto_tailing_offset",
- "log_animation_speed",
"state_color_mapping",
"airflow_version",
"git_version",