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 9a059124a94 Move api-server to port 8080 (#47310)
9a059124a94 is described below

commit 9a059124a94e8f944fe178090a6a789c5afc6a03
Author: Jed Cunningham <[email protected]>
AuthorDate: Mon Mar 3 21:29:14 2025 -0700

    Move api-server to port 8080 (#47310)
    
    Now that we only have a single http server we can move back
    to the more standard 8080 port.
---
 Dockerfile.ci                                              |  4 ++--
 airflow/config_templates/config.yml                        |  6 +++---
 airflow/ui/CONTRIBUTING.md                                 |  2 +-
 airflow/ui/src/router.tsx                                  |  2 +-
 airflow/utils/helpers.py                                   |  2 +-
 chart/values.schema.json                                   |  6 +++---
 chart/values.yaml                                          |  2 +-
 clients/python/test_python_client.py                       |  2 +-
 contributing-docs/03_contributors_quick_start.rst          | 10 +++++-----
 dev/breeze/doc/03_developer_tasks.rst                      |  7 +++----
 dev/breeze/src/airflow_breeze/global_constants.py          |  3 +--
 dev/breeze/src/airflow_breeze/params/shell_params.py       | 14 ++++----------
 dev/breeze/src/airflow_breeze/utils/cdxgen.py              |  4 ++--
 dev/breeze/src/airflow_breeze/utils/visuals.py             |  9 +++------
 docker_tests/test_docker_compose_quick_start.py            |  2 +-
 .../administration-and-deployment/web-stack.rst            |  2 +-
 .../howto/docker-compose/docker-compose.yaml               |  6 +++---
 helm_tests/airflow_core/test_api_server.py                 | 10 +++++-----
 kubernetes_tests/test_base.py                              |  2 +-
 .../unit/amazon/aws/auth_manager/router/test_login.py      |  2 +-
 .../unit/amazon/aws/auth_manager/test_aws_auth_manager.py  |  2 +-
 .../tests/unit/fab/auth_manager/test_fab_auth_manager.py   |  2 +-
 scripts/ci/docker-compose/base-ports.yml                   |  3 +--
 scripts/ci/kubernetes/nodeport.yaml                        |  4 ++--
 scripts/docker/entrypoint_ci.sh                            |  4 ++--
 task_sdk/pyproject.toml                                    |  2 +-
 task_sdk/src/airflow/sdk/api/datamodels/_generated.py      |  2 +-
 tests/api_fastapi/core_api/routes/public/test_login.py     |  4 ++--
 .../cli/commands/local_commands/test_api_server_command.py |  2 +-
 tests/utils/test_helpers.py                                |  2 +-
 30 files changed, 56 insertions(+), 68 deletions(-)

diff --git a/Dockerfile.ci b/Dockerfile.ci
index 268ef4bbab8..fec3dd4ac47 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1040,11 +1040,11 @@ function start_api_server_with_examples(){
     echo
     echo "${COLOR_BLUE}Starting airflow api server${COLOR_RESET}"
     echo
-    airflow api-server --port 9091 --daemon
+    airflow api-server --port 8080 --daemon
     echo
     echo "${COLOR_BLUE}Waiting for api-server to start${COLOR_RESET}"
     echo
-    check_service_connection "Airflow api-server" "run_nc localhost 9091" 100
+    check_service_connection "Airflow api-server" "run_nc localhost 8080" 100
     EXIT_CODE=$?
     if [[ ${EXIT_CODE} != 0 ]]; then
         echo
diff --git a/airflow/config_templates/config.yml 
b/airflow/config_templates/config.yml
index 6a57fc70987..46f11e34ab8 100644
--- a/airflow/config_templates/config.yml
+++ b/airflow/config_templates/config.yml
@@ -534,7 +534,7 @@ core:
       version_added: 3.0.0
       type: string
       example: ~
-      default: "http://localhost:9091/execution/";
+      default: "http://localhost:8080/execution/";
 database:
   description: ~
   options:
@@ -1321,7 +1321,7 @@ api:
       version_added: ~
       type: string
       example: ~
-      default: "http://localhost:9091";
+      default: "http://localhost:8080";
     host:
       description: |
         The ip specified when starting the api server
@@ -1335,7 +1335,7 @@ api:
       version_added: ~
       type: string
       example: ~
-      default: "9091"
+      default: "8080"
     workers:
       description: |
         Number of workers to run on the API server
diff --git a/airflow/ui/CONTRIBUTING.md b/airflow/ui/CONTRIBUTING.md
index 44e5a55570e..73ff3ee00df 100644
--- a/airflow/ui/CONTRIBUTING.md
+++ b/airflow/ui/CONTRIBUTING.md
@@ -28,7 +28,7 @@ Manually:
 
 - Have the `dev-mode` environment variable enabled
 - Run `pnpm install && pnpm dev`
-- Note: Make sure to access the UI via the Airflow localhost port (9091 or 
29091) and not the vite port (5173)
+- Note: Make sure to access the UI via the Airflow localhost port (8080 or 
28080) and not the vite port (5173)
 
 ## More
 
diff --git a/airflow/ui/src/router.tsx b/airflow/ui/src/router.tsx
index fe88d08fea5..b3d5ecbc156 100644
--- a/airflow/ui/src/router.tsx
+++ b/airflow/ui/src/router.tsx
@@ -189,7 +189,7 @@ export const routerConfig = [
   },
 ];
 
-const baseUrl = document.querySelector("base")?.href ?? 
"http://localhost:9091/";;
+const baseUrl = document.querySelector("base")?.href ?? 
"http://localhost:8080/";;
 const basename = new URL(baseUrl).pathname;
 
 export const router = createBrowserRouter(routerConfig, { basename });
diff --git a/airflow/utils/helpers.py b/airflow/utils/helpers.py
index 6196ec78028..86730198ee4 100644
--- a/airflow/utils/helpers.py
+++ b/airflow/utils/helpers.py
@@ -256,7 +256,7 @@ def build_airflow_dagrun_url(dag_id: str, run_id: str) -> 
str:
     Build airflow dagrun url using base_url and provided dag_id and run_id.
 
     For example:
-    
http://localhost:9091/dags/hi/runs/manual__2025-02-23T18:27:39.051358+00:00_RZa1at4Q
+    
http://localhost:8080/dags/hi/runs/manual__2025-02-23T18:27:39.051358+00:00_RZa1at4Q
     """
     baseurl = conf.get("api", "base_url")
     return f"{baseurl}/dags/{dag_id}/runs/{run_id}"
diff --git a/chart/values.schema.json b/chart/values.schema.json
index bdbfc372a37..edd019cfaf5 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -4962,7 +4962,7 @@
                                     ],
                                     "examples": [
                                         {
-                                            "port": 9091
+                                            "port": 8080
                                         }
                                     ]
                                 }
@@ -5190,7 +5190,7 @@
                             "examples": [
                                 {
                                     "name": "api-server",
-                                    "port": 9091,
+                                    "port": 8080,
                                     "targetPort": "api-server"
                                 },
                                 {
@@ -8186,7 +8186,7 @@
                 "apiServer": {
                     "description": "API server port.",
                     "type": "integer",
-                    "default": 9091
+                    "default": 8080
                 },
                 "workerLogs": {
                     "description": "Worker logs port.",
diff --git a/chart/values.yaml b/chart/values.yaml
index 13ac9891c6f..25d67fced69 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -2541,7 +2541,7 @@ ports:
   statsdScrape: 9102
   pgbouncer: 6543
   pgbouncerScrape: 9127
-  apiServer: 9091
+  apiServer: 8080
 
 # Define any ResourceQuotas for namespace
 quotas: {}
diff --git a/clients/python/test_python_client.py 
b/clients/python/test_python_client.py
index b3ab213bb93..7b103210b74 100644
--- a/clients/python/test_python_client.py
+++ b/clients/python/test_python_client.py
@@ -58,7 +58,7 @@ from airflow_client.client.model.dag_run import DAGRun
 
 # Configure HTTP basic authorization: Basic
 configuration = airflow_client.client.Configuration(
-    host="http://localhost:9091/public";, username="admin", password="admin"
+    host="http://localhost:8080/public";, username="admin", password="admin"
 )
 
 # Make sure in the [core] section, the  `load_examples` config is set to True 
in your airflow.cfg
diff --git a/contributing-docs/03_contributors_quick_start.rst 
b/contributing-docs/03_contributors_quick_start.rst
index e6b42a28239..7cab285316f 100644
--- a/contributing-docs/03_contributors_quick_start.rst
+++ b/contributing-docs/03_contributors_quick_start.rst
@@ -505,7 +505,7 @@ Using Breeze
 
         Ports are forwarded to the running docker containers for webserver and 
database
           * 12322 -> forwarded to Airflow ssh server -> airflow:22
-          * 29091 -> forwarded to Airflow api server API -> airflow:9091
+          * 28080 -> forwarded to Airflow api server API -> airflow:8080
           * 25555 -> forwarded to Flower dashboard -> airflow:5555
           * 25433 -> forwarded to Postgres database -> postgres:5432
           * 23306 -> forwarded to MySQL database  -> mysql:3306
@@ -514,7 +514,7 @@ Using Breeze
         Direct links to those services that you can use from the host:
 
           * ssh connection for remote debugging: ssh -p 12322 
[email protected] (password: airflow)
-          * API server:    http://127.0.0.1:29091
+          * API server:    http://127.0.0.1:28080
           * Flower:    http://127.0.0.1:25555
           * Postgres:  
jdbc:postgresql://127.0.0.1:25433/airflow?user=postgres&password=airflow
           * Mysql:     jdbc:mysql://127.0.0.1:23306/airflow?user=root
@@ -575,12 +575,12 @@ Using Breeze
     :select-layout tiled
 
 
-2. Now you can access airflow web interface on your local machine at 
|http://localhost:29091| with user name ``admin``
+2. Now you can access airflow web interface on your local machine at 
|http://localhost:28080| with user name ``admin``
    and password ``admin``
 
-   .. |http://localhost:29091| raw:: html
+   .. |http://localhost:28080| raw:: html
 
-      <a href="http://localhost:29091"; 
target="_blank">http://localhost:29091</a>
+      <a href="http://localhost:28080"; 
target="_blank">http://localhost:28080</a>
 
    .. raw:: html
 
diff --git a/dev/breeze/doc/03_developer_tasks.rst 
b/dev/breeze/doc/03_developer_tasks.rst
index 8641744982b..10e0e0f7775 100644
--- a/dev/breeze/doc/03_developer_tasks.rst
+++ b/dev/breeze/doc/03_developer_tasks.rst
@@ -112,7 +112,7 @@ When you run Airflow Breeze, the following ports are 
automatically forwarded:
 .. code-block::
 
     * 12322 -> forwarded to Airflow ssh server -> airflow:22
-    * 29091 -> forwarded to Airflow FastAPI API -> airflow:9091
+    * 28080 -> forwarded to Airflow API server or webserver -> airflow:8080
     * 25555 -> forwarded to Flower dashboard -> airflow:5555
     * 25433 -> forwarded to Postgres database -> postgres:5432
     * 23306 -> forwarded to MySQL database  -> mysql:3306
@@ -124,7 +124,7 @@ You can connect to these ports/databases using:
 .. code-block::
 
     * ssh connection for remote debugging: ssh -p 12322 [email protected] pw: 
airflow
-    * FastAPI API:    http://127.0.0.1:29091
+    * API server or webserver:    http://127.0.0.1:28080
     * Flower:    http://127.0.0.1:25555
     * Postgres:  
jdbc:postgresql://127.0.0.1:25433/airflow?user=postgres&password=airflow
     * Mysql:     jdbc:mysql://127.0.0.1:23306/airflow?user=root
@@ -152,8 +152,7 @@ database client:
 You can change the used host port numbers by setting appropriate environment 
variables:
 
 * ``SSH_PORT``
-* ``WEBSERVER_HOST_PORT`` - for Airflow 2 web UI when --use-airflow-version is 
used
-* ``API_SERVER_HOST_PORT``
+* ``WEB_HOST_PORT`` - API server for Airflow 3, or webserver port for Airflow 
2 when --use-airflow-version is used
 * ``POSTGRES_HOST_PORT``
 * ``MYSQL_HOST_PORT``
 * ``MSSQL_HOST_PORT``
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py 
b/dev/breeze/src/airflow_breeze/global_constants.py
index 5ea0888f9e9..9c64c567c41 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -334,8 +334,7 @@ RABBITMQ_HOST_PORT = "25672"
 REDIS_HOST_PORT = "26379"
 SSH_PORT = "12322"
 VITE_DEV_PORT = "5173"
-WEBSERVER_HOST_PORT = "28080"
-API_SERVER_HOST_PORT = "29091"
+WEB_HOST_PORT = "28080"
 
 CELERY_BROKER_URLS_MAP = {"rabbitmq": "amqp://guest:guest@rabbitmq:5672", 
"redis": "redis://redis:6379/0"}
 SQLITE_URL = "sqlite:////root/airflow/sqlite/airflow.db"
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py 
b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 4646f2b2bf8..38e97804c5f 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -35,7 +35,6 @@ from airflow_breeze.global_constants import (
     ALLOWED_POSTGRES_VERSIONS,
     ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS,
     APACHE_AIRFLOW_GITHUB_REPOSITORY,
-    API_SERVER_HOST_PORT,
     CELERY_BROKER_URLS_MAP,
     CELERY_EXECUTOR,
     DEFAULT_CELERY_BROKER,
@@ -60,7 +59,7 @@ from airflow_breeze.global_constants import (
     TESTABLE_CORE_INTEGRATIONS,
     TESTABLE_PROVIDERS_INTEGRATIONS,
     USE_AIRFLOW_MOUNT_SOURCES,
-    WEBSERVER_HOST_PORT,
+    WEB_HOST_PORT,
     GithubEvents,
     GroupOfTests,
     get_airflow_version,
@@ -507,7 +506,7 @@ class ShellParams:
         _set_var(_env, "AIRFLOW_VERSION", self.airflow_version)
         _set_var(_env, "AIRFLOW__CELERY__BROKER_URL", 
self.airflow_celery_broker_url)
         _set_var(_env, "AIRFLOW__CORE__EXECUTOR", self.executor)
-        _set_var(_env, "AIRFLOW__API__BASE_URL", 
f"http://localhost:{API_SERVER_HOST_PORT}";)
+        _set_var(_env, "AIRFLOW__API__BASE_URL", 
f"http://localhost:{WEB_HOST_PORT}";)
         if self.executor == EDGE_EXECUTOR:
             _set_var(
                 _env, "AIRFLOW__CORE__EXECUTOR", 
"airflow.providers.edge.executors.edge_executor.EdgeExecutor"
@@ -524,11 +523,7 @@ class ShellParams:
                 "attempt={{ try_number|default(ti.try_number) }}.log",
             )
 
-            # Dev Airflow 3 runs API on FastAPI transitional
-            port = 9091
-            if self.use_airflow_version and 
self.use_airflow_version.startswith("2."):
-                # Airflow 2.10 runs it in the webserver atm
-                port = 8080
+            port = 8080
             _set_var(_env, "AIRFLOW__EDGE__API_URL", 
f"http://localhost:{port}/edge_worker/v1/rpcapi";)
         _set_var(_env, "ANSWER", get_forced_answer() or "")
         _set_var(_env, "BACKEND", self.backend)
@@ -617,8 +612,7 @@ class ShellParams:
         _set_var(_env, "VERBOSE", get_verbose())
         _set_var(_env, "VERBOSE_COMMANDS", self.verbose_commands)
         _set_var(_env, "VERSION_SUFFIX_FOR_PYPI", self.version_suffix_for_pypi)
-        _set_var(_env, "WEBSERVER_HOST_PORT", None, WEBSERVER_HOST_PORT)
-        _set_var(_env, "API_SERVER_HOST_PORT", None, API_SERVER_HOST_PORT)
+        _set_var(_env, "WEB_HOST_PORT", None, WEB_HOST_PORT)
         _set_var(_env, "_AIRFLOW_RUN_DB_TESTS_ONLY", self.run_db_tests_only)
         _set_var(_env, "_AIRFLOW_SKIP_DB_TESTS", self.skip_db_tests)
         self._generate_env_for_docker_compose_file_if_needed(_env)
diff --git a/dev/breeze/src/airflow_breeze/utils/cdxgen.py 
b/dev/breeze/src/airflow_breeze/utils/cdxgen.py
index 5431daaa0fb..dce222d7dd9 100644
--- a/dev/breeze/src/airflow_breeze/utils/cdxgen.py
+++ b/dev/breeze/src/airflow_breeze/utils/cdxgen.py
@@ -69,7 +69,7 @@ def start_cdxgen_server(application_root_path: Path, 
run_in_parallel: bool, para
         fork_cdxgen_server(application_root_path)
     else:
         for i in range(parallelism):
-            fork_cdxgen_server(application_root_path, port=9091 + i)
+            fork_cdxgen_server(application_root_path, port=8080 + i)
     time.sleep(1)
     get_console().print("[info]Waiting for cdxgen server to start")
     time.sleep(3)
@@ -115,7 +115,7 @@ def fork_cdxgen_server(application_root_path, port=9090):
 def get_port_mapping(x):
     # if we do not sleep here, then we could skip mapping for some process if 
it is handle
     time.sleep(1)
-    return multiprocessing.current_process().name, 9091 + x
+    return multiprocessing.current_process().name, 8080 + x
 
 
 def get_cdxgen_port_mapping(parallelism: int, pool: Pool) -> dict[str, int]:
diff --git a/dev/breeze/src/airflow_breeze/utils/visuals.py 
b/dev/breeze/src/airflow_breeze/utils/visuals.py
index 6f56cc3dadd..fd8e8357f8a 100644
--- a/dev/breeze/src/airflow_breeze/utils/visuals.py
+++ b/dev/breeze/src/airflow_breeze/utils/visuals.py
@@ -21,13 +21,12 @@ Visuals displayed to the user when entering Breeze shell.
 from __future__ import annotations
 
 from airflow_breeze.global_constants import (
-    API_SERVER_HOST_PORT,
     FLOWER_HOST_PORT,
     MYSQL_HOST_PORT,
     POSTGRES_HOST_PORT,
     REDIS_HOST_PORT,
     SSH_PORT,
-    WEBSERVER_HOST_PORT,
+    WEB_HOST_PORT,
 )
 from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT
 
@@ -82,22 +81,20 @@ CHEATSHEET = f"""
 
         Ports are forwarded to the running docker containers for webserver and 
database
           * {SSH_PORT} -> forwarded to Airflow ssh server -> airflow:22
-          * {API_SERVER_HOST_PORT} -> forwarded to Airflow api server API -> 
airflow:9091
+          * {WEB_HOST_PORT} -> forwarded to Airflow api server (Airflow 3) or 
webserver (Airflow 2) -> airflow:8080
           * {FLOWER_HOST_PORT} -> forwarded to Flower dashboard -> airflow:5555
           * {POSTGRES_HOST_PORT} -> forwarded to Postgres database -> 
postgres:5432
           * {MYSQL_HOST_PORT} -> forwarded to MySQL database  -> mysql:3306
           * {REDIS_HOST_PORT} -> forwarded to Redis broker -> redis:6379
-          * {WEBSERVER_HOST_PORT} -> forwarded to Airflow 2 (only Airflow 2) 
web server API -> airflow:8080
 
         Direct links to those services that you can use from the host:
 
           * ssh connection for remote debugging: ssh -p {SSH_PORT} 
[email protected] (password: airflow)
-          * API server:    http://127.0.0.1:{API_SERVER_HOST_PORT}
+          * API server or webserver:    http://127.0.0.1:{WEB_HOST_PORT}
           * Flower:    http://127.0.0.1:{FLOWER_HOST_PORT}
           * Postgres:  
jdbc:postgresql://127.0.0.1:{POSTGRES_HOST_PORT}/airflow?user=postgres&password=airflow
           * Mysql:     
jdbc:mysql://127.0.0.1:{MYSQL_HOST_PORT}/airflow?user=root
           * Redis:     redis://127.0.0.1:{REDIS_HOST_PORT}/0
-          * Airflow 2 web server:    http://127.0.0.1:{WEBSERVER_HOST_PORT}
 
     [info]* How can I add my stuff in Breeze:[/]
 
diff --git a/docker_tests/test_docker_compose_quick_start.py 
b/docker_tests/test_docker_compose_quick_start.py
index 846065243c3..c91dbb36dba 100644
--- a/docker_tests/test_docker_compose_quick_start.py
+++ b/docker_tests/test_docker_compose_quick_start.py
@@ -40,7 +40,7 @@ DAG_ID = "example_bash_operator"
 DAG_RUN_ID = "test_dag_run_id"
 
 
-def api_request(method: str, path: str, base_url: str = 
"http://localhost:9091/public";, **kwargs) -> dict:
+def api_request(method: str, path: str, base_url: str = 
"http://localhost:8080/public";, **kwargs) -> dict:
     response = requests.request(
         method=method,
         url=f"{base_url}/{path}",
diff --git a/docs/apache-airflow/administration-and-deployment/web-stack.rst 
b/docs/apache-airflow/administration-and-deployment/web-stack.rst
index 41cb83beaae..9a16906ab6a 100644
--- a/docs/apache-airflow/administration-and-deployment/web-stack.rst
+++ b/docs/apache-airflow/administration-and-deployment/web-stack.rst
@@ -22,7 +22,7 @@ Web Stack
 
 Sometimes you want to deploy the backend and frontend behind a
 variable url path prefix. To do so, you can configure the url 
:ref:`config:api__base_url`
-for instance, set it to ``http://localhost:29091/d12345``. All the APIs routes 
will
+for instance, set it to ``http://localhost:28080/d12345``. All the APIs routes 
will
 now be available through that additional ``d12345`` prefix. Without rebuilding
 the frontend, XHR requests and static file queries should be directed to the 
prefixed url
 and served successfully.
diff --git a/docs/apache-airflow/howto/docker-compose/docker-compose.yaml 
b/docs/apache-airflow/howto/docker-compose/docker-compose.yaml
index 8ca2dfc06d9..ec3e4f86202 100644
--- a/docs/apache-airflow/howto/docker-compose/docker-compose.yaml
+++ b/docs/apache-airflow/howto/docker-compose/docker-compose.yaml
@@ -62,7 +62,7 @@ x-airflow-common:
     AIRFLOW__CORE__LOAD_EXAMPLES: 'true'
     AIRFLOW__API__AUTH_BACKENDS: >-
        
airflow.providers.fab.auth_manager.api.auth.backend.basic_auth,airflow.api.auth.backend.session
-    AIRFLOW__WORKERS__EXECUTION_API_SERVER_URL: 
'http://airflow-apiserver:9091/execution/'
+    AIRFLOW__WORKERS__EXECUTION_API_SERVER_URL: 
'http://airflow-apiserver:8080/execution/'
     # yamllint disable rule:line-length
     # Use simple http server on scheduler for health checks
     # See 
https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/check-health.html#scheduler-health-check-server
@@ -121,9 +121,9 @@ services:
     <<: *airflow-common
     command: api-server
     ports:
-      - "9091:9091"
+      - "8080:8080"
     healthcheck:
-      test: ["CMD", "curl", "--fail", "http://localhost:9091/public/version";]
+      test: ["CMD", "curl", "--fail", "http://localhost:8080/public/version";]
       interval: 30s
       timeout: 10s
       retries: 5
diff --git a/helm_tests/airflow_core/test_api_server.py 
b/helm_tests/airflow_core/test_api_server.py
index 08fba280046..a24eb682efa 100644
--- a/helm_tests/airflow_core/test_api_server.py
+++ b/helm_tests/airflow_core/test_api_server.py
@@ -595,7 +595,7 @@ class TestAPIServerService:
             "release": "release-name",
         }
         assert jmespath.search("spec.type", docs[0]) == "ClusterIP"
-        assert {"name": "api-server", "port": 9091} in 
jmespath.search("spec.ports", docs[0])
+        assert {"name": "api-server", "port": 8080} in 
jmespath.search("spec.ports", docs[0])
 
     def test_overrides(self):
         docs = render_chart(
@@ -631,7 +631,7 @@ class TestAPIServerService:
                         "port": "{{ .Values.ports.apiServer }}",
                     }
                 ],
-                [{"name": "release-name", "protocol": "UDP", "port": 9091}],
+                [{"name": "release-name", "protocol": "UDP", "port": 8080}],
             ),
             ([{"name": "only_sidecar", "port": "{{ int 9000 }}"}], [{"name": 
"only_sidecar", "port": 9000}]),
             (
@@ -640,7 +640,7 @@ class TestAPIServerService:
                     {"name": "sidecar", "port": 80, "targetPort": "sidecar"},
                 ],
                 [
-                    {"name": "api-server", "port": 9091},
+                    {"name": "api-server", "port": 8080},
                     {"name": "sidecar", "port": 80, "targetPort": "sidecar"},
                 ],
             ),
@@ -714,7 +714,7 @@ class TestAPIServerNetworkPolicy:
         assert jmespath.search("spec.ingress[0].from", docs[0]) == [
             {"namespaceSelector": {"matchLabels": {"release": "myrelease"}}}
         ]
-        assert jmespath.search("spec.ingress[0].ports", docs[0]) == [{"port": 
9091}]
+        assert jmespath.search("spec.ingress[0].ports", docs[0]) == [{"port": 
8080}]
 
     @pytest.mark.parametrize(
         "ports, expected_ports",
@@ -726,7 +726,7 @@ class TestAPIServerNetworkPolicy:
                     {"port": 80},
                 ],
                 [
-                    {"port": 9091},
+                    {"port": 8080},
                     {"port": 80},
                 ],
             ),
diff --git a/kubernetes_tests/test_base.py b/kubernetes_tests/test_base.py
index 34c0871ff97..f41f6968fe3 100644
--- a/kubernetes_tests/test_base.py
+++ b/kubernetes_tests/test_base.py
@@ -33,7 +33,7 @@ from requests.exceptions import RetryError
 from urllib3.exceptions import MaxRetryError
 from urllib3.util.retry import Retry
 
-CLUSTER_FORWARDED_PORT = os.environ.get("CLUSTER_FORWARDED_PORT") or "9091"
+CLUSTER_FORWARDED_PORT = os.environ.get("CLUSTER_FORWARDED_PORT") or "8080"
 KUBERNETES_HOST_PORT = (os.environ.get("CLUSTER_HOST") or "localhost") + ":" + 
CLUSTER_FORWARDED_PORT
 EXECUTOR = os.environ.get("EXECUTOR")
 
diff --git 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/router/test_login.py 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/router/test_login.py
index 62731654b6b..350692d6d41 100644
--- a/providers/amazon/tests/unit/amazon/aws/auth_manager/router/test_login.py
+++ b/providers/amazon/tests/unit/amazon/aws/auth_manager/router/test_login.py
@@ -117,7 +117,7 @@ class TestLoginRouter:
                 response = client.post("/auth/login_callback", 
follow_redirects=False)
                 assert response.status_code == 303
                 assert "location" in response.headers
-                assert 
response.headers["location"].startswith("http://localhost:9091/?token=";)
+                assert 
response.headers["location"].startswith("http://localhost:8080/?token=";)
 
     def test_login_callback_unsuccessful(self):
         with conf_vars(
diff --git 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
index a69fe496e1f..44be563aa76 100644
--- 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
+++ 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
@@ -639,7 +639,7 @@ class TestAwsAuthManager:
 
     def test_get_url_login(self, auth_manager):
         result = auth_manager.get_url_login()
-        assert result == "http://localhost:9091/auth/login";
+        assert result == "http://localhost:8080/auth/login";
 
     def test_get_cli_commands_return_cli_commands(self, auth_manager):
         assert len(auth_manager.get_cli_commands()) > 0
diff --git a/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py 
b/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
index 21b88866bb5..526fc7441d3 100644
--- a/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
+++ b/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
@@ -576,7 +576,7 @@ class TestFabAuthManager:
 
     def test_get_url_login(self, auth_manager):
         result = auth_manager.get_url_login()
-        assert result == "http://localhost:9091/auth/login";
+        assert result == "http://localhost:8080/auth/login";
 
     @pytest.mark.db_test
     def test_get_url_logout_when_auth_view_not_defined(self, 
auth_manager_with_appbuilder):
diff --git a/scripts/ci/docker-compose/base-ports.yml 
b/scripts/ci/docker-compose/base-ports.yml
index 8f8a9bf2bb9..d05771106ea 100644
--- a/scripts/ci/docker-compose/base-ports.yml
+++ b/scripts/ci/docker-compose/base-ports.yml
@@ -19,6 +19,5 @@ services:
   airflow:
     ports:
       - "${SSH_PORT}:22"
-      - "${WEBSERVER_HOST_PORT}:8080"
-      - "${API_SERVER_HOST_PORT}:9091"
+      - "${WEB_HOST_PORT}:8080"
       - "${FLOWER_HOST_PORT}:5555"
diff --git a/scripts/ci/kubernetes/nodeport.yaml 
b/scripts/ci/kubernetes/nodeport.yaml
index 79555c188f6..0c3124f8801 100644
--- a/scripts/ci/kubernetes/nodeport.yaml
+++ b/scripts/ci/kubernetes/nodeport.yaml
@@ -26,6 +26,6 @@ spec:
     release: airflow
     tier: airflow
   ports:
-    - port: 9091
-      targetPort: 9091
+    - port: 8080
+      targetPort: 8080
       nodePort: 30007
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index 815a12281a8..c38117ab32b 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -365,11 +365,11 @@ function start_api_server_with_examples(){
     echo
     echo "${COLOR_BLUE}Starting airflow api server${COLOR_RESET}"
     echo
-    airflow api-server --port 9091 --daemon
+    airflow api-server --port 8080 --daemon
     echo
     echo "${COLOR_BLUE}Waiting for api-server to start${COLOR_RESET}"
     echo
-    check_service_connection "Airflow api-server" "run_nc localhost 9091" 100
+    check_service_connection "Airflow api-server" "run_nc localhost 8080" 100
     EXIT_CODE=$?
     if [[ ${EXIT_CODE} != 0 ]]; then
         echo
diff --git a/task_sdk/pyproject.toml b/task_sdk/pyproject.toml
index 80dc6232f35..1bd749f1189 100644
--- a/task_sdk/pyproject.toml
+++ b/task_sdk/pyproject.toml
@@ -141,5 +141,5 @@ use-subclass-enum=true # enum, not union of Literals
 use-union-operator=true # 3.9+annotations, not `Union[]`
 custom-formatters = ['dev.datamodel_code_formatter',]
 
-url = 'http://0.0.0.0:9091/execution/openapi.json'
+url = 'http://0.0.0.0:8080/execution/openapi.json'
 output = 'src/airflow/sdk/api/datamodels/_generated.py'
diff --git a/task_sdk/src/airflow/sdk/api/datamodels/_generated.py 
b/task_sdk/src/airflow/sdk/api/datamodels/_generated.py
index 8745361c624..763d44ec13c 100644
--- a/task_sdk/src/airflow/sdk/api/datamodels/_generated.py
+++ b/task_sdk/src/airflow/sdk/api/datamodels/_generated.py
@@ -1,5 +1,5 @@
 # generated by datamodel-codegen:
-#   filename:  http://0.0.0.0:9091/execution/openapi.json
+#   filename:  http://0.0.0.0:8080/execution/openapi.json
 #   version:   0.28.2
 
 # Licensed to the Apache Software Foundation (ASF) under one
diff --git a/tests/api_fastapi/core_api/routes/public/test_login.py 
b/tests/api_fastapi/core_api/routes/public/test_login.py
index 0d774a40350..dc00d673b30 100644
--- a/tests/api_fastapi/core_api/routes/public/test_login.py
+++ b/tests/api_fastapi/core_api/routes/public/test_login.py
@@ -39,8 +39,8 @@ class TestGetLogin(TestLoginEndpoint):
         [
             {},
             {"next": None},
-            {"next": "http://localhost:29091"},
-            {"next": "http://localhost:29091";, "other_param": 
"something_else"},
+            {"next": "http://localhost:28080"},
+            {"next": "http://localhost:28080";, "other_param": 
"something_else"},
         ],
     )
     def test_should_respond_308(self, test_client, params):
diff --git a/tests/cli/commands/local_commands/test_api_server_command.py 
b/tests/cli/commands/local_commands/test_api_server_command.py
index f15a0b3b51e..022505b710f 100644
--- a/tests/cli/commands/local_commands/test_api_server_command.py
+++ b/tests/cli/commands/local_commands/test_api_server_command.py
@@ -143,7 +143,7 @@ class TestCliApiServer(_CommonCLIGunicornTestClass):
             mock_run.assert_called_with(
                 "airflow.api_fastapi.main:app",
                 host="0.0.0.0",
-                port=9091,
+                port=8080,
                 workers=4,
                 timeout_keep_alive=120,
                 timeout_graceful_shutdown=120,
diff --git a/tests/utils/test_helpers.py b/tests/utils/test_helpers.py
index 1784dd64afb..0839dab841a 100644
--- a/tests/utils/test_helpers.py
+++ b/tests/utils/test_helpers.py
@@ -162,7 +162,7 @@ class TestHelpers:
         assert merged == {"a": 1, "r": {"b": 0, "c": 3}}
 
     def test_build_airflow_dagrun_url(self):
-        expected_url = "http://localhost:9091/dags/somedag/runs/abc123";
+        expected_url = "http://localhost:8080/dags/somedag/runs/abc123";
         assert build_airflow_dagrun_url(dag_id="somedag", run_id="abc123") == 
expected_url
 
     @pytest.mark.parametrize(

Reply via email to