Skip to content

K8sPipelineClient: /services/ingestionPipelines/status returns HTTP 400 on newer Kubernetes (client-java can't deserialize pod status field 'allocatedResources') #29792

Description

@MichaelRBlack

Affects

  • OpenMetadata 1.13.x (pipelineServiceClientConfig.type: k8s, bundled io.kubernetes:client-java 24.0.0)
  • Kubernetes 1.36 (AWS EKS); reproducible on any Kubernetes newer than the bundled client models

Describe the bug

On clusters newer than the bundled client-java models, K8sPipelineClient fails to read pod/job status. Listing pods/jobs throws an IllegalArgumentException during response deserialization, because pod status carries fields the models don't define:

The field `allocatedResources` in the JSON string is not defined in the `V1PodStatus` properties.
JSON: {"observedGeneration":1,"phase":"Running","conditions":[...]}

This is a RuntimeException, not an ApiException, so it is uncaught and surfaces as HTTP 400 from GET /api/v1/services/ingestionPipelines/status. In the UI, the database service Agents/Ingestion tab is blank. The queued-status and ingestion-log paths parse pods the same way and are affected too.

To Reproduce

  1. Deploy OM 1.13.x with pipelineServiceClientConfig.type: k8s on Kubernetes ≥ 1.34.
  2. Open a database service → Agents tab (or GET /api/v1/services/ingestionPipelines/status).
  3. Endpoint returns 400; UI shows no agents.

Expected behavior

Cluster access is fine (the API call succeeds; only client-side model deserialization fails), so the status endpoint should not 400 and the Agents tab should render.

Notes on fix

A client-java version bump is not durable — the latest (26.0.0, ~k8s 1.34) still trails current Kubernetes, and there is no public lenient/ignore-unknown-fields switch. Making K8sPipelineClient tolerant of client-side deserialization failures is version-independent. PR incoming.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    In Review / QA 👀

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions