kube-rs / k8s-pb

Playing with Kubernetes protobufs
Apache License 2.0
19 stars 6 forks source link

Support subresources #26

Open clux opened 11 months ago

clux commented 11 months ago

Currently subresources, while they are generated (see i.e. Eviction), do not get a Resource impl because they do not get transformed via the jq transform.

It exists in the swagger.json as:

    "io.k8s.api.policy.v1.Eviction": {
      "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.",
      "properties": {
        "apiVersion": {
          "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
          "type": "string"
        },
        "deleteOptions": {
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions",
          "description": "DeleteOptions may be provided"
        },
        "kind": {
          "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
          "type": "string"
        },
        "metadata": {
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
          "description": "ObjectMeta describes the pod that is being evicted."
        }
      },
      "type": "object",
      "x-kubernetes-group-version-kind": [
        {
          "group": "policy",
          "kind": "Eviction",
          "version": "v1"
        }
      ]
    },

We need to capture this somehow into the transformed json.