Skip to content

[BUG] KAGENT_URL does not reference custom release name. #1193

@ricky9408

Description

@ricky9408

📋 Prerequisites

  • I have searched the existing issues to avoid creating a duplicate
  • By submitting this issue, you agree to follow our Code of Conduct
  • I am using the latest version of the software
  • I have tried to clear cache/cookies or used incognito mode (if ui-related)
  • I can consistently reproduce this issue

🎯 Affected Service(s)

Multiple services / System-wide issue

🚦 Impact/Severity

Blocker

🐛 Bug Description

Seems environment variable KAGENT_URL is set by default.

It looks like this KAGENT_URL is set as "http://kagent-controller.kagent:8083" by default which is hardcoded.

Which is weird that the helm chart explains like this

controller:
  replicas: 1
  loglevel: "info"
  # -- The base URL of the A2A Server endpoint, as advertised to clients.
  # @default -- `http://<fullname>-controller.<namespace>.svc.cluster.local:<port>`
  a2aBaseUrl: ""

The helm chart creates the k8s service of controller with <fullname>-controller.<namespace>.svc.cluster.local but the app and agent is still referencing http://kagent-controller.kagent:8083.

🔄 Steps To Reproduce

  1. helm install kagent-crds ./helm/kagent-crds/ --set kmcp.enabled=true --namespace kagent
  2. helm install kagent ./helm/kagent/ --namespace kagent --set providers.default=gemini --set providers.gemini.apiKey= --set kmcp.enabled=true --set kagents-tools.enabled=true --set tools.grafana-mcp.enabled=true --namespace kagent
  3. kubectl get svc --namespace kagent
  4. kubectl --namespace kagent exec deploy/promql-agent -it -- sh
  5. echo $KAGENT_URL

🤔 Expected Behavior

The result of echo $KAGENT_URL command should be http://<YOUR_RELEASE_NAME>.kagent:8083.

📱 Actual Behavior

The result of echo $KAGENT_URL command is always http://kagent-controller.kagent:8083

💻 Environment

OS: macOS 26.1
Kubernetes Version: 1.34
kagent Version: 0.7.8
helm Version: 4.0.0

🔧 CLI Bug Report

No response

🔍 Additional Context

No response

📋 Logs

 k logs promql-agent-777744b85f-28gr4                                                      (☸|kind-argos:kagent)
/.kagent/.venv/lib/python3.13/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.29.3 is exactly one major version older than the runtime version 6.31.1 at a2a.proto. Please update the gencode to avoid compatibility violations in the next runtime release.
  warnings.warn(
2026-01-09 09:22:40,285 - root - INFO - Logging configured with level: INFO
2026-01-09 09:22:40,419 - kagent.adk.cli - INFO - Starting KAgent
2026-01-09 09:22:40,424 - root - INFO - OpenAI instrumentation configured with legacy GenAI span attributes
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO:     10.244.0.1:40746 - "GET /health HTTP/1.1" 200 OK
INFO:     10.244.0.1:46620 - "GET /health HTTP/1.1" 200 OK
INFO:     10.244.0.1:59550 - "GET /health HTTP/1.1" 200 OK
INFO:     10.244.0.64:37938 - "POST / HTTP/1.1" 200 OK
ERROR:    Exception in ASGI application
  + Exception Group Traceback (most recent call last):
  |   File "/.kagent/.venv/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
  |     result = await app(  # type: ignore[func-returns-value]
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |         self.scope, self.receive, self.send
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |     )
  |     ^
  |   File "/.kagent/.venv/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
  |     return await self.app(scope, receive, send)
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |   File "/.kagent/.venv/lib/python3.13/site-packages/fastapi/applications.py", line 1139, in __call__
  |     await super().__call__(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/applications.py", line 107, in __call__
  |     await self.middleware_stack(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/middleware/errors.py", line 186, in __call__
  |     raise exc
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/middleware/errors.py", line 164, in __call__
  |     await self.app(scope, receive, _send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
  |     raise exc
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
  |     await app(scope, receive, sender)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
  |     await self.app(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/routing.py", line 716, in __call__
  |     await self.middleware_stack(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/routing.py", line 736, in app
  |     await route.handle(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/routing.py", line 290, in handle
  |     await self.app(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/fastapi/routing.py", line 119, in app
  |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
  |     raise exc
  |   File "/.kagent/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
  |     await app(scope, receive, sender)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/fastapi/routing.py", line 106, in app
  |     await response(scope, receive, send)
  |   File "/.kagent/.venv/lib/python3.13/site-packages/sse_starlette/sse.py", line 255, in __call__
  |     async with anyio.create_task_group() as task_group:
  |                ~~~~~~~~~~~~~~~~~~~~~~~^^
  |   File "/.kagent/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 772, in __aexit__
  |     raise BaseExceptionGroup(
  |         "unhandled errors in a TaskGroup", self._exceptions
  |     ) from None
  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
    |     yield
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 394, in handle_async_request
    |     resp = await self._pool.handle_async_request(req)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
    |     raise exc from None
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
    |     response = await connection.handle_async_request(
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |         pool_request.request
    |         ^^^^^^^^^^^^^^^^^^^^
    |     )
    |     ^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
    |     raise exc
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
    |     stream = await self._connect(request)
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 124, in _connect
    |     stream = await self._network_backend.connect_tcp(**kwargs)
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp
    |     return await self._backend.connect_tcp(
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |     ...<5 lines>...
    |     )
    |     ^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
    |     with map_exceptions(exc_map):
    |          ~~~~~~~~~~~~~~^^^^^^^^^
    |   File "/python/cpython-3.13.7-linux-aarch64-gnu/lib/python3.13/contextlib.py", line 162, in __exit__
    |     self.gen.throw(value)
    |     ~~~~~~~~~~~~~~^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    |     raise to_exc(exc) from exc
    | httpcore.ConnectError: [Errno -2] Name or service not known
    | 
    | The above exception was the direct cause of the following exception:
    | 
    | Traceback (most recent call last):
    |   File "/.kagent/.venv/lib/python3.13/site-packages/sse_starlette/sse.py", line 258, in cancel_on_finish
    |     await coro()
    |   File "/.kagent/.venv/lib/python3.13/site-packages/sse_starlette/sse.py", line 177, in _stream_response
    |     async for data in self.body_iterator:
    |     ...<10 lines>...
    |             raise SendTimeoutError()
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/apps/jsonrpc/jsonrpc_app.py", line 540, in event_generator
    |     async for item in stream:
    |         yield {'data': item.root.model_dump_json(exclude_none=True)}
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/request_handlers/jsonrpc_handler.py", line 146, in on_message_send_stream
    |     async for event in self.request_handler.on_message_send_stream(
    |     ...<13 lines>...
    |         )
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/request_handlers/default_request_handler.py", line 379, in on_message_send_stream
    |     async for event in result_aggregator.consume_and_emit(consumer):
    |     ...<6 lines>...
    |         yield event
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/tasks/result_aggregator.py", line 70, in consume_and_emit
    |     await self.task_manager.process(event)
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/tasks/task_manager.py", line 206, in process
    |     await self.save_task_event(event)
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/tasks/task_manager.py", line 137, in save_task_event
    |     task: Task = await self.ensure_task(event)
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/a2a/server/tasks/task_manager.py", line 176, in ensure_task
    |     task = await self.task_store.get(self.task_id, self._call_context)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/packages/kagent-core/src/kagent/core/a2a/_task_store.py", line 70, in get
    |     response = await self.client.get(f"/api/tasks/{task_id}")
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1768, in get
    |     return await self.request(
    |            ^^^^^^^^^^^^^^^^^^^
    |     ...<9 lines>...
    |     )
    |     ^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1540, in request
    |     return await self.send(request, auth=auth, follow_redirects=follow_redirects)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1629, in send
    |     response = await self._send_handling_auth(
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |     ...<4 lines>...
    |     )
    |     ^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
    |     response = await self._send_handling_redirects(
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |     ...<3 lines>...
    |     )
    |     ^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
    |     response = await self._send_single_request(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1730, in _send_single_request
    |     response = await transport.handle_async_request(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 393, in handle_async_request
    |     with map_httpcore_exceptions():
    |          ~~~~~~~~~~~~~~~~~~~~~~~^^
    |   File "/python/cpython-3.13.7-linux-aarch64-gnu/lib/python3.13/contextlib.py", line 162, in __exit__
    |     self.gen.throw(value)
    |     ~~~~~~~~~~~~~~^^^^^^^
    |   File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions
    |     raise mapped_exc(message) from exc
    | httpx.ConnectError: [Errno -2] Name or service not known
    +------------------------------------
2026-01-09 09:23:26,944 - kagent_adk.kagent.adk._agent_executor - ERROR - Error handling A2A request: [Errno -2] Name or service not known
Traceback (most recent call last):
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
    yield
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 394, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
    raise exc from None
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        pool_request.request
        ^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
    raise exc
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_async/connection.py", line 124, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
    with map_exceptions(exc_map):
         ~~~~~~~~~~~~~~^^^^^^^^^
  File "/python/cpython-3.13.7-linux-aarch64-gnu/lib/python3.13/contextlib.py", line 162, in __exit__
    self.gen.throw(value)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [Errno -2] Name or service not known

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/.kagent/packages/kagent-adk/src/kagent/adk/_agent_executor.py", line 145, in execute
    await self._handle_request(context, event_queue, runner, run_args)
  File "/.kagent/packages/kagent-adk/src/kagent/adk/_agent_executor.py", line 196, in _handle_request
    session = await self._prepare_session(context, run_args, runner)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/packages/kagent-adk/src/kagent/adk/_agent_executor.py", line 296, in _prepare_session
    session = await runner.session_service.get_session(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/.kagent/packages/kagent-adk/src/kagent/adk/_session_service.py", line 88, in get_session
    response: httpx.Response = await self.client.get(
                               ^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1768, in get
    return await self.request(
           ^^^^^^^^^^^^^^^^^^^
    ...<9 lines>...
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1540, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1629, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1730, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 393, in handle_async_request
    with map_httpcore_exceptions():
         ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/python/cpython-3.13.7-linux-aarch64-gnu/lib/python3.13/contextlib.py", line 162, in __exit__
    self.gen.throw(value)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/.kagent/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno -2] Name or service not known

📷 Screenshots

No response

🙋 Are you willing to contribute?

  • I am willing to submit a PR to fix this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions