From eeff1b74fb871aee359d07aab9f621111008cc58 Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Mon, 30 Mar 2015 14:01:46 -0700 Subject: [PATCH] Fixes from feedback and testing --- api/swagger-spec/v1beta1.json | 1310 +++++++++++- api/swagger-spec/v1beta2.json | 1310 +++++++++++- api/swagger-spec/v1beta3.json | 1938 ++++++++++++++++-- cluster/addons/dns/kube2sky/kube2sky.go | 35 +- hack/lib/test.sh | 2 +- hack/test-cmd.sh | 190 +- pkg/api/endpoints/util.go | 2 +- pkg/api/v1beta1/defaults.go | 15 +- pkg/api/v1beta1/types.go | 2 +- pkg/api/v1beta2/defaults.go | 15 +- pkg/api/v1beta2/types.go | 2 +- pkg/api/v1beta3/defaults.go | 29 +- pkg/client/request_test.go | 30 +- pkg/cloudprovider/openstack/openstack.go | 8 +- pkg/service/endpoints_controller.go | 5 +- test/soak/serve_hostnames/serve_hostnames.go | 7 +- 16 files changed, 4515 insertions(+), 385 deletions(-) diff --git a/api/swagger-spec/v1beta1.json b/api/swagger-spec/v1beta1.json index b3aaf167abf..11c49acf110 100644 --- a/api/swagger-spec/v1beta1.json +++ b/api/swagger-spec/v1beta1.json @@ -50,6 +50,22 @@ "summary": "list objects of kind Endpoints", "nickname": "listEndpoints", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -57,6 +73,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -103,11 +135,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.EndpointsList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Endpoints", + "summary": "watch individual changes to a list of Endpoints", "nickname": "watchEndpointslist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -115,6 +163,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -281,9 +345,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Endpoints", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Endpoints", + "summary": "watch changes to an object of kind Endpoints", "nickname": "watchEndpoints", "parameters": [ { @@ -294,6 +358,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -301,6 +381,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -322,6 +418,22 @@ "summary": "list objects of kind Event", "nickname": "listEvent", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -329,6 +441,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -375,11 +503,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.EventList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Event", + "summary": "watch individual changes to a list of Event", "nickname": "watchEventlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -387,6 +531,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -545,9 +705,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Event", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Event", + "summary": "watch changes to an object of kind Event", "nickname": "watchEvent", "parameters": [ { @@ -558,6 +718,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -565,6 +741,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -586,6 +778,22 @@ "summary": "list objects of kind LimitRange", "nickname": "listLimitRange", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -593,6 +801,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -639,11 +863,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.LimitRangeList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of LimitRange", + "summary": "watch individual changes to a list of LimitRange", "nickname": "watchLimitRangelist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -651,6 +891,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -809,9 +1065,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.LimitRange", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular LimitRange", + "summary": "watch changes to an object of kind LimitRange", "nickname": "watchLimitRange", "parameters": [ { @@ -822,6 +1078,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -829,6 +1101,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -849,7 +1137,40 @@ "method": "GET", "summary": "list objects of kind Node", "nickname": "listNode", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -886,11 +1207,44 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.MinionList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Node", + "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1023,9 +1377,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Minion", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Node", + "summary": "watch changes to an object of kind Node", "nickname": "watchNode", "parameters": [ { @@ -1035,6 +1389,38 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1271,7 +1657,40 @@ "method": "GET", "summary": "list objects of kind Namespace", "nickname": "listNamespace", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1308,11 +1727,44 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.NamespaceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Namespace", + "summary": "watch individual changes to a list of Namespace", "nickname": "watchNamespacelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1445,9 +1897,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Namespace", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Namespace", + "summary": "watch changes to an object of kind Namespace", "nickname": "watchNamespace", "parameters": [ { @@ -1457,6 +1909,38 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1549,7 +2033,40 @@ "method": "GET", "summary": "list objects of kind Node", "nickname": "listNode", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1586,11 +2103,44 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.MinionList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Node", + "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1723,9 +2273,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Minion", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Node", + "summary": "watch changes to an object of kind Node", "nickname": "watchNode", "parameters": [ { @@ -1735,6 +2285,38 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1972,6 +2554,22 @@ "summary": "list objects of kind Pod", "nickname": "listPod", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -1979,6 +2577,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2025,11 +2639,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.PodList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Pod", + "summary": "watch individual changes to a list of Pod", "nickname": "watchPodlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2037,6 +2667,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2203,9 +2849,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Pod", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Pod", + "summary": "watch changes to an object of kind Pod", "nickname": "watchPod", "parameters": [ { @@ -2216,6 +2862,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2223,6 +2885,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2612,6 +3290,22 @@ "summary": "list objects of kind ReplicationController", "nickname": "listReplicationController", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2619,6 +3313,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2665,11 +3375,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.ReplicationControllerList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ReplicationController", + "summary": "watch individual changes to a list of ReplicationController", "nickname": "watchReplicationControllerlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2677,6 +3403,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2843,9 +3585,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.ReplicationController", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ReplicationController", + "summary": "watch changes to an object of kind ReplicationController", "nickname": "watchReplicationController", "parameters": [ { @@ -2856,6 +3598,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2863,6 +3621,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2884,6 +3658,22 @@ "summary": "list objects of kind ResourceQuota", "nickname": "listResourceQuota", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2891,6 +3681,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2937,11 +3743,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.ResourceQuotaList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ResourceQuota", + "summary": "watch individual changes to a list of ResourceQuota", "nickname": "watchResourceQuotalist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2949,6 +3771,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3115,9 +3953,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.ResourceQuota", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ResourceQuota", + "summary": "watch changes to an object of kind ResourceQuota", "nickname": "watchResourceQuota", "parameters": [ { @@ -3128,6 +3966,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3135,6 +3989,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3200,6 +4070,22 @@ "summary": "list objects of kind Secret", "nickname": "listSecret", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3207,6 +4093,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3253,11 +4155,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.SecretList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Secret", + "summary": "watch individual changes to a list of Secret", "nickname": "watchSecretlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3265,6 +4183,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3423,9 +4357,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Secret", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Secret", + "summary": "watch changes to an object of kind Secret", "nickname": "watchSecret", "parameters": [ { @@ -3436,6 +4370,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3443,6 +4393,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3464,6 +4430,22 @@ "summary": "list objects of kind Service", "nickname": "listService", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3471,6 +4453,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3517,11 +4515,27 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.ServiceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Service", + "summary": "watch individual changes to a list of Service", "nickname": "watchServicelist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3529,6 +4543,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3687,9 +4717,9 @@ "description": "API at /api/v1beta1 version v1beta1", "operations": [ { - "type": "v1beta1.Service", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Service", + "summary": "watch changes to an object of kind Service", "nickname": "watchService", "parameters": [ { @@ -3700,6 +4730,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3707,6 +4753,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -4008,6 +5070,10 @@ } ], "models": { + "*json.watchEvent": { + "id": "*json.watchEvent", + "properties": {} + }, "*v1beta1.DeleteOptions": { "id": "*v1beta1.DeleteOptions", "properties": {} @@ -4279,6 +5345,22 @@ } } }, + "v1beta1.EndpointAddress": { + "id": "v1beta1.EndpointAddress", + "required": [ + "IP" + ], + "properties": { + "IP": { + "type": "string", + "description": "IP address of the endpoint" + }, + "targetRef": { + "$ref": "v1beta1.ObjectReference", + "description": "reference to object providing the endpoint" + } + } + }, "v1beta1.EndpointObjectReference": { "id": "v1beta1.EndpointObjectReference", "required": [ @@ -4319,10 +5401,51 @@ } } }, + "v1beta1.EndpointPort": { + "id": "v1beta1.EndpointPort", + "required": [ + "port" + ], + "properties": { + "name": { + "type": "string", + "description": "name of this port" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "port number of the endpoint" + }, + "protocol": { + "$ref": "v1beta1.Protocol", + "description": "protocol for this port; must be UDP or TCP; TCP if unspecified" + } + } + }, + "v1beta1.EndpointSubset": { + "id": "v1beta1.EndpointSubset", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "v1beta1.EndpointAddress" + }, + "description": "IP addresses which offer the related ports" + }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta1.EndpointPort" + }, + "description": "port numbers available on the related IP addresses" + } + } + }, "v1beta1.Endpoints": { "id": "v1beta1.Endpoints", "required": [ - "endpoints" + "endpoints", + "subsets" ], "properties": { "annotations": { @@ -4346,7 +5469,7 @@ "items": { "type": "string" }, - "description": "list of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" + "description": "first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" }, "generateName": { "type": "string", @@ -4366,7 +5489,7 @@ }, "protocol": { "$ref": "v1beta1.Protocol", - "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" + "description": "IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified" }, "resourceVersion": { "$ref": "uint64", @@ -4376,6 +5499,13 @@ "type": "string", "description": "URL for the object; populated by the system, read-only" }, + "subsets": { + "type": "array", + "items": { + "$ref": "v1beta1.EndpointSubset" + }, + "description": "sets of addresses and ports that comprise a service" + }, "targetRefs": { "type": "array", "items": { @@ -5308,13 +6438,43 @@ "id": "v1beta1.NodeSystemInfo", "required": [ "machineID", - "systemUUID" + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "KubeProxyVersion" ], "properties": { + "KubeProxyVersion": { + "type": "string", + "description": "Kube-proxy version reported by the node" + }, + "bootID": { + "type": "string", + "description": "boot id is the boot-id reported by the node" + }, + "containerRuntimeVersion": { + "type": "string", + "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)" + }, + "kernelVersion": { + "type": "string", + "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)" + }, + "kubeletVersion": { + "type": "string", + "description": "Kubelet version reported by the node" + }, "machineID": { "type": "string", "description": "machine id is the machine-id reported by the node" }, + "osImage": { + "type": "string", + "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))" + }, "systemUUID": { "type": "string", "description": "system uuid is the system-uuid reported by the node" @@ -6049,7 +7209,8 @@ "id": "v1beta1.Service", "required": [ "port", - "selector" + "selector", + "ports" ], "properties": { "annotations": { @@ -6101,10 +7262,21 @@ "format": "int32", "description": "port exposed by the service" }, + "portName": { + "type": "string", + "description": "the name of the first port; optional" + }, "portalIP": { "type": "string", "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated; 'None' can be specified for a headless service when proxying is not required" }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta1.ServicePort" + }, + "description": "ports to be exposed on the service" + }, "protocol": { "$ref": "v1beta1.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" @@ -6210,6 +7382,34 @@ } } }, + "v1beta1.ServicePort": { + "id": "v1beta1.ServicePort", + "required": [ + "name", + "protocol", + "port", + "containerPort" + ], + "properties": { + "containerPort": { + "type": "string", + "description": "the port to access on the containers belonging to pods targeted by the service; defaults to the service port" + }, + "name": { + "type": "string", + "description": "the name of this port; optional if only one port is defined" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "the port number that is exposed" + }, + "protocol": { + "$ref": "v1beta1.Protocol", + "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" + } + } + }, "v1beta1.TCPSocketAction": { "id": "v1beta1.TCPSocketAction", "properties": { diff --git a/api/swagger-spec/v1beta2.json b/api/swagger-spec/v1beta2.json index 441d9769485..65ca9aad1bb 100644 --- a/api/swagger-spec/v1beta2.json +++ b/api/swagger-spec/v1beta2.json @@ -50,6 +50,22 @@ "summary": "list objects of kind Endpoints", "nickname": "listEndpoints", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -57,6 +73,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -103,11 +135,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.EndpointsList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Endpoints", + "summary": "watch individual changes to a list of Endpoints", "nickname": "watchEndpointslist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -115,6 +163,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -281,9 +345,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Endpoints", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Endpoints", + "summary": "watch changes to an object of kind Endpoints", "nickname": "watchEndpoints", "parameters": [ { @@ -294,6 +358,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -301,6 +381,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -322,6 +418,22 @@ "summary": "list objects of kind Event", "nickname": "listEvent", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -329,6 +441,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -375,11 +503,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.EventList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Event", + "summary": "watch individual changes to a list of Event", "nickname": "watchEventlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -387,6 +531,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -545,9 +705,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Event", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Event", + "summary": "watch changes to an object of kind Event", "nickname": "watchEvent", "parameters": [ { @@ -558,6 +718,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -565,6 +741,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -586,6 +778,22 @@ "summary": "list objects of kind LimitRange", "nickname": "listLimitRange", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -593,6 +801,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -639,11 +863,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.LimitRangeList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of LimitRange", + "summary": "watch individual changes to a list of LimitRange", "nickname": "watchLimitRangelist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -651,6 +891,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -809,9 +1065,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.LimitRange", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular LimitRange", + "summary": "watch changes to an object of kind LimitRange", "nickname": "watchLimitRange", "parameters": [ { @@ -822,6 +1078,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -829,6 +1101,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -849,7 +1137,40 @@ "method": "GET", "summary": "list objects of kind Node", "nickname": "listNode", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -886,11 +1207,44 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.MinionList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Node", + "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1023,9 +1377,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Minion", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Node", + "summary": "watch changes to an object of kind Node", "nickname": "watchNode", "parameters": [ { @@ -1035,6 +1389,38 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1271,7 +1657,40 @@ "method": "GET", "summary": "list objects of kind Namespace", "nickname": "listNamespace", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1308,11 +1727,44 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.NamespaceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Namespace", + "summary": "watch individual changes to a list of Namespace", "nickname": "watchNamespacelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1445,9 +1897,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Namespace", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Namespace", + "summary": "watch changes to an object of kind Namespace", "nickname": "watchNamespace", "parameters": [ { @@ -1457,6 +1909,38 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1549,7 +2033,40 @@ "method": "GET", "summary": "list objects of kind Node", "nickname": "listNode", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1586,11 +2103,44 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.MinionList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Node", + "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1723,9 +2273,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Minion", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Node", + "summary": "watch changes to an object of kind Node", "nickname": "watchNode", "parameters": [ { @@ -1735,6 +2285,38 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1972,6 +2554,22 @@ "summary": "list objects of kind Pod", "nickname": "listPod", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -1979,6 +2577,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2025,11 +2639,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.PodList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Pod", + "summary": "watch individual changes to a list of Pod", "nickname": "watchPodlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2037,6 +2667,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2203,9 +2849,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Pod", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Pod", + "summary": "watch changes to an object of kind Pod", "nickname": "watchPod", "parameters": [ { @@ -2216,6 +2862,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2223,6 +2885,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2612,6 +3290,22 @@ "summary": "list objects of kind ReplicationController", "nickname": "listReplicationController", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2619,6 +3313,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2665,11 +3375,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.ReplicationControllerList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ReplicationController", + "summary": "watch individual changes to a list of ReplicationController", "nickname": "watchReplicationControllerlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2677,6 +3403,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2843,9 +3585,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.ReplicationController", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ReplicationController", + "summary": "watch changes to an object of kind ReplicationController", "nickname": "watchReplicationController", "parameters": [ { @@ -2856,6 +3598,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2863,6 +3621,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2884,6 +3658,22 @@ "summary": "list objects of kind ResourceQuota", "nickname": "listResourceQuota", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2891,6 +3681,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2937,11 +3743,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.ResourceQuotaList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ResourceQuota", + "summary": "watch individual changes to a list of ResourceQuota", "nickname": "watchResourceQuotalist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -2949,6 +3771,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3115,9 +3953,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.ResourceQuota", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ResourceQuota", + "summary": "watch changes to an object of kind ResourceQuota", "nickname": "watchResourceQuota", "parameters": [ { @@ -3128,6 +3966,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3135,6 +3989,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3200,6 +4070,22 @@ "summary": "list objects of kind Secret", "nickname": "listSecret", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3207,6 +4093,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3253,11 +4155,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.SecretList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Secret", + "summary": "watch individual changes to a list of Secret", "nickname": "watchSecretlist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3265,6 +4183,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3423,9 +4357,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Secret", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Secret", + "summary": "watch changes to an object of kind Secret", "nickname": "watchSecret", "parameters": [ { @@ -3436,6 +4370,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3443,6 +4393,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3464,6 +4430,22 @@ "summary": "list objects of kind Service", "nickname": "listService", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3471,6 +4453,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3517,11 +4515,27 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.ServiceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Service", + "summary": "watch individual changes to a list of Service", "nickname": "watchServicelist", "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3529,6 +4543,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3687,9 +4717,9 @@ "description": "API at /api/v1beta2 version v1beta2", "operations": [ { - "type": "v1beta2.Service", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Service", + "summary": "watch changes to an object of kind Service", "nickname": "watchService", "parameters": [ { @@ -3700,6 +4730,22 @@ "required": true, "allowMultiple": false }, + { + "type": "string", + "paramType": "query", + "name": "fields", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labels", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, { "type": "string", "paramType": "query", @@ -3707,6 +4753,22 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -4008,6 +5070,10 @@ } ], "models": { + "*json.watchEvent": { + "id": "*json.watchEvent", + "properties": {} + }, "*v1beta2.DeleteOptions": { "id": "*v1beta2.DeleteOptions", "properties": {} @@ -4279,6 +5345,22 @@ } } }, + "v1beta2.EndpointAddress": { + "id": "v1beta2.EndpointAddress", + "required": [ + "IP" + ], + "properties": { + "IP": { + "type": "string", + "description": "IP address of the endpoint" + }, + "targetRef": { + "$ref": "v1beta2.ObjectReference", + "description": "reference to object providing the endpoint" + } + } + }, "v1beta2.EndpointObjectReference": { "id": "v1beta2.EndpointObjectReference", "required": [ @@ -4319,10 +5401,51 @@ } } }, + "v1beta2.EndpointPort": { + "id": "v1beta2.EndpointPort", + "required": [ + "port" + ], + "properties": { + "name": { + "type": "string", + "description": "name of this port" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "port number of the endpoint" + }, + "protocol": { + "$ref": "v1beta2.Protocol", + "description": "protocol for this port; must be UDP or TCP; TCP if unspecified" + } + } + }, + "v1beta2.EndpointSubset": { + "id": "v1beta2.EndpointSubset", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "v1beta2.EndpointAddress" + }, + "description": "IP addresses which offer the related ports" + }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta2.EndpointPort" + }, + "description": "port numbers available on the related IP addresses" + } + } + }, "v1beta2.Endpoints": { "id": "v1beta2.Endpoints", "required": [ - "endpoints" + "endpoints", + "subsets" ], "properties": { "annotations": { @@ -4346,7 +5469,7 @@ "items": { "type": "string" }, - "description": "list of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" + "description": "first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" }, "generateName": { "type": "string", @@ -4366,7 +5489,7 @@ }, "protocol": { "$ref": "v1beta2.Protocol", - "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" + "description": "IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified" }, "resourceVersion": { "$ref": "uint64", @@ -4376,6 +5499,13 @@ "type": "string", "description": "URL for the object; populated by the system, read-only" }, + "subsets": { + "type": "array", + "items": { + "$ref": "v1beta2.EndpointSubset" + }, + "description": "sets of addresses and ports that comprise a service" + }, "targetRefs": { "type": "array", "items": { @@ -5297,13 +6427,43 @@ "id": "v1beta2.NodeSystemInfo", "required": [ "machineID", - "systemUUID" + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "KubeProxyVersion" ], "properties": { + "KubeProxyVersion": { + "type": "string", + "description": "Kube-proxy version reported by the node" + }, + "bootID": { + "type": "string", + "description": "boot id is the boot-id reported by the node" + }, + "containerRuntimeVersion": { + "type": "string", + "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)" + }, + "kernelVersion": { + "type": "string", + "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)" + }, + "kubeletVersion": { + "type": "string", + "description": "Kubelet version reported by the node" + }, "machineID": { "type": "string", "description": "machine id is the machine-id reported by the node" }, + "osImage": { + "type": "string", + "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))" + }, "systemUUID": { "type": "string", "description": "system uuid is the system-uuid reported by the node" @@ -6038,7 +7198,8 @@ "id": "v1beta2.Service", "required": [ "port", - "selector" + "selector", + "ports" ], "properties": { "annotations": { @@ -6090,10 +7251,21 @@ "format": "int32", "description": "port exposed by the service" }, + "portName": { + "type": "string", + "description": "the name of the first port; optional" + }, "portalIP": { "type": "string", "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated; 'None' can be specified for a headless service when proxying is not required" }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta2.ServicePort" + }, + "description": "ports to be exposed on the service" + }, "protocol": { "$ref": "v1beta2.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" @@ -6199,6 +7371,34 @@ } } }, + "v1beta2.ServicePort": { + "id": "v1beta2.ServicePort", + "required": [ + "name", + "protocol", + "port", + "containerPort" + ], + "properties": { + "containerPort": { + "type": "string", + "description": "the port to access on the containers belonging to pods targeted by the service; defaults to the service port" + }, + "name": { + "type": "string", + "description": "the name of this port; optional if only one port is defined" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "the port number that is exposed" + }, + "protocol": { + "$ref": "v1beta2.Protocol", + "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" + } + } + }, "v1beta2.TCPSocketAction": { "id": "v1beta2.TCPSocketAction", "properties": { diff --git a/api/swagger-spec/v1beta3.json b/api/swagger-spec/v1beta3.json index d1da89a6a60..32151078bed 100644 --- a/api/swagger-spec/v1beta3.json +++ b/api/swagger-spec/v1beta3.json @@ -57,6 +57,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -103,9 +135,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.EndpointsList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Endpoints", + "summary": "watch individual changes to a list of Endpoints", "nickname": "watchEndpointslist", "parameters": [ { @@ -115,6 +147,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -281,9 +345,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Endpoints", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Endpoints", + "summary": "watch changes to an object of kind Endpoints", "nickname": "watchEndpoints", "parameters": [ { @@ -301,6 +365,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -321,7 +417,40 @@ "method": "GET", "summary": "list objects of kind Endpoints", "nickname": "listEndpoints", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -336,11 +465,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.EndpointsList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Endpoints", + "summary": "watch individual changes to a list of Endpoints", "nickname": "watchEndpointslist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -367,6 +529,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -413,9 +607,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.EventList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Event", + "summary": "watch individual changes to a list of Event", "nickname": "watchEventlist", "parameters": [ { @@ -425,6 +619,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -583,9 +809,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Event", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Event", + "summary": "watch changes to an object of kind Event", "nickname": "watchEvent", "parameters": [ { @@ -603,6 +829,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -623,7 +881,40 @@ "method": "GET", "summary": "list objects of kind Event", "nickname": "listEvent", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -638,11 +929,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.EventList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Event", + "summary": "watch individual changes to a list of Event", "nickname": "watchEventlist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -669,6 +993,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -715,9 +1071,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.LimitRangeList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of LimitRange", + "summary": "watch individual changes to a list of LimitRange", "nickname": "watchLimitRangelist", "parameters": [ { @@ -727,6 +1083,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -885,9 +1273,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.LimitRange", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular LimitRange", + "summary": "watch changes to an object of kind LimitRange", "nickname": "watchLimitRange", "parameters": [ { @@ -905,6 +1293,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -925,7 +1345,40 @@ "method": "GET", "summary": "list objects of kind LimitRange", "nickname": "listLimitRange", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -940,11 +1393,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.LimitRangeList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of LimitRange", + "summary": "watch individual changes to a list of LimitRange", "nickname": "watchLimitRangelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -963,7 +1449,40 @@ "method": "GET", "summary": "list objects of kind Namespace", "nickname": "listNamespace", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1000,11 +1519,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.NamespaceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Namespace", + "summary": "watch individual changes to a list of Namespace", "nickname": "watchNamespacelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1137,9 +1689,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Namespace", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Namespace", + "summary": "watch changes to an object of kind Namespace", "nickname": "watchNamespace", "parameters": [ { @@ -1149,6 +1701,38 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1241,7 +1825,40 @@ "method": "GET", "summary": "list objects of kind Node", "nickname": "listNode", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1278,11 +1895,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.NodeList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Node", + "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -1415,9 +2065,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Node", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Node", + "summary": "watch changes to an object of kind Node", "nickname": "watchNode", "parameters": [ { @@ -1427,6 +2077,38 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1671,6 +2353,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1717,9 +2431,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.PodList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Pod", + "summary": "watch individual changes to a list of Pod", "nickname": "watchPodlist", "parameters": [ { @@ -1729,6 +2443,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -1895,9 +2641,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Pod", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Pod", + "summary": "watch changes to an object of kind Pod", "nickname": "watchPod", "parameters": [ { @@ -1915,6 +2661,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2223,7 +3001,40 @@ "method": "GET", "summary": "list objects of kind Pod", "nickname": "listPod", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -2238,11 +3049,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.PodList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Pod", + "summary": "watch individual changes to a list of Pod", "nickname": "watchPodlist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -2349,6 +3193,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2395,9 +3271,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ReplicationControllerList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ReplicationController", + "summary": "watch individual changes to a list of ReplicationController", "nickname": "watchReplicationControllerlist", "parameters": [ { @@ -2407,6 +3283,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2573,9 +3481,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ReplicationController", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ReplicationController", + "summary": "watch changes to an object of kind ReplicationController", "nickname": "watchReplicationController", "parameters": [ { @@ -2593,6 +3501,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2613,7 +3553,40 @@ "method": "GET", "summary": "list objects of kind ReplicationController", "nickname": "listReplicationController", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -2628,11 +3601,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ReplicationControllerList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ReplicationController", + "summary": "watch individual changes to a list of ReplicationController", "nickname": "watchReplicationControllerlist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -2659,6 +3665,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2705,9 +3743,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ResourceQuotaList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ResourceQuota", + "summary": "watch individual changes to a list of ResourceQuota", "nickname": "watchResourceQuotalist", "parameters": [ { @@ -2717,6 +3755,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2883,9 +3953,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ResourceQuota", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular ResourceQuota", + "summary": "watch changes to an object of kind ResourceQuota", "nickname": "watchResourceQuota", "parameters": [ { @@ -2903,6 +3973,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -2923,7 +4025,40 @@ "method": "GET", "summary": "list objects of kind ResourceQuota", "nickname": "listResourceQuota", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -2938,11 +4073,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ResourceQuotaList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of ResourceQuota", + "summary": "watch individual changes to a list of ResourceQuota", "nickname": "watchResourceQuotalist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -3013,6 +4181,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3059,9 +4259,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.SecretList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Secret", + "summary": "watch individual changes to a list of Secret", "nickname": "watchSecretlist", "parameters": [ { @@ -3071,6 +4271,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3229,9 +4461,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Secret", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Secret", + "summary": "watch changes to an object of kind Secret", "nickname": "watchSecret", "parameters": [ { @@ -3249,6 +4481,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3269,7 +4533,40 @@ "method": "GET", "summary": "list objects of kind Secret", "nickname": "listSecret", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -3284,11 +4581,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.SecretList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Secret", + "summary": "watch individual changes to a list of Secret", "nickname": "watchSecretlist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -3315,6 +4645,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3361,9 +4723,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ServiceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Service", + "summary": "watch individual changes to a list of Service", "nickname": "watchServicelist", "parameters": [ { @@ -3373,6 +4735,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3531,9 +4925,9 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.Service", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a particular Service", + "summary": "watch changes to an object of kind Service", "nickname": "watchService", "parameters": [ { @@ -3551,6 +4945,38 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false } ], "produces": [ @@ -3859,7 +5285,40 @@ "method": "GET", "summary": "list objects of kind Service", "nickname": "listService", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -3874,11 +5333,44 @@ "description": "API at /api/v1beta3 version v1beta3", "operations": [ { - "type": "v1beta3.ServiceList", + "type": "*json.watchEvent", "method": "GET", - "summary": "watch a list of Service", + "summary": "watch individual changes to a list of Service", "nickname": "watchServicelist", - "parameters": [], + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history", + "required": false, + "allowMultiple": false + }, + { + "type": "bool", + "paramType": "query", + "name": "watch", + "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion", + "required": false, + "allowMultiple": false + } + ], "produces": [ "application/json" ], @@ -3890,6 +5382,10 @@ } ], "models": { + "*json.watchEvent": { + "id": "*json.watchEvent", + "properties": {} + }, "*v1beta3.DeleteOptions": { "id": "*v1beta3.DeleteOptions", "properties": {} @@ -4089,21 +5585,133 @@ } } }, - "v1beta3.Endpoint": { - "id": "v1beta3.Endpoint", + "v1beta3.ContainerState": { + "id": "v1beta3.ContainerState", + "properties": { + "running": { + "$ref": "v1beta3.ContainerStateRunning", + "description": "details about a running container" + }, + "termination": { + "$ref": "v1beta3.ContainerStateTerminated", + "description": "details about a terminated container" + }, + "waiting": { + "$ref": "v1beta3.ContainerStateWaiting", + "description": "details about a waiting container" + } + } + }, + "v1beta3.ContainerStateRunning": { + "id": "v1beta3.ContainerStateRunning", + "properties": { + "startedAt": { + "type": "string", + "description": "time at which the container was last (re-)started" + } + } + }, + "v1beta3.ContainerStateTerminated": { + "id": "v1beta3.ContainerStateTerminated", "required": [ - "ip", - "port" + "exitCode" ], "properties": { - "ip": { + "containerID": { "type": "string", - "description": "IP of this endpoint" + "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'" }, - "port": { + "exitCode": { "type": "integer", "format": "int32", - "description": "destination port of this endpoint" + "description": "exit status from the last termination of the container" + }, + "finishedAt": { + "type": "string", + "description": "time at which the container last terminated" + }, + "message": { + "type": "string", + "description": "message regarding the last termination of the container" + }, + "reason": { + "type": "string", + "description": "(brief) reason from the last termination of the container" + }, + "signal": { + "type": "integer", + "format": "int32", + "description": "signal from the last termination of the container" + }, + "startedAt": { + "type": "string", + "description": "time at which previous execution of the container started" + } + } + }, + "v1beta3.ContainerStateWaiting": { + "id": "v1beta3.ContainerStateWaiting", + "properties": { + "reason": { + "type": "string", + "description": "(brief) reason the container is not yet running, such as pulling its image" + } + } + }, + "v1beta3.ContainerStatus": { + "id": "v1beta3.ContainerStatus", + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "properties": { + "containerID": { + "type": "string", + "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'" + }, + "image": { + "type": "string", + "description": "image of the container" + }, + "imageID": { + "type": "string", + "description": "ID of the container's image" + }, + "lastState": { + "$ref": "v1beta3.ContainerState", + "description": "details about the container's last termination condition" + }, + "name": { + "type": "string", + "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" + }, + "ready": { + "type": "boolean", + "description": "specifies whether the container has passed its readiness probe" + }, + "restartCount": { + "type": "integer", + "format": "int32", + "description": "the number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed" + }, + "state": { + "$ref": "v1beta3.ContainerState", + "description": "details about the container's current condition" + } + } + }, + "v1beta3.EndpointAddress": { + "id": "v1beta3.EndpointAddress", + "required": [ + "IP" + ], + "properties": { + "IP": { + "type": "string", + "description": "IP address of the endpoint" }, "targetRef": { "$ref": "v1beta3.ObjectReference", @@ -4111,8 +5719,51 @@ } } }, + "v1beta3.EndpointPort": { + "id": "v1beta3.EndpointPort", + "required": [ + "port" + ], + "properties": { + "name": { + "type": "string", + "description": "name of this port" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "port number of the endpoint" + }, + "protocol": { + "$ref": "v1beta3.Protocol", + "description": "protocol for this port; must be UDP or TCP; TCP if unspecified" + } + } + }, + "v1beta3.EndpointSubset": { + "id": "v1beta3.EndpointSubset", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "v1beta3.EndpointAddress" + }, + "description": "IP addresses which offer the related ports" + }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta3.EndpointPort" + }, + "description": "port numbers available on the related IP addresses" + } + } + }, "v1beta3.Endpoints": { "id": "v1beta3.Endpoints", + "required": [ + "subsets" + ], "properties": { "annotations": { "$ref": "v1beta3.ObjectMeta.annotations", @@ -4130,13 +5781,6 @@ "type": "string", "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" }, - "endpoints": { - "type": "array", - "items": { - "$ref": "v1beta3.Endpoint" - }, - "description": "list of endpoints corresponding to a service" - }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4157,10 +5801,6 @@ "type": "string", "description": "namespace of the object; cannot be updated" }, - "protocol": { - "$ref": "v1beta3.Protocol", - "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" - }, "resourceVersion": { "type": "string", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" @@ -4169,6 +5809,13 @@ "type": "string", "description": "URL for the object; populated by the system, read-only" }, + "subsets": { + "type": "array", + "items": { + "$ref": "v1beta3.EndpointSubset" + }, + "description": "sets of addresses and ports that comprise a service" + }, "uid": { "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" @@ -4787,10 +6434,6 @@ "v1beta3.NodeSpec": { "id": "v1beta3.NodeSpec", "properties": { - "capacity": { - "$ref": "v1beta3.ResourceList", - "description": "compute resource capacity of the node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/resources.md" - }, "externalID": { "type": "string", "description": "external ID assigned to the node by some machine database (e.g. a cloud provider)" @@ -4815,6 +6458,10 @@ }, "description": "list of addresses reachable to the node" }, + "capacity": { + "$ref": "v1beta3.ResourceList", + "description": "compute resource capacity of the node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/resources.md" + }, "conditions": { "type": "array", "items": { @@ -4835,12 +6482,42 @@ "id": "v1beta3.NodeSystemInfo", "required": [ "machineID", - "systemUUID" + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "KubeProxyVersion" ], "properties": { + "KubeProxyVersion": { + "type": "string", + "description": "Kube-proxy version reported by the node" + }, + "bootID": { + "type": "string", + "description": "boot id is the boot-id reported by the node" + }, + "containerRuntimeVersion": { + "type": "string", + "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)" + }, + "kernelVersion": { + "type": "string", + "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)" + }, + "kubeletVersion": { + "type": "string", + "description": "Kubelet version reported by the node" + }, "machineID": { "type": "string" }, + "osImage": { + "type": "string", + "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))" + }, "systemUUID": { "type": "string" } @@ -5045,6 +6722,13 @@ }, "description": "current service state of pod" }, + "containerStatuses": { + "type": "array", + "items": { + "$ref": "v1beta3.ContainerStatus" + }, + "description": "list of container statuses" + }, "host": { "type": "string", "description": "host to which the pod is assigned; empty if not yet scheduled; cannot be updated" @@ -5053,10 +6737,6 @@ "type": "string", "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" }, - "info": { - "$ref": "v1beta3.PodInfo", - "description": "map of container name to container status" - }, "message": { "type": "string", "description": "human readable message indicating details about why the pod is in this condition" @@ -5596,10 +7276,38 @@ } } }, + "v1beta3.ServicePort": { + "id": "v1beta3.ServicePort", + "required": [ + "name", + "protocol", + "port", + "targetPort" + ], + "properties": { + "name": { + "type": "string", + "description": "the name of this port; optional if only one port is defined" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "the port number that is exposed" + }, + "protocol": { + "$ref": "v1beta3.Protocol", + "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" + }, + "targetPort": { + "type": "string", + "description": "the port to access on the pods targeted by the service; defaults to the service port" + } + } + }, "v1beta3.ServiceSpec": { "id": "v1beta3.ServiceSpec", "required": [ - "port", + "ports", "selector", "portalIP" ], @@ -5608,17 +7316,15 @@ "type": "boolean", "description": "set up a cloud-provider-specific load balancer on an external IP" }, - "port": { - "type": "integer", - "format": "int32", - "description": "port exposed by the service" - }, "portalIP": { "type": "string" }, - "protocol": { - "$ref": "v1beta3.Protocol", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" + "ports": { + "type": "array", + "items": { + "$ref": "v1beta3.ServicePort" + }, + "description": "ports exposed by the service" }, "publicIPs": { "type": "array", @@ -5634,10 +7340,6 @@ "sessionAffinity": { "$ref": "v1beta3.AffinityType", "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" - }, - "targetPort": { - "type": "string", - "description": "number or name of the port to access on the containers belonging to pods targeted by the service; defaults to the container's first open port" } } }, @@ -5722,4 +7424,4 @@ } } } - } + } \ No newline at end of file diff --git a/cluster/addons/dns/kube2sky/kube2sky.go b/cluster/addons/dns/kube2sky/kube2sky.go index daf59bf76f2..e8d9aeac824 100644 --- a/cluster/addons/dns/kube2sky/kube2sky.go +++ b/cluster/addons/dns/kube2sky/kube2sky.go @@ -57,22 +57,27 @@ func addDNS(record string, service *kapi.Service, etcdClient *etcd.Client) error return nil } - svc := skymsg.Service{ - Host: service.Spec.PortalIP, - Port: service.Spec.Port, - Priority: 10, - Weight: 10, - Ttl: 30, - } - b, err := json.Marshal(svc) - if err != nil { - return err - } - // Set with no TTL, and hope that kubernetes events are accurate. + for i := range service.Spec.Ports { + svc := skymsg.Service{ + Host: service.Spec.PortalIP, + Port: service.Spec.Ports[i].Port, + Priority: 10, + Weight: 10, + Ttl: 30, + } + b, err := json.Marshal(svc) + if err != nil { + return err + } + // Set with no TTL, and hope that kubernetes events are accurate. - log.Printf("Setting dns record: %v -> %s:%d\n", record, service.Spec.PortalIP, service.Spec.Port) - _, err = etcdClient.Set(skymsg.Path(record), string(b), uint64(0)) - return err + log.Printf("Setting DNS record: %v -> %s:%d\n", record, service.Spec.PortalIP, service.Spec.Ports[i].Port) + _, err = etcdClient.Set(skymsg.Path(record), string(b), uint64(0)) + if err != nil { + return err + } + } + return nil } // Implements retry logic for arbitrary mutator. Crashes after retrying for diff --git a/hack/lib/test.sh b/hack/lib/test.sh index dd1c2099237..bc8008c033d 100644 --- a/hack/lib/test.sh +++ b/hack/lib/test.sh @@ -31,7 +31,7 @@ kube::test::get_object_assert() { local request=$2 local expected=$3 - res=$(eval kubectl get "${kube_flags[@]}" $object -o template -t "$request") + res=$(eval kubectl get "${kube_flags[@]}" $object -o template -t \"$request\") if [[ "$res" =~ ^$expected$ ]]; then echo -n ${green} diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 08b235f5d12..75088618f29 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -129,17 +129,17 @@ for version in "${kube_api_versions[@]}"; do ) [ "$(kubectl get minions -t $'{{ .apiVersion }}' "${kube_flags[@]}")" == "${version}" ] fi - id_field="id" - labels_field="labels" - service_selector_field="selector" - rc_replicas_field="desiredState.replicas" - port_field="port" + id_field=".id" + labels_field=".labels" + service_selector_field=".selector" + rc_replicas_field=".desiredState.replicas" + port_field=".port" if [ "$version" = "v1beta3" ]; then - id_field="metadata.name" - labels_field="metadata.labels" - service_selector_field="spec.selector" - rc_replicas_field="spec.replicas" - port_field="spec.port" + id_field=".metadata.name" + labels_field=".metadata.labels" + service_selector_field=".spec.selector" + rc_replicas_field=".spec.replicas" + port_field="(index .spec.ports 0).port" fi # Passing no arguments to create is an error @@ -153,14 +153,14 @@ for version in "${kube_api_versions[@]}"; do ### Create POD valid-pod from JSON # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create "${kube_flags[@]}" -f examples/limitrange/valid-pod.json # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' - kube::test::get_object_assert 'pod valid-pod' "{{.$id_field}}" 'valid-pod' - kube::test::get_object_assert 'pod/valid-pod' "{{.$id_field}}" 'valid-pod' - kube::test::get_object_assert 'pods/valid-pod' "{{.$id_field}}" 'valid-pod' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert 'pod valid-pod' "{{$id_field}}" 'valid-pod' + kube::test::get_object_assert 'pod/valid-pod' "{{$id_field}}" 'valid-pod' + kube::test::get_object_assert 'pods/valid-pod' "{{$id_field}}" 'valid-pod' # Describe command should print detailed information kube::test::describe_object_assert pods 'valid-pod' "Name:" "Image(s):" "Host:" "Labels:" "Status:" "Replication Controllers" @@ -169,165 +169,165 @@ for version in "${kube_api_versions[@]}"; do ### Delete POD valid-pod by id # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete pod valid-pod "${kube_flags[@]}" # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ### Create POD valid-pod from dumped YAML # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command echo "${output_pod}" | kubectl create -f - "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete POD valid-pod from JSON # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete -f examples/limitrange/valid-pod.json "${kube_flags[@]}" # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ### Create POD redis-master from JSON # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete POD valid-pod with label # Pre-condition: valid-pod POD is running - kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{.$id_field}}:{{end}}' 'valid-pod:' + kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' 'valid-pod:' # Command kubectl delete pods -l'name in (valid-pod)' "${kube_flags[@]}" # Post-condition: no POD is running - kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{.$id_field}}:{{end}}' '' + kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' '' ### Create POD valid-pod from JSON # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete PODs with no parameter mustn't kill everything # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command ! kubectl delete pods "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete PODs with --all and a label selector is not permitted # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command ! kubectl delete --all pods -l'name in (valid-pod)' "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete all PODs # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete --all pods "${kube_flags[@]}" # --all remove all the pods # Post-condition: no POD is running - kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{.$id_field}}:{{end}}' '' + kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' '' ### Create two PODs # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" kubectl create -f examples/redis/redis-proxy.yaml "${kube_flags[@]}" # Post-condition: valid-pod and redis-proxy PODs are running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'redis-proxy:valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'redis-proxy:valid-pod:' ### Delete multiple PODs at once # Pre-condition: valid-pod and redis-proxy PODs are running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'redis-proxy:valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'redis-proxy:valid-pod:' # Command kubectl delete pods valid-pod redis-proxy "${kube_flags[@]}" # delete multiple pods at once # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ### Create two PODs # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" kubectl create -f examples/redis/redis-proxy.yaml "${kube_flags[@]}" # Post-condition: valid-pod and redis-proxy PODs are running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'redis-proxy:valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'redis-proxy:valid-pod:' ### Stop multiple PODs at once # Pre-condition: valid-pod and redis-proxy PODs are running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'redis-proxy:valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'redis-proxy:valid-pod:' # Command kubectl stop pods valid-pod redis-proxy "${kube_flags[@]}" # stop multiple pods at once # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ### Create valid-pod POD # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Label the valid-pod POD # Pre-condition: valid-pod is not labelled - kube::test::get_object_assert 'pod valid-pod' "{{range.$labels_field}}{{.}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert 'pod valid-pod' "{{range$labels_field}}{{.}}:{{end}}" 'valid-pod:' # Command kubectl label pods valid-pod new-name=new-valid-pod "${kube_flags[@]}" # Post-conditon: valid-pod is labelled - kube::test::get_object_assert 'pod valid-pod' "{{range.$labels_field}}{{.}}:{{end}}" 'valid-pod:new-valid-pod:' + kube::test::get_object_assert 'pod valid-pod' "{{range$labels_field}}{{.}}:{{end}}" 'valid-pod:new-valid-pod:' ### Delete POD by label # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete pods -lnew-name=new-valid-pod "${kube_flags[@]}" # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ### Create valid-pod POD # Pre-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" # Post-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Overwriting an existing label is not permitted # Pre-condition: name is valid-pod - kube::test::get_object_assert 'pod valid-pod' "{{.${labels_field}.name}}" 'valid-pod' + kube::test::get_object_assert 'pod valid-pod' "{{${labels_field}.name}}" 'valid-pod' # Command ! kubectl label pods valid-pod name=valid-pod-super-sayan "${kube_flags[@]}" # Post-condition: name is still valid-pod - kube::test::get_object_assert 'pod valid-pod' "{{.${labels_field}.name}}" 'valid-pod' + kube::test::get_object_assert 'pod valid-pod' "{{${labels_field}.name}}" 'valid-pod' ### --overwrite must be used to overwrite existing label, can be applied to all resources # Pre-condition: name is valid-pod - kube::test::get_object_assert 'pod valid-pod' "{{.${labels_field}.name}}" 'valid-pod' + kube::test::get_object_assert 'pod valid-pod' "{{${labels_field}.name}}" 'valid-pod' # Command kubectl label --overwrite pods --all name=valid-pod-super-sayan "${kube_flags[@]}" # Post-condition: name is valid-pod-super-sayan - kube::test::get_object_assert 'pod valid-pod' "{{.${labels_field}.name}}" 'valid-pod-super-sayan' + kube::test::get_object_assert 'pod valid-pod' "{{${labels_field}.name}}" 'valid-pod-super-sayan' ### Delete POD by label # Pre-condition: valid-pod POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete pods -l'name in (valid-pod-super-sayan)' "${kube_flags[@]}" # Post-condition: no POD is running - kube::test::get_object_assert pods "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' ############## @@ -336,19 +336,19 @@ for version in "${kube_api_versions[@]}"; do ### Create POD valid-pod in specific namespace # Pre-condition: no POD is running - kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create "${kube_flags[@]}" --namespace=other -f examples/limitrange/valid-pod.json # Post-condition: valid-pod POD is running - kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' ### Delete POD valid-pod in specific namespace # Pre-condition: valid-pod POD is running - kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{.$id_field}}:{{end}}" 'valid-pod:' + kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' # Command kubectl delete "${kube_flags[@]}" pod --namespace=other valid-pod # Post-condition: no POD is running - kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" '' ############ @@ -359,11 +359,11 @@ for version in "${kube_api_versions[@]}"; do ### Create redis-master service from JSON # Pre-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' # Command kubectl create -f examples/guestbook/redis-master-service.json "${kube_flags[@]}" # Post-condition: redis-master service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' # Describe command should print detailed information kube::test::describe_object_assert services 'redis-master' "Name:" "Labels:" "Selector:" "IP:" "Port:" "Endpoints:" "Session Affinity:" @@ -372,23 +372,23 @@ for version in "${kube_api_versions[@]}"; do ### Delete redis-master-service by id # Pre-condition: redis-master service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' # Command kubectl delete service redis-master "${kube_flags[@]}" # Post-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' ### Create redis-master-service from dumped JSON # Pre-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' # Command echo "${output_service}" | kubectl create -f - "${kube_flags[@]}" # Post-condition: redis-master service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' ### Create redis-master-${version}-test service # Pre-condition: redis-master-service service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:' # Command kubectl create -f - "${kube_flags[@]}" << __EOF__ { @@ -400,43 +400,43 @@ for version in "${kube_api_versions[@]}"; do } __EOF__ # Post-condition:redis-master-service service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:service-.*-test:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:service-.*-test:' # Command kubectl update service "${kube_flags[@]}" service-${version}-test --patch="{\"selector\":{\"my\":\"test-label\"},\"apiVersion\":\"v1beta1\"}" # Post-condition: selector.version == ${version} # This test works only in v1beta1 and v1beta2 # https://github.com/GoogleCloudPlatform/kubernetes/issues/4771 - kube::test::get_object_assert "service service-${version}-test" "{{range.$service_selector_field}}{{.}}{{end}}" "test-label" + kube::test::get_object_assert "service service-${version}-test" "{{range$service_selector_field}}{{.}}{{end}}" "test-label" ### Identity kubectl get service "${kube_flags[@]}" service-${version}-test -o json | kubectl update "${kube_flags[@]}" -f - ### Delete services by id # Pre-condition: redis-master-service service is running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:service-.*-test:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:service-.*-test:' # Command kubectl delete service redis-master "${kube_flags[@]}" kubectl delete service "service-${version}-test" "${kube_flags[@]}" # Post-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' ### Create two services # Pre-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' # Command kubectl create -f examples/guestbook/redis-master-service.json "${kube_flags[@]}" kubectl create -f examples/guestbook/redis-slave-service.json "${kube_flags[@]}" # Post-condition: redis-master and redis-slave services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:redis-slave:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:redis-slave:' ### Delete multiple services at once # Pre-condition: redis-master and redis-slave services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:redis-slave:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:redis-master:redis-slave:' # Command kubectl delete services redis-master redis-slave "${kube_flags[@]}" # delete multiple services at once # Post-condition: Only the default kubernetes services are running - kube::test::get_object_assert services "{{range.items}}{{.$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' + kube::test::get_object_assert services "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:kubernetes-ro:' ########################### @@ -447,82 +447,82 @@ __EOF__ ### Create replication controller frontend from JSON # Pre-condition: no replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}" # Post-condition: frontend replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" 'frontend-controller:' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:' # Describe command should print detailed information kube::test::describe_object_assert rc 'frontend-controller' "Name:" "Image(s):" "Labels:" "Selector:" "Replicas:" "Pods Status:" ### Resize replication controller frontend with current-replicas and replicas # Pre-condition: 3 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '3' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' # Command kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend-controller "${kube_flags[@]}" # Post-condition: 2 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '2' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' ### Resize replication controller frontend with (wrong) current-replicas and replicas # Pre-condition: 2 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '2' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' # Command ! kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend-controller "${kube_flags[@]}" # Post-condition: nothing changed - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '2' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' ### Resize replication controller frontend with replicas only # Pre-condition: 2 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '2' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' # Command kubectl resize --replicas=3 replicationcontrollers frontend-controller "${kube_flags[@]}" # Post-condition: 3 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '3' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' ### Expose replication controller as service # Pre-condition: 3 replicas - kube::test::get_object_assert 'rc frontend-controller' "{{.$rc_replicas_field}}" '3' + kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' # Command kubectl expose rc frontend-controller --port=80 "${kube_flags[@]}" # Post-condition: service exists - kube::test::get_object_assert 'service frontend-controller' "{{.$port_field}}" '80' + kube::test::get_object_assert 'service frontend-controller' "{{$port_field}}" '80' # Command kubectl expose service frontend-controller --port=443 --service-name=frontend-controller-2 "${kube_flags[@]}" # Post-condition: service exists - kube::test::get_object_assert 'service frontend-controller-2' "{{.$port_field}}" '443' + kube::test::get_object_assert 'service frontend-controller-2' "{{$port_field}}" '443' # Command kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" kubectl expose pod valid-pod --port=444 --service-name=frontend-controller-3 "${kube_flags[@]}" # Post-condition: service exists - kube::test::get_object_assert 'service frontend-controller-3' "{{.$port_field}}" '444' + kube::test::get_object_assert 'service frontend-controller-3' "{{$port_field}}" '444' # Cleanup services kubectl delete pod valid-pod "${kube_flags[@]}" kubectl delete service frontend-controller{,-2,-3} "${kube_flags[@]}" ### Delete replication controller with id # Pre-condition: frontend replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" 'frontend-controller:' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:' # Command kubectl delete rc frontend-controller "${kube_flags[@]}" # Post-condition: no replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' ### Create two replication controllers # Pre-condition: no replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}" kubectl create -f examples/guestbook/redis-slave-controller.json "${kube_flags[@]}" # Post-condition: frontend and redis-slave - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' ### Delete multiple controllers at once # Pre-condition: frontend and redis-slave - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' # Command kubectl delete rc frontend-controller redis-slave-controller "${kube_flags[@]}" # delete multiple controllers at once # Post-condition: no replication controller is running - kube::test::get_object_assert rc "{{range.items}}{{.$id_field}}:{{end}}" '' + kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' ######### @@ -531,7 +531,7 @@ __EOF__ kube::log::status "Testing kubectl(${version}:nodes)" - kube::test::get_object_assert nodes "{{range.items}}{{.$id_field}}:{{end}}" '127.0.0.1:' + kube::test::get_object_assert nodes "{{range.items}}{{$id_field}}:{{end}}" '127.0.0.1:' kube::test::describe_object_assert nodes "127.0.0.1" "Name:" "Labels:" "CreationTimestamp:" "Conditions:" "Addresses:" "Capacity:" "Pods:" @@ -543,7 +543,7 @@ __EOF__ if [[ "${version}" != "v1beta3" ]]; then kube::log::status "Testing kubectl(${version}:minions)" - kube::test::get_object_assert minions "{{range.items}}{{.$id_field}}:{{end}}" '127.0.0.1:' + kube::test::get_object_assert minions "{{range.items}}{{$id_field}}:{{end}}" '127.0.0.1:' # TODO: I should be a MinionList instead of List kube::test::get_object_assert minions '{{.kind}}' 'List' @@ -557,7 +557,7 @@ __EOF__ ##################### kube::log::status "Testing kubectl(${version}:multiget)" - kube::test::get_object_assert 'nodes/127.0.0.1 service/kubernetes' "{{range.items}}{{.$id_field}}:{{end}}" '127.0.0.1:kubernetes:' + kube::test::get_object_assert 'nodes/127.0.0.1 service/kubernetes' "{{range.items}}{{$id_field}}:{{end}}" '127.0.0.1:kubernetes:' ########### diff --git a/pkg/api/endpoints/util.go b/pkg/api/endpoints/util.go index 93c7362830f..6bb647a69ce 100644 --- a/pkg/api/endpoints/util.go +++ b/pkg/api/endpoints/util.go @@ -98,7 +98,7 @@ func (set addressSet) Insert(addr *api.EndpointAddress) { func hashAddresses(addrs addressSet) string { // Flatten the list of addresses into a string so it can be used as a // map key. Unfortunately, DeepHashObject is implemented in terms of - // spew, and spew does not handle non-primitive mapo keys well. So + // spew, and spew does not handle non-primitive map keys well. So // first we collapse it into a slice, sort the slice, then hash that. slice := []*api.EndpointAddress{} for k := range addrs { diff --git a/pkg/api/v1beta1/defaults.go b/pkg/api/v1beta1/defaults.go index 413dd98d6a0..6011272a045 100644 --- a/pkg/api/v1beta1/defaults.go +++ b/pkg/api/v1beta1/defaults.go @@ -67,13 +67,14 @@ func init() { if obj.SessionAffinity == "" { obj.SessionAffinity = AffinityTypeNone } - }, - func(obj *ServicePort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.ContainerPort == util.NewIntOrStringFromInt(0) || obj.ContainerPort == util.NewIntOrStringFromString("") { - obj.ContainerPort = util.NewIntOrStringFromInt(obj.Port) + for i := range obj.Ports { + sp := &obj.Ports[i] + if sp.Protocol == "" { + sp.Protocol = ProtocolTCP + } + if sp.ContainerPort == util.NewIntOrStringFromInt(0) || sp.ContainerPort == util.NewIntOrStringFromString("") { + sp.ContainerPort = util.NewIntOrStringFromInt(sp.Port) + } } }, func(obj *PodSpec) { diff --git a/pkg/api/v1beta1/types.go b/pkg/api/v1beta1/types.go index 5edf19a51a4..d18b1c71d21 100644 --- a/pkg/api/v1beta1/types.go +++ b/pkg/api/v1beta1/types.go @@ -758,7 +758,7 @@ type Service struct { // ContainerPort) will be overwritten by the first member of this // array. If this field is not specified, it will be populated from // the legacy fields. - Ports []ServicePort `json:"ports" description:"ports to be exposed on the service"` + Ports []ServicePort `json:"ports" description:"ports to be exposed on the service; if this field is specified, the legacy fields (Port, PortName, Protocol, and ContainerPort) will be overwritten by the first member of this array; if this field is not specified, it will be populated from the legacy fields"` } type ServicePort struct { diff --git a/pkg/api/v1beta2/defaults.go b/pkg/api/v1beta2/defaults.go index 859ba180cf9..025a2b128d2 100644 --- a/pkg/api/v1beta2/defaults.go +++ b/pkg/api/v1beta2/defaults.go @@ -68,13 +68,14 @@ func init() { if obj.SessionAffinity == "" { obj.SessionAffinity = AffinityTypeNone } - }, - func(obj *ServicePort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.ContainerPort == util.NewIntOrStringFromInt(0) || obj.ContainerPort == util.NewIntOrStringFromString("") { - obj.ContainerPort = util.NewIntOrStringFromInt(obj.Port) + for i := range obj.Ports { + sp := &obj.Ports[i] + if sp.Protocol == "" { + sp.Protocol = ProtocolTCP + } + if sp.ContainerPort == util.NewIntOrStringFromInt(0) || sp.ContainerPort == util.NewIntOrStringFromString("") { + sp.ContainerPort = util.NewIntOrStringFromInt(sp.Port) + } } }, func(obj *PodSpec) { diff --git a/pkg/api/v1beta2/types.go b/pkg/api/v1beta2/types.go index bfc4466d220..e6c370801fb 100644 --- a/pkg/api/v1beta2/types.go +++ b/pkg/api/v1beta2/types.go @@ -759,7 +759,7 @@ type Service struct { // ContainerPort) will be overwritten by the first member of this // array. If this field is not specified, it will be populated from // the legacy fields. - Ports []ServicePort `json:"ports" description:"ports to be exposed on the service"` + Ports []ServicePort `json:"ports" description:"ports to be exposed on the service; if this field is specified, the legacy fields (Port, PortName, Protocol, and ContainerPort) will be overwritten by the first member of this array; if this field is not specified, it will be populated from the legacy fields"` } type ServicePort struct { diff --git a/pkg/api/v1beta3/defaults.go b/pkg/api/v1beta3/defaults.go index 558689d1001..27883abe07e 100644 --- a/pkg/api/v1beta3/defaults.go +++ b/pkg/api/v1beta3/defaults.go @@ -52,17 +52,18 @@ func init() { obj.TerminationMessagePath = TerminationMessagePathDefault } }, - func(obj *Service) { - if obj.Spec.SessionAffinity == "" { - obj.Spec.SessionAffinity = AffinityTypeNone + func(obj *ServiceSpec) { + if obj.SessionAffinity == "" { + obj.SessionAffinity = AffinityTypeNone } - }, - func(obj *ServicePort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.TargetPort == util.NewIntOrStringFromInt(0) || obj.TargetPort == util.NewIntOrStringFromString("") { - obj.TargetPort = util.NewIntOrStringFromInt(obj.Port) + for i := range obj.Ports { + sp := &obj.Ports[i] + if sp.Protocol == "" { + sp.Protocol = ProtocolTCP + } + if sp.TargetPort == util.NewIntOrStringFromInt(0) || sp.TargetPort == util.NewIntOrStringFromString("") { + sp.TargetPort = util.NewIntOrStringFromInt(sp.Port) + } } }, func(obj *PodSpec) { @@ -102,14 +103,6 @@ func init() { obj.Path = "/" } }, - func(obj *ServicePort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.TargetPort == util.NewIntOrStringFromInt(0) || obj.TargetPort == util.NewIntOrStringFromString("") { - obj.TargetPort = util.NewIntOrStringFromInt(obj.Port) - } - }, func(obj *NamespaceStatus) { if obj.Phase == "" { obj.Phase = NamespaceActive diff --git a/pkg/client/request_test.go b/pkg/client/request_test.go index 2385f005a17..584a6a7ebe6 100644 --- a/pkg/client/request_test.go +++ b/pkg/client/request_test.go @@ -694,7 +694,11 @@ func TestRequestDo(t *testing.T) { func TestDoRequestNewWay(t *testing.T) { reqBody := "request body" - expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{Port: 12345}}}} + expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 12345, + TargetPort: util.NewIntOrStringFromInt(12345), + }}}} expectedBody, _ := v1beta2.Codec.Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, @@ -728,7 +732,11 @@ func TestDoRequestNewWay(t *testing.T) { func TestDoRequestNewWayReader(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} reqBodyExpected, _ := v1beta1.Codec.Encode(reqObj) - expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{Port: 12345}}}} + expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 12345, + TargetPort: util.NewIntOrStringFromInt(12345), + }}}} expectedBody, _ := v1beta1.Codec.Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, @@ -764,7 +772,11 @@ func TestDoRequestNewWayReader(t *testing.T) { func TestDoRequestNewWayObj(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} reqBodyExpected, _ := v1beta2.Codec.Encode(reqObj) - expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{Port: 12345}}}} + expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 12345, + TargetPort: util.NewIntOrStringFromInt(12345), + }}}} expectedBody, _ := v1beta2.Codec.Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, @@ -814,7 +826,11 @@ func TestDoRequestNewWayFile(t *testing.T) { t.Errorf("unexpected error: %v", err) } - expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{Port: 12345}}}} + expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 12345, + TargetPort: util.NewIntOrStringFromInt(12345), + }}}} expectedBody, _ := v1beta1.Codec.Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, @@ -855,7 +871,11 @@ func TestWasCreated(t *testing.T) { t.Errorf("unexpected error: %v", err) } - expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{Port: 12345}}}} + expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 12345, + TargetPort: util.NewIntOrStringFromInt(12345), + }}}} expectedBody, _ := v1beta1.Codec.Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 201, diff --git a/pkg/cloudprovider/openstack/openstack.go b/pkg/cloudprovider/openstack/openstack.go index 2bfd98d4a0f..9ab41c4dd4d 100644 --- a/pkg/cloudprovider/openstack/openstack.go +++ b/pkg/cloudprovider/openstack/openstack.go @@ -488,6 +488,10 @@ func (lb *LoadBalancer) TCPLoadBalancerExists(name, region string) (bool, error) func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP net.IP, ports []int, hosts []string, affinity api.AffinityType) (string, error) { glog.V(4).Infof("CreateTCPLoadBalancer(%v, %v, %v, %v, %v, %v)", name, region, externalIP, ports, hosts, affinity) + if len(ports) > 1 { + return "", fmt.Errorf("multiple ports are not yet supported in openstack load balancers") + } + var persistence *vips.SessionPersistence switch affinity { case api.AffinityTypeNone: @@ -515,7 +519,7 @@ func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP ne _, err = members.Create(lb.network, members.CreateOpts{ PoolID: pool.ID, - ProtocolPort: ports[0], //FIXME: need to handle multi-port + ProtocolPort: ports[0], //TODO: need to handle multi-port Address: addr, }).Extract() if err != nil { @@ -550,7 +554,7 @@ func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP ne Description: fmt.Sprintf("Kubernetes external service %s", name), Address: externalIP.String(), Protocol: "TCP", - ProtocolPort: ports[0], //FIXME: need to handle multi-port + ProtocolPort: ports[0], //TODO: need to handle multi-port PoolID: pool.ID, Persistence: persistence, }).Extract() diff --git a/pkg/service/endpoints_controller.go b/pkg/service/endpoints_controller.go index 964dec313bb..cea75dd4697 100644 --- a/pkg/service/endpoints_controller.go +++ b/pkg/service/endpoints_controller.go @@ -76,8 +76,9 @@ func (e *EndpointController) SyncServiceEndpoints() error { for i := range service.Spec.Ports { servicePort := &service.Spec.Ports[i] - // TODO: Once v1beta1 and v1beta2 are EOL'ed, this can - // assume that service.Spec.TargetPort is populated. + // TODO: Once v1beta1 and v1beta2 are EOL'ed, + // this can safely assume that TargetPort is + // populated, and findPort() can be removed. _ = v1beta1.Dependency _ = v1beta2.Dependency diff --git a/test/soak/serve_hostnames/serve_hostnames.go b/test/soak/serve_hostnames/serve_hostnames.go index 6a44e561f7c..f926fef6685 100644 --- a/test/soak/serve_hostnames/serve_hostnames.go +++ b/test/soak/serve_hostnames/serve_hostnames.go @@ -108,8 +108,11 @@ func main() { }, }, Spec: api.ServiceSpec{ - Port: 9376, - TargetPort: util.NewIntOrStringFromInt(9376), + Ports: []api.ServicePort{{ + Protocol: "TCP", + Port: 9376, + TargetPort: util.NewIntOrStringFromInt(9376), + }}, Selector: map[string]string{ "name": "serve-hostname", },