[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

OpenShift 3: Upcoming breaking REST API changes



As part of the Kubernetes rebase (bringing lots of cool new features from upstream), we're going to do the first part of the big API refactor, and we are going to make the last few breaking changes to the v1beta1 OpenShift API before we start adopting a stable API pattern.

In Kubernetes upstream, we've spent a bunch of time planning out v1beta3, which adopts a set of conventions for how APIs in a Kubernetes ecosystem should work (https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md).  The patterns here are generally RESTful, with a few conventions that should make it easier to build client tooling around Kube and OpenShift objects.

The rebase will make the first part of the changes, which is to introduce the "metadata" object, which encapsulates all the data that is shared across resource types:

{
  "kind": "Build",
  "apiVersion": "v1beta1",
  "metadata": {
    "name": "foo",
    "namespace": "bar",
    "uid", "abcdefabcdef",
    "resourceVersion": "47",
    "creationTimestamp": "20140417-08:00Z",
    "labels": {
      "imalabel":"wheee"
    }
  },

  // other fields
}

Both API endpoints and the command line will use the newer version of these objects, so you may need to update any files or clients you have.  

We'll do a little bit of cleanup over the next few days, and then we will treat "v1beta1" as our first official API version. From that point on, only non-breaking backwards compatible changes will be allowed to v1beta1, and the removal of any fields will only be allowed in a new API version (which will be "v1beta2" whenever we accumulate enough cruft).

I apologize for the inconvenience this may cause - doing this change in a breaking way greatly reduces the cost to carry this change forward, and helps us get code on the new API scheme as fast as possible.  Please bear with us over the next few days and then we'll be ready to support "v1beta1" for a very long time :)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]