Skip to content

Tracking issue for bringing back API operations-related code if there is demand #149

@Arnavion

Description

@Arnavion

API operations-related code such as the Pod::list() fn were dropped in the v0.20 release.

Upstream's OpenAPI spec changed a few things related to API operations in v1.28 that would've required non-trivial changes in k8s-openapi-codegen-common. I implemented some of those changes and could've implemented the rest of them given more time and effort, but it made me re-evaluate whether there was any point in keeping this code in the first place. AFAIK everyone (*) uses k8s-openapi through kube and thus only uses k8s-openapi for the resource types, not their associated methods, since kube has its own API for operations.

If you did use the methods provided by k8s-openapi, then:

  1. Do not update to k8s-openapi v0.20 or to kube releases that require k8s-openapi v0.20

  2. Comment here to let me know that you exist. Also tell me if there's any reason you can't use kube instead.


Depending on how much demand there is for the API operations-related code in k8s-openapi, there are a few possible outcomes:

  • I might implement the changes to the code generator needed to support API operations with v1.28+ and bring back the API operations-related code.

  • I might maintain patch releases of v0.19.x for some time, that continue to get updates other than v1.28+ support. ie v0.19.x patch releases will be limited to Kubernetes 1.27 and earlier, but they will get other bugfixes.

  • I might implement a separate API that is generic like kube's is but also sans-io like the original k8s-openapi one. (I already did this partially for the sake of this repository's tests, so it would be a matter of adding more methods to it, cleaning it up for public consumption, and maintaining it.)

  • Something else.


(*): I queried users at $dayjob, and asked on the Rust IRC channel which got a few responses.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions