etcd-io / auger

Directly access data objects stored in etcd by Kubernetes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Schema pull at runtime

tjungblu opened this issue · comments

It seems that we have to support a fairly big matrix of etcd versions x kubernetes versions x(+- crds installed).

Looking into autogen in #2 and James's effort in #32, which is a great start into getting this project updated - is this a viable path forward?

All the API descriptors are either available from Github or directly from the apiserver and we could also pull them on demand from there, given the currently installed etcd and k8s version.

Another important addition to k8s since the project start are CRDs, how would we get their schema if not from apiserver directly?

Thanks @tjungblu for raising the issue.

  1. I don't think we need to support all the matrix of etcd versions x kubernetes versions x(+- crds installed) because etcd/bbolt backend storage rarely change (not within the major version). I think we should support all the actively supported K8s versions, and for other versions, @wzshiming would add documentation regarding how to update the scheme for a specific K8s version for users to use locally.

  2. CRDs currently can be read with --output=json and that is generally how it is encoded in k8s as well. I think there are discussions regarding other encoders for CRDs. Until that changes, we do not really need to worry about that. However we do need to add better documentation of how to decode CRDs.

@jmhbnz WDYT?