xBis7 commented on code in PR #64902:
URL: https://github.com/apache/airflow/pull/64902#discussion_r3095938891
##########
dev/breeze/src/airflow_breeze/utils/kubernetes_utils.py:
##########
@@ -386,29 +394,42 @@ def set_random_cluster_ports(python: str,
kubernetes_version: str, output: Outpu
"""
forwarded_port_number = _get_free_port()
k8s_api_server_port = _get_free_port()
+ jaeger_port_number = _get_free_port()
+ prometheus_port_number = _get_free_port()
+ grafana_port_number = _get_free_port()
get_console(output=output).print(
- f"[info]Random ports: K8S API: {k8s_api_server_port}, API Server:
{forwarded_port_number}"
+ f"[info]Random ports: K8S API: {k8s_api_server_port}, API Server:
{forwarded_port_number}, "
+ f"Jaeger: {jaeger_port_number}, Prometheus: {prometheus_port_number},
Grafana: {grafana_port_number}"
)
cluster_conf_path = get_kind_cluster_config_path(python=python,
kubernetes_version=kubernetes_version)
config = (
(AIRFLOW_ROOT_PATH / "scripts" / "ci" / "kubernetes" /
"kind-cluster-conf.yaml")
.read_text()
.replace("{{FORWARDED_PORT_NUMBER}}", str(forwarded_port_number))
.replace("{{API_SERVER_PORT}}", str(k8s_api_server_port))
+ .replace("{{JAEGER_PORT_NUMBER}}", str(jaeger_port_number))
+ .replace("{{PROMETHEUS_PORT_NUMBER}}", str(prometheus_port_number))
+ .replace("{{GRAFANA_PORT_NUMBER}}", str(grafana_port_number))
)
cluster_conf_path.write_text(config)
get_console(output=output).print(f"[info]Config created in
{cluster_conf_path}:\n")
get_console(output=output).print(config)
get_console(output=output).print("\n")
-def get_kubernetes_port_numbers(python: str, kubernetes_version: str) ->
tuple[int, int]:
+def get_kubernetes_port_numbers(python: str, kubernetes_version: str) ->
tuple[int, int, int, int, int]:
+ """Returns (k8s_api_server_port, api_server_port, jaeger_port,
prometheus_port, grafana_port)."""
conf = _get_kind_cluster_config_content(python=python,
kubernetes_version=kubernetes_version)
if not conf:
- return 0, 0
+ return 0, 0, 0, 0, 0
k8s_api_server_port = conf["networking"]["apiServerPort"]
- api_server_port = conf["nodes"][1]["extraPortMappings"][0]["hostPort"]
- return k8s_api_server_port, api_server_port
+ mappings = conf["nodes"][1]["extraPortMappings"]
+ # Order matches kind-cluster-conf.yaml: api-server(0), jaeger(1),
prometheus(2), grafana(3)
+ api_server_port = mappings[0]["hostPort"]
+ jaeger_port = mappings[1]["hostPort"] if len(mappings) > 1 else 0
+ prometheus_port = mappings[2]["hostPort"] if len(mappings) > 2 else 0
+ grafana_port = mappings[3]["hostPort"] if len(mappings) > 3 else 0
Review Comment:
This part has been removed.
##########
dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py:
##########
@@ -1349,6 +1368,23 @@ def _deploy_airflow(
check=False,
)
if result.returncode == 0:
+ otel_flags = _otel_flags_from_options(extra_options)
+ observability_files: list[str] = []
+ if "tracesEnabled" in otel_flags:
+ observability_files.append(str(SCRIPTS_CI_KUBERNETES_PATH /
"observability" / "jaeger.yaml"))
+ if "metricsEnabled" in otel_flags:
+ observability_files.append(str(SCRIPTS_CI_KUBERNETES_PATH /
"observability" / "prometheus.yaml"))
+ observability_files.append(str(SCRIPTS_CI_KUBERNETES_PATH /
"observability" / "grafana.yaml"))
+ if observability_files:
+ get_console(output=output).print("[info]Deploying observability
backends for enabled OTel flags.")
+ run_command_with_k8s_env(
+ ["kubectl", "apply", "--namespace", HELM_AIRFLOW_NAMESPACE]
+ + [arg for f in observability_files for arg in ("-f", f)],
+ python=python,
+ kubernetes_version=kubernetes_version,
+ output=output,
+ check=False,
+ )
Review Comment:
This part has been removed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]