From f4e2c738f6dea089af9b6253477d436a686c084f Mon Sep 17 00:00:00 2001 From: Kris Date: Fri, 22 May 2015 08:20:27 -0700 Subject: [PATCH] Delete deprecated API versions pkg/service: There were a couple of references here just as a reminder to change the behavior of findPort. As of v1beta3, TargetPort was always defaulted, so we could remove findDefaultPort and related tests. pkg/apiserver: The tests were using versioned API codecs for some of their encoding tests. Necessary API types had to be written and registered with the fake versioned codecs. pkg/kubectl: Some tests were converted to current versions where it made sense. --- .travis.yml | 2 +- api/swagger-spec/api.json | 3 +- api/swagger-spec/resourceListing.json | 10 +- api/swagger-spec/v1beta1.json | 11476 ---------------- api/swagger-spec/v1beta2.json | 11457 --------------- api/swagger-spec/v1beta3.json | 6577 ++++----- api/swagger-spec/version.json | 3 +- .../google/heapster-controller.yaml | 2 +- .../influxdb/heapster-controller.yaml | 2 +- cmd/genconversion/conversion.go | 2 - cmd/gendeepcopy/deep_copy.go | 2 - cmd/integration/integration.go | 43 +- cmd/integration/v1beta1-controller.json | 23 - cmd/kube-apiserver/app/server.go | 13 +- cmd/kube-version-change/version.go | 2 - examples/examples_test.go | 1 - hack/test-cmd.sh | 2 - hack/test-go.sh | 2 +- hack/test-integration.sh | 2 +- hack/test-update-storage-objects.sh | 3 +- pkg/api/conversion_test.go | 2 - pkg/api/latest/latest.go | 41 +- pkg/api/latest/latest_test.go | 2 - pkg/api/registered/registered.go | 4 +- pkg/api/serialization_test.go | 15 +- pkg/api/v1beta1/conversion.go | 1777 --- pkg/api/v1beta1/conversion_test.go | 811 -- pkg/api/v1beta1/defaults.go | 242 - pkg/api/v1beta1/defaults_test.go | 461 - pkg/api/v1beta1/doc.go | 18 - pkg/api/v1beta1/register.go | 138 - pkg/api/v1beta1/types.go | 1877 --- pkg/api/v1beta2/conversion.go | 1692 --- pkg/api/v1beta2/conversion_test.go | 626 - pkg/api/v1beta2/defaults.go | 243 - pkg/api/v1beta2/defaults_test.go | 460 - pkg/api/v1beta2/doc.go | 18 - pkg/api/v1beta2/register.go | 138 - pkg/api/v1beta2/types.go | 1939 --- pkg/apiserver/apiserver_test.go | 96 +- pkg/apiserver/watch_test.go | 8 +- pkg/kubectl/cmd/exec_test.go | 8 - pkg/kubectl/cmd/get_test.go | 14 +- pkg/kubectl/cmd/log_test.go | 8 - pkg/kubectl/cmd/portforward_test.go | 8 - pkg/kubectl/cmd/util/helpers_test.go | 49 +- pkg/kubelet/config/common.go | 67 - pkg/kubelet/config/file.go | 14 +- pkg/kubelet/config/file_test.go | 112 - pkg/kubelet/config/http.go | 46 +- pkg/kubelet/config/http_test.go | 190 - pkg/master/master.go | 54 - pkg/service/endpoints_controller.go | 33 +- pkg/service/endpoints_controller_test.go | 71 +- shippable.yml | 2 +- 55 files changed, 3449 insertions(+), 37462 deletions(-) delete mode 100644 api/swagger-spec/v1beta1.json delete mode 100644 api/swagger-spec/v1beta2.json delete mode 100644 cmd/integration/v1beta1-controller.json delete mode 100644 pkg/api/v1beta1/conversion.go delete mode 100644 pkg/api/v1beta1/conversion_test.go delete mode 100644 pkg/api/v1beta1/defaults.go delete mode 100644 pkg/api/v1beta1/defaults_test.go delete mode 100644 pkg/api/v1beta1/doc.go delete mode 100644 pkg/api/v1beta1/register.go delete mode 100644 pkg/api/v1beta1/types.go delete mode 100644 pkg/api/v1beta2/conversion.go delete mode 100644 pkg/api/v1beta2/conversion_test.go delete mode 100644 pkg/api/v1beta2/defaults.go delete mode 100644 pkg/api/v1beta2/defaults_test.go delete mode 100644 pkg/api/v1beta2/doc.go delete mode 100644 pkg/api/v1beta2/register.go delete mode 100644 pkg/api/v1beta2/types.go diff --git a/.travis.yml b/.travis.yml index 5a39fa3a841..5d873d451d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ matrix: include: - go: 1.4 env: - - KUBE_TEST_API_VERSIONS="v1beta1" + - KUBE_TEST_API_VERSIONS="v1beta3" KUBE_TEST_ETCD_PREFIXES="registry" - go: 1.3 env: diff --git a/api/swagger-spec/api.json b/api/swagger-spec/api.json index f86dea5dea4..692c1b372b8 100644 --- a/api/swagger-spec/api.json +++ b/api/swagger-spec/api.json @@ -23,5 +23,6 @@ } ] } - ] + ], + "models": {} } \ No newline at end of file diff --git a/api/swagger-spec/resourceListing.json b/api/swagger-spec/resourceListing.json index 9c6fc4b8567..81b622776d4 100644 --- a/api/swagger-spec/resourceListing.json +++ b/api/swagger-spec/resourceListing.json @@ -1,14 +1,14 @@ { "swaggerVersion": "1.2", "apis": [ - { - "path": "/api", - "description": "get available API versions" - }, { "path": "/api/v1beta3", "description": "API at /api/v1beta3 version v1beta3" }, + { + "path": "/api", + "description": "get available API versions" + }, { "path": "/version", "description": "git code version from which this is built" @@ -19,4 +19,4 @@ "title": "", "description": "" } - } \ No newline at end of file + } diff --git a/api/swagger-spec/v1beta1.json b/api/swagger-spec/v1beta1.json deleted file mode 100644 index 12395e1ef39..00000000000 --- a/api/swagger-spec/v1beta1.json +++ /dev/null @@ -1,11476 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "v1beta1", - "basePath": "https://127.0.0.1:6443", - "resourcePath": "/api/v1beta1", - "apis": [ - { - "path": "/api/v1beta1/bindings", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Binding" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/componentStatuses", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ComponentStatusList", - "method": "GET", - "summary": "list objects of kind ComponentStatus", - "nickname": "listComponentStatus", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ComponentStatusList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/componentStatuses/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ComponentStatus", - "method": "GET", - "summary": "read the specified ComponentStatus", - "nickname": "readComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ComponentStatus", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ComponentStatus" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/endpoints", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.EndpointsList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.EndpointsList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Endpoints", - "method": "POST", - "summary": "create a Endpoints", - "nickname": "createEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/endpoints", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/endpoints/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Endpoints", - "method": "GET", - "summary": "read the specified Endpoints", - "nickname": "readEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Endpoints", - "method": "PUT", - "summary": "replace the specified Endpoints", - "nickname": "replaceEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Endpoints", - "method": "PATCH", - "summary": "partially update the specified Endpoints", - "nickname": "patchEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Endpoints", - "nickname": "deleteEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/endpoints/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Endpoints", - "nickname": "watchEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/events", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.EventList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.EventList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Event", - "method": "POST", - "summary": "create a Event", - "nickname": "createEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/events", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/events/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Event", - "method": "GET", - "summary": "read the specified Event", - "nickname": "readEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Event", - "method": "PUT", - "summary": "replace the specified Event", - "nickname": "replaceEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Event", - "method": "PATCH", - "summary": "partially update the specified Event", - "nickname": "patchEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Event", - "nickname": "deleteEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/events/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Event", - "nickname": "watchEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/limitRanges", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.LimitRangeList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.LimitRangeList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.LimitRange", - "method": "POST", - "summary": "create a LimitRange", - "nickname": "createLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/limitRanges", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/limitRanges/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.LimitRange", - "method": "GET", - "summary": "read the specified LimitRange", - "nickname": "readLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.LimitRange", - "method": "PUT", - "summary": "replace the specified LimitRange", - "nickname": "replaceLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.LimitRange", - "method": "PATCH", - "summary": "partially update the specified LimitRange", - "nickname": "patchLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a LimitRange", - "nickname": "deleteLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/limitRanges/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind LimitRange", - "nickname": "watchLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/minions", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.MinionList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.MinionList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/minions", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/minions/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Minion", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/minions/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/redirect/minions/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Node", - "nickname": "redirectNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/minions/{name}/{path:*}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/minions/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/minions/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/namespaces", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.NamespaceList", - "method": "GET", - "summary": "list or watch objects of kind Namespace", - "nickname": "listNamespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NamespaceList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Namespace", - "method": "POST", - "summary": "create a Namespace", - "nickname": "createNamespace", - "parameters": [ - { - "type": "v1beta1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/namespaces", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Namespace", - "nickname": "watchNamespacelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/namespaces/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Namespace", - "method": "GET", - "summary": "read the specified Namespace", - "nickname": "readNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Namespace", - "method": "PATCH", - "summary": "partially update the specified Namespace", - "nickname": "patchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Namespace", - "nickname": "deleteNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/namespaces/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Namespace", - "nickname": "watchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/namespaces/{name}/finalize", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/namespaces/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/nodes", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.MinionList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.MinionList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/nodes", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/nodes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Minion", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Minion", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/nodes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/redirect/nodes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Node", - "nickname": "redirectNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/nodes/{name}/{path:*}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/nodes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/nodes/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumeClaims", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listPersistentVolumeClaim", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "method": "POST", - "summary": "create a PersistentVolumeClaim", - "nickname": "createPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/persistentVolumeClaims", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaimlist", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumeClaims/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolumeClaim", - "method": "GET", - "summary": "read the specified PersistentVolumeClaim", - "nickname": "readPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replacePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update the specified PersistentVolumeClaim", - "nickname": "patchPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolumeClaim", - "nickname": "deletePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/persistentVolumeClaims/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumeClaims/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replacePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumes", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolumeList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolume", - "nickname": "listPersistentVolume", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolumeList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolume", - "method": "POST", - "summary": "create a PersistentVolume", - "nickname": "createPersistentVolume", - "parameters": [ - { - "type": "v1beta1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/persistentVolumes", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolume", - "nickname": "watchPersistentVolumelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolume", - "method": "GET", - "summary": "read the specified PersistentVolume", - "nickname": "readPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PersistentVolume", - "method": "PATCH", - "summary": "partially update the specified PersistentVolume", - "nickname": "patchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolume", - "nickname": "deletePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/persistentVolumes/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolume", - "nickname": "watchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/persistentVolumes/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.PodList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Pod", - "method": "POST", - "summary": "create a Pod", - "nickname": "createPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/pods", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replacePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Pod", - "method": "PATCH", - "summary": "partially update the specified Pod", - "nickname": "patchPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Pod", - "nickname": "deletePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/pods/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Pod", - "nickname": "watchPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/redirect/pods/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Pod", - "nickname": "redirectPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/pods/{name}/{path:*}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Pod", - "nickname": "proxyTRACEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/pods/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Pod", - "nickname": "proxyTRACEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/binding", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createBinding", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Binding", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Binding" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/exec", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/log", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/portforward", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/proxy", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to Pod", - "nickname": "connectPOSTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to Pod", - "nickname": "connectPUTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to Pod", - "nickname": "connectDELETEPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to Pod", - "nickname": "connectHEADPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to Pod", - "nickname": "connectOPTIONSPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/proxy/{path:*}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to Pod", - "nickname": "connectPOSTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to Pod", - "nickname": "connectPUTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to Pod", - "nickname": "connectDELETEPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to Pod", - "nickname": "connectHEADPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to Pod", - "nickname": "connectOPTIONSPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/pods/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replacePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/replicationControllers", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicationControllerList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicationControllerList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicationController", - "method": "POST", - "summary": "create a ReplicationController", - "nickname": "createReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/replicationControllers", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/replicationControllers/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicationController", - "method": "GET", - "summary": "read the specified ReplicationController", - "nickname": "readReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicationController", - "method": "PUT", - "summary": "replace the specified ReplicationController", - "nickname": "replaceReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicationController", - "method": "PATCH", - "summary": "partially update the specified ReplicationController", - "nickname": "patchReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a ReplicationController", - "nickname": "deleteReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/replicationControllers/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicationController", - "nickname": "watchReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/resourceQuotas", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ResourceQuotaList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ResourceQuotaList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ResourceQuota", - "method": "POST", - "summary": "create a ResourceQuota", - "nickname": "createResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/resourceQuotas", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/resourceQuotas/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ResourceQuota", - "method": "GET", - "summary": "read the specified ResourceQuota", - "nickname": "readResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ResourceQuota", - "method": "PATCH", - "summary": "partially update the specified ResourceQuota", - "nickname": "patchResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a ResourceQuota", - "nickname": "deleteResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/resourceQuotas/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ResourceQuota", - "nickname": "watchResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/resourceQuotas/{name}/status", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/secrets", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.SecretList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.SecretList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/secrets", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/secrets/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Secret", - "method": "GET", - "summary": "read the specified Secret", - "nickname": "readSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Secret", - "method": "PUT", - "summary": "replace the specified Secret", - "nickname": "replaceSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Secret", - "method": "PATCH", - "summary": "partially update the specified Secret", - "nickname": "patchSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Secret", - "nickname": "deleteSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/secrets/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Secret", - "nickname": "watchSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/serviceAccounts", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listServiceAccount", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ServiceAccountList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ServiceAccount", - "method": "POST", - "summary": "create a ServiceAccount", - "nickname": "createServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/serviceAccounts", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchServiceAccountlist", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/serviceAccounts/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ServiceAccount", - "method": "GET", - "summary": "read the specified ServiceAccount", - "nickname": "readServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ServiceAccount", - "method": "PUT", - "summary": "replace the specified ServiceAccount", - "nickname": "replaceServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ServiceAccount", - "method": "PATCH", - "summary": "partially update the specified ServiceAccount", - "nickname": "patchServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a ServiceAccount", - "nickname": "deleteServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/serviceAccounts/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ServiceAccount", - "nickname": "watchServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/services", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.ServiceList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ServiceList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/services", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/services/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "v1beta1.Service", - "method": "GET", - "summary": "read the specified Service", - "nickname": "readService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Service", - "method": "PUT", - "summary": "replace the specified Service", - "nickname": "replaceService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Service", - "method": "PATCH", - "summary": "partially update the specified Service", - "nickname": "patchService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta1.Status", - "method": "DELETE", - "summary": "delete a Service", - "nickname": "deleteService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/watch/services/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Service", - "nickname": "watchService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/redirect/services/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Service", - "nickname": "redirectService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/services/{name}/{path:*}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Service", - "nickname": "proxyTRACEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta1/proxy/services/{name}", - "description": "API at /api/v1beta1 version v1beta1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Service", - "nickname": "proxyTRACEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - } - ], - "models": { - "json.WatchEvent": { - "id": "json.WatchEvent", - "properties": { - "object": { - "type": "string", - "description": "the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR" - }, - "type": { - "type": "string", - "description": "the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR" - } - } - }, - "v1beta1.AWSElasticBlockStoreVolumeSource": { - "id": "v1beta1.AWSElasticBlockStoreVolumeSource", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - }, - "volumeID": { - "type": "string", - "description": "unique id of the PD resource in AWS" - } - } - }, - "v1beta1.Binding": { - "id": "v1beta1.Binding", - "required": [ - "podID", - "host" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "host": { - "type": "string", - "description": "host to which to bind the specified pod" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "podID": { - "type": "string", - "description": "name of the pod to bind" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.Capabilities": { - "id": "v1beta1.Capabilities", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1beta1.Capability" - }, - "description": "added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1beta1.Capability" - }, - "description": "droped capabilities" - } - } - }, - "v1beta1.Capability": { - "id": "v1beta1.Capability", - "properties": {} - }, - "v1beta1.ComponentCondition": { - "id": "v1beta1.ComponentCondition", - "required": [ - "type", - "status" - ], - "properties": { - "error": { - "type": "string", - "description": "error code from health check attempt (if any)" - }, - "message": { - "type": "string", - "description": "health check message received from the component" - }, - "status": { - "type": "string", - "description": "current status of this component condition, one of Full, None, Unknown" - }, - "type": { - "type": "string", - "description": "type of component condition, currently only Healthy" - } - } - }, - "v1beta1.ComponentStatus": { - "id": "v1beta1.ComponentStatus", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.ComponentCondition" - }, - "description": "list of component conditions observed" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "name": { - "type": "string", - "description": "name of the component" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ComponentStatusList": { - "id": "v1beta1.ComponentStatusList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ComponentStatus" - }, - "description": "list of component status objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.Container": { - "id": "v1beta1.Container", - "required": [ - "name", - "image", - "imagePullPolicy" - ], - "properties": { - "capabilities": { - "$ref": "v1beta1.Capabilities", - "description": "capabilities for container; cannot be updated; deprecated; See SecurityContext" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "command argv array; not executed within a shell; the image's cmd is used if this is not provided; cannot be updated" - }, - "cpu": { - "type": "integer", - "format": "int32", - "description": "CPU share in thousandths of a core; cannot be updated" - }, - "entrypoint": { - "type": "array", - "items": { - "type": "string" - }, - "description": "entrypoint array; not executed within a shell; the image's entrypoint is used if this is not provided; cannot be updated" - }, - "env": { - "type": "array", - "items": { - "$ref": "v1beta1.EnvVar" - }, - "description": "list of environment variables to set in the container; cannot be updated" - }, - "image": { - "type": "string", - "description": "Docker image name" - }, - "imagePullPolicy": { - "type": "string", - "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" - }, - "lifecycle": { - "$ref": "v1beta1.Lifecycle", - "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" - }, - "livenessProbe": { - "$ref": "v1beta1.LivenessProbe", - "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" - }, - "memory": { - "type": "integer", - "format": "int64", - "description": "memory limit in bytes; defaults to unlimited; cannot be updated" - }, - "name": { - "type": "string", - "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1beta1.ContainerPort" - }, - "description": "list of ports to expose from the container; cannot be updated" - }, - "privileged": { - "type": "boolean", - "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext" - }, - "readinessProbe": { - "$ref": "v1beta1.LivenessProbe", - "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" - }, - "resources": { - "$ref": "v1beta1.ResourceRequirements", - "description": "Compute Resources required by this container; cannot be updated" - }, - "securityContext": { - "$ref": "v1beta1.SecurityContext", - "description": "security options the pod should run with" - }, - "terminationMessagePath": { - "type": "string", - "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1beta1.VolumeMount" - }, - "description": "pod volumes to mount into the container's filesystem; cannot be updated" - }, - "workingDir": { - "type": "string", - "description": "container's working directory; defaults to image's default; cannot be updated" - } - } - }, - "v1beta1.ContainerManifest": { - "id": "v1beta1.ContainerManifest", - "required": [ - "version", - "id", - "volumes", - "containers" - ], - "properties": { - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1beta1.Container" - }, - "description": "list of containers belonging to the pod; containers cannot currently be added or removed" - }, - "dnsPolicy": { - "type": "string", - "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" - }, - "hostNetwork": { - "type": "boolean", - "description": "host networking requested for this pod" - }, - "id": { - "type": "string", - "description": "manifest name; must be a DNS_SUBDOMAIN; cannot be updated" - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1beta1.LocalObjectReference" - }, - "description": "list of references to secrets in the same namespace available for pulling the container images" - }, - "restartPolicy": { - "$ref": "v1beta1.RestartPolicy", - "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process" - }, - "uuid": { - "type": "string", - "description": "manifest UUID, populated by the system, read-only" - }, - "version": { - "type": "string", - "description": "manifest version; must be v1beta1" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "v1beta1.Volume" - }, - "description": "list of volumes that can be mounted by containers belonging to the pod" - } - } - }, - "v1beta1.ContainerPort": { - "id": "v1beta1.ContainerPort", - "required": [ - "containerPort" - ], - "properties": { - "containerPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the pod's IP address" - }, - "hostIP": { - "type": "string", - "description": "host IP to bind the port to" - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the host; most containers do not need this" - }, - "name": { - "type": "string", - "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" - }, - "protocol": { - "type": "string", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" - } - } - }, - "v1beta1.DeleteOptions": { - "id": "v1beta1.DeleteOptions", - "required": [ - "gracePeriodSeconds" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.EmptyDirVolumeSource": { - "id": "v1beta1.EmptyDirVolumeSource", - "required": [ - "medium" - ], - "properties": { - "medium": { - "type": "string", - "description": "type of storage used to back the volume; must be an empty string (default) or Memory" - } - } - }, - "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": [ - "endpoint", - "targetRef" - ], - "properties": { - "endpoint": { - "type": "string", - "description": "endpoint exposed by the referenced object" - }, - "targetRef": { - "$ref": "v1beta1.ObjectReference", - "description": "reference to the object providing the entry point" - } - } - }, - "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": { - "type": "string", - "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", - "subsets" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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": { - "type": "string" - }, - "description": "first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "protocol": { - "type": "string", - "description": "IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "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": { - "$ref": "v1beta1.EndpointObjectReference" - }, - "description": "list of references to objects providing the endpoints" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.EndpointsList": { - "id": "v1beta1.EndpointsList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Endpoints" - }, - "description": "list of service endpoint lists" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.EnvVar": { - "id": "v1beta1.EnvVar", - "required": [ - "name" - ], - "properties": { - "key": { - "type": "string", - "description": "name of the environment variable; must be a C_IDENTIFIER; deprecated - use name instead" - }, - "name": { - "type": "string", - "description": "name of the environment variable; must be a C_IDENTIFIER" - }, - "value": { - "type": "string", - "description": "value of the environment variable; defaults to empty string" - }, - "valueFrom": { - "$ref": "v1beta1.EnvVarSource", - "description": "source for the environment variable's value; cannot be used if value is not empty" - } - } - }, - "v1beta1.EnvVarSource": { - "id": "v1beta1.EnvVarSource", - "required": [ - "fieldRef" - ], - "properties": { - "fieldRef": { - "$ref": "v1beta1.ObjectFieldSelector", - "description": "selects a field of the pod; only name and namespace are supported" - } - } - }, - "v1beta1.Event": { - "id": "v1beta1.Event", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "count": { - "type": "integer", - "format": "int32", - "description": "the number of times this event has occurred" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "firstTimestamp": { - "type": "string", - "description": "the time at which the event was first recorded" - }, - "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" - }, - "host": { - "type": "string", - "description": "host name on which this event was generated" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "involvedObject": { - "$ref": "v1beta1.ObjectReference", - "description": "object that this event is about" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "lastTimestamp": { - "type": "string", - "description": "the time at which the most recent occurance of this event was recorded" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "reason": { - "type": "string", - "description": "short, machine understandable string that gives the reason for the transition into the object's current status" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "source": { - "type": "string", - "description": "component reporting this event; short machine understandable string" - }, - "status": { - "type": "string", - "description": "short, machine understandable string that describes the current status of the referred object" - }, - "timestamp": { - "type": "string", - "description": "time at which the client recorded the event" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.EventList": { - "id": "v1beta1.EventList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Event" - }, - "description": "list of events" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ExecAction": { - "id": "v1beta1.ExecAction", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" - } - } - }, - "v1beta1.FinalizerName": { - "id": "v1beta1.FinalizerName", - "properties": {} - }, - "v1beta1.GCEPersistentDiskVolumeSource": { - "id": "v1beta1.GCEPersistentDiskVolumeSource", - "required": [ - "pdName" - ], - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" - }, - "pdName": { - "type": "string", - "description": "unique name of the PD resource in GCE" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - } - } - }, - "v1beta1.GitRepoVolumeSource": { - "id": "v1beta1.GitRepoVolumeSource", - "required": [ - "repository", - "revision" - ], - "properties": { - "repository": { - "type": "string", - "description": "repository URL" - }, - "revision": { - "type": "string", - "description": "commit hash for the specified revision" - } - } - }, - "v1beta1.GlusterfsVolumeSource": { - "id": "v1beta1.GlusterfsVolumeSource", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "gluster hosts endpoints name" - }, - "path": { - "type": "string", - "description": "path to gluster volume" - }, - "readOnly": { - "type": "boolean", - "description": "Glusterfs volume to be mounted with read-only permissions" - } - } - }, - "v1beta1.HTTPGetAction": { - "id": "v1beta1.HTTPGetAction", - "properties": { - "host": { - "type": "string", - "description": "hostname to connect to; defaults to pod IP" - }, - "path": { - "type": "string", - "description": "path to access on the HTTP server" - }, - "port": { - "type": "string", - "description": "number or name of the port to access on the container" - } - } - }, - "v1beta1.Handler": { - "id": "v1beta1.Handler", - "properties": { - "exec": { - "$ref": "v1beta1.ExecAction", - "description": "exec-based handler" - }, - "httpGet": { - "$ref": "v1beta1.HTTPGetAction", - "description": "HTTP-based handler" - }, - "tcpSocket": { - "$ref": "v1beta1.TCPSocketAction", - "description": "TCP-based handler; TCP hooks not yet supported" - } - } - }, - "v1beta1.HostPathVolumeSource": { - "id": "v1beta1.HostPathVolumeSource", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "path of the directory on the host" - } - } - }, - "v1beta1.ISCSIVolumeSource": { - "id": "v1beta1.ISCSIVolumeSource", - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "iqn": { - "type": "string", - "description": "iSCSI Qualified Name" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iscsi target lun number" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - }, - "targetPortal": { - "type": "string", - "description": "iSCSI target portal" - } - } - }, - "v1beta1.Lifecycle": { - "id": "v1beta1.Lifecycle", - "properties": { - "postStart": { - "$ref": "v1beta1.Handler", - "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" - }, - "preStop": { - "$ref": "v1beta1.Handler", - "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" - } - } - }, - "v1beta1.LimitRange": { - "id": "v1beta1.LimitRange", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta1.LimitRangeSpec", - "description": "spec defines the limits enforced" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.LimitRangeItem": { - "id": "v1beta1.LimitRangeItem", - "properties": { - "default": { - "type": "any", - "description": "default values on this kind by resource name if omitted" - }, - "max": { - "type": "any", - "description": "max usage constraints on this kind by resource name" - }, - "min": { - "type": "any", - "description": "min usage constraints on this kind by resource name" - }, - "type": { - "type": "string", - "description": "type of resource that this limit applies to" - } - } - }, - "v1beta1.LimitRangeList": { - "id": "v1beta1.LimitRangeList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.LimitRange" - }, - "description": "items is a list of LimitRange objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.LimitRangeSpec": { - "id": "v1beta1.LimitRangeSpec", - "required": [ - "limits" - ], - "properties": { - "limits": { - "type": "array", - "items": { - "$ref": "v1beta1.LimitRangeItem" - }, - "description": "limits is the list of LimitRangeItem objects that are enforced" - } - } - }, - "v1beta1.LivenessProbe": { - "id": "v1beta1.LivenessProbe", - "properties": { - "exec": { - "$ref": "v1beta1.ExecAction", - "description": "parameters for exec-based liveness probe" - }, - "httpGet": { - "$ref": "v1beta1.HTTPGetAction", - "description": "parameters for HTTP-based liveness probe" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after the container has started before liveness probes are initiated" - }, - "tcpSocket": { - "$ref": "v1beta1.TCPSocketAction", - "description": "parameters for TCP-based liveness probe" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after which liveness probes timeout; defaults to 1 second" - } - } - }, - "v1beta1.LocalObjectReference": { - "id": "v1beta1.LocalObjectReference", - "properties": { - "name": { - "type": "string", - "description": "name of the referent" - } - } - }, - "v1beta1.Minion": { - "id": "v1beta1.Minion", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "externalID": { - "type": "string", - "description": "external id of the node assigned by some machine database (e.g. a cloud provider). Defaults to node name when empty." - }, - "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" - }, - "hostIP": { - "type": "string", - "description": "IP address of the node" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "podCIDR": { - "type": "string", - "description": "IP range assigned to the node" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "resources": { - "$ref": "v1beta1.NodeResources", - "description": "characterization of node resources" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "status": { - "$ref": "v1beta1.NodeStatus", - "description": "current status of node" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - }, - "unschedulable": { - "type": "boolean", - "description": "disable pod scheduling on the node" - } - } - }, - "v1beta1.MinionList": { - "id": "v1beta1.MinionList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Minion" - }, - "description": "list of nodes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "minions": { - "type": "array", - "items": { - "$ref": "v1beta1.Minion" - }, - "description": "list of nodes; deprecated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.NFSVolumeSource": { - "id": "v1beta1.NFSVolumeSource", - "required": [ - "server", - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "the path that is exported by the NFS server" - }, - "readOnly": { - "type": "boolean", - "description": "forces the NFS export to be mounted with read-only permissions" - }, - "server": { - "type": "string", - "description": "the hostname or IP address of the NFS server" - } - } - }, - "v1beta1.Namespace": { - "id": "v1beta1.Namespace", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize namespaces" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta1.NamespaceSpec", - "description": "spec defines the behavior of the Namespace" - }, - "status": { - "$ref": "v1beta1.NamespaceStatus", - "description": "status describes the current status of a Namespace; read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.NamespaceList": { - "id": "v1beta1.NamespaceList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Namespace" - }, - "description": "items is the list of Namespace objects in the list" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.NamespaceSpec": { - "id": "v1beta1.NamespaceSpec", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1beta1.FinalizerName" - }, - "description": "an opaque list of values that must be empty to permanently remove object from storage" - } - } - }, - "v1beta1.NamespaceStatus": { - "id": "v1beta1.NamespaceStatus", - "properties": { - "phase": { - "type": "string", - "description": "phase is the current lifecycle phase of the namespace" - } - } - }, - "v1beta1.NodeAddress": { - "id": "v1beta1.NodeAddress", - "required": [ - "type", - "address" - ], - "properties": { - "address": { - "type": "string", - "description": "string representation of the address" - }, - "type": { - "type": "string", - "description": "type of the node address, e.g. external ip, internal ip, hostname, etc" - } - } - }, - "v1beta1.NodeCondition": { - "id": "v1beta1.NodeCondition", - "required": [ - "kind", - "status" - ], - "properties": { - "kind": { - "type": "string", - "description": "kind of the condition, current kinds: Reachable, Ready, Schedulable" - }, - "lastProbeTime": { - "type": "string", - "description": "last time the condition was probed" - }, - "lastTransitionTime": { - "type": "string", - "description": "last time the condition transit from one status to another" - }, - "message": { - "type": "string", - "description": "human readable message indicating details about last transition" - }, - "reason": { - "type": "string", - "description": "(brief) reason for the condition's last transition" - }, - "status": { - "type": "string", - "description": "status of the condition, one of Full, None, Unknown" - } - } - }, - "v1beta1.NodeResources": { - "id": "v1beta1.NodeResources", - "properties": { - "capacity": { - "type": "any", - "description": "resource capacity of a node represented as a map of resource name to quantity of resource" - } - } - }, - "v1beta1.NodeStatus": { - "id": "v1beta1.NodeStatus", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1beta1.NodeAddress" - }, - "description": "list of addresses reachable to the node" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.NodeCondition" - }, - "description": "conditions is an array of current node conditions" - }, - "nodeInfo": { - "$ref": "v1beta1.NodeSystemInfo", - "description": "node identity is a set of ids/uuids to uniquely identify the node" - }, - "phase": { - "type": "string", - "description": "node phase is the current lifecycle phase of the node" - } - } - }, - "v1beta1.NodeSystemInfo": { - "id": "v1beta1.NodeSystemInfo", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion" - ], - "properties": { - "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)" - }, - "kubeProxyVersion": { - "type": "string", - "description": "Kube-proxy version reported by the node" - }, - "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" - } - } - }, - "v1beta1.ObjectFieldSelector": { - "id": "v1beta1.ObjectFieldSelector", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema that fieldPath is written in terms of; defaults to v1beta1" - }, - "fieldPath": { - "type": "string", - "description": "path of the field to select in the specified API version" - } - } - }, - "v1beta1.ObjectReference": { - "id": "v1beta1.ObjectReference", - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent" - }, - "fieldPath": { - "type": "string", - "description": "if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]" - }, - "kind": { - "type": "string", - "description": "kind of the referent" - }, - "name": { - "type": "string", - "description": "id of the referent" - }, - "namespace": { - "type": "string", - "description": "namespace of the referent" - }, - "resourceVersion": { - "type": "string", - "description": "specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "uid": { - "type": "string", - "description": "uid of the referent" - } - } - }, - "v1beta1.PersistentVolume": { - "id": "v1beta1.PersistentVolume", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta1.PersistentVolumeSpec", - "description": "specification of a persistent volume as provisioned by an administrator" - }, - "status": { - "$ref": "v1beta1.PersistentVolumeStatus", - "description": "current status of a persistent volume; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PersistentVolumeAccessMode": { - "id": "v1beta1.PersistentVolumeAccessMode", - "properties": {} - }, - "v1beta1.PersistentVolumeClaim": { - "id": "v1beta1.PersistentVolumeClaim", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta1.PersistentVolumeClaimSpec", - "description": "the desired characteristics of a volume" - }, - "status": { - "$ref": "v1beta1.PersistentVolumeClaimStatus", - "description": "the current status of a persistent volume claim; read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PersistentVolumeClaimList": { - "id": "v1beta1.PersistentVolumeClaimList", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.PersistentVolumeClaim" - }, - "description": "a list of persistent volume claims" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PersistentVolumeClaimSpec": { - "id": "v1beta1.PersistentVolumeClaimSpec", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta1.PersistentVolumeAccessMode" - }, - "description": "the desired access modes the volume should have" - }, - "resources": { - "$ref": "v1beta1.ResourceRequirements", - "description": "the desired resources the volume should have" - }, - "volumeName": { - "type": "string", - "description": "the binding reference to the persistent volume backing this claim" - } - } - }, - "v1beta1.PersistentVolumeClaimStatus": { - "id": "v1beta1.PersistentVolumeClaimStatus", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta1.PersistentVolumeAccessMode" - }, - "description": "the actual access modes the volume has" - }, - "capacity": { - "type": "any", - "description": "the actual resources the volume has" - }, - "phase": { - "type": "string", - "description": "the current phase of the claim" - } - } - }, - "v1beta1.PersistentVolumeClaimVolumeSource": { - "id": "v1beta1.PersistentVolumeClaimVolumeSource", - "properties": { - "claimName": { - "type": "string", - "description": "the name of the claim in the same namespace to be mounted as a volume" - }, - "readOnly": { - "type": "boolean", - "description": "mount volume as read-only when true; default false" - } - } - }, - "v1beta1.PersistentVolumeList": { - "id": "v1beta1.PersistentVolumeList", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.PersistentVolume" - }, - "description": "list of persistent volumes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PersistentVolumeSpec": { - "id": "v1beta1.PersistentVolumeSpec", - "required": [ - "hostPath", - "glusterfs", - "nfs", - "persistentDisk", - "awsElasticBlockStore" - ], - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta1.PersistentVolumeAccessMode" - }, - "description": "all ways the volume can be mounted" - }, - "awsElasticBlockStore": { - "$ref": "v1beta1.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource provisioned by an admin" - }, - "capacity": { - "type": "any", - "description": "a description of the persistent volume's resources and capacity" - }, - "claimRef": { - "$ref": "v1beta1.ObjectReference", - "description": "when bound, a reference to the bound claim" - }, - "glusterfs": { - "$ref": "v1beta1.GlusterfsVolumeSource", - "description": "Glusterfs volume resource provisioned by an admin" - }, - "hostPath": { - "$ref": "v1beta1.HostPathVolumeSource", - "description": "a HostPath provisioned by a developer or tester; for develment use only" - }, - "nfs": { - "$ref": "v1beta1.NFSVolumeSource", - "description": "NFS volume resource provisioned by an admin" - }, - "persistentDisk": { - "$ref": "v1beta1.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource provisioned by an admin" - } - } - }, - "v1beta1.PersistentVolumeStatus": { - "id": "v1beta1.PersistentVolumeStatus", - "properties": { - "phase": { - "type": "string", - "description": "the current phase of a persistent volume" - } - } - }, - "v1beta1.Pod": { - "id": "v1beta1.Pod", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "currentState": { - "$ref": "v1beta1.PodState", - "description": "current state of the pod; populated by the system, read-only" - }, - "deletionTimestamp": { - "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" - }, - "desiredState": { - "$ref": "v1beta1.PodState", - "description": "specification of the desired state of the pod" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "nodeSelector": { - "type": "any", - "description": "selector which must match a node's labels for the pod to be scheduled on that node" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "serviceAccount": { - "type": "string", - "description": "the name of the ServiceAccount to use to run this pod" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PodCondition": { - "id": "v1beta1.PodCondition", - "required": [ - "kind", - "status" - ], - "properties": { - "kind": { - "type": "string", - "description": "kind of the condition, currently only Ready" - }, - "status": { - "type": "string", - "description": "status of the condition, one of Full, None, Unknown" - } - } - }, - "v1beta1.PodList": { - "id": "v1beta1.PodList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Pod" - }, - "description": "list of pods" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.PodState": { - "id": "v1beta1.PodState", - "properties": { - "Condition": { - "type": "array", - "items": { - "$ref": "v1beta1.PodCondition" - }, - "description": "current service state of pod" - }, - "host": { - "type": "string", - "description": "host to which the pod is assigned; empty if not yet scheduled; cannot be updated" - }, - "hostIP": { - "type": "string", - "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" - }, - "info": { - "type": "any", - "description": "map of container name to container status" - }, - "manifest": { - "$ref": "v1beta1.ContainerManifest", - "description": "manifest of containers and volumes comprising the pod" - }, - "message": { - "type": "string", - "description": "human readable message indicating details about why the pod is in this condition" - }, - "podIP": { - "type": "string", - "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" - }, - "status": { - "type": "string", - "description": "current condition of the pod, Waiting, Running, or Terminated" - } - } - }, - "v1beta1.PodTemplate": { - "id": "v1beta1.PodTemplate", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template" - }, - "desiredState": { - "$ref": "v1beta1.PodState", - "description": "specification of the desired state of pods created from this template" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services" - }, - "nodeSelector": { - "type": "any", - "description": "a selector which must be true for the pod to fit on a node" - }, - "serviceAccount": { - "type": "string", - "description": "the name of the ServiceAccount to use to run this pod" - } - } - }, - "v1beta1.ReplicationController": { - "id": "v1beta1.ReplicationController", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "currentState": { - "$ref": "v1beta1.ReplicationControllerState", - "description": "current state of the replication controller; populated by the system, read-only" - }, - "deletionTimestamp": { - "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" - }, - "desiredState": { - "$ref": "v1beta1.ReplicationControllerState", - "description": "specification of the desired state of the replication controller" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize replication controllers" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ReplicationControllerList": { - "id": "v1beta1.ReplicationControllerList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicationController" - }, - "description": "list of replication controllers" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ReplicationControllerState": { - "id": "v1beta1.ReplicationControllerState", - "required": [ - "replicas" - ], - "properties": { - "podTemplate": { - "$ref": "v1beta1.PodTemplate", - "description": "template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas" - }, - "replicaSelector": { - "type": "any", - "description": "label keys and values that must match in order to be controlled by this replication controller" - }, - "replicas": { - "type": "integer", - "format": "int32", - "description": "number of replicas (desired or observed, as appropriate)" - } - } - }, - "v1beta1.ResourceQuota": { - "id": "v1beta1.ResourceQuota", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize resource quotas" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta1.ResourceQuotaSpec", - "description": "spec defines the desired quota" - }, - "status": { - "$ref": "v1beta1.ResourceQuotaStatus", - "description": "status defines the actual enforced quota and current usage" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ResourceQuotaList": { - "id": "v1beta1.ResourceQuotaList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ResourceQuota" - }, - "description": "items is a list of ResourceQuota objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ResourceQuotaSpec": { - "id": "v1beta1.ResourceQuotaSpec", - "properties": { - "hard": { - "type": "any", - "description": "hard is the set of desired hard limits for each named resource" - } - } - }, - "v1beta1.ResourceQuotaStatus": { - "id": "v1beta1.ResourceQuotaStatus", - "properties": { - "hard": { - "type": "any", - "description": "hard is the set of enforced hard limits for each named resource" - }, - "used": { - "type": "any", - "description": "used is the current observed total usage of the resource in the namespace" - } - } - }, - "v1beta1.ResourceRequirements": { - "id": "v1beta1.ResourceRequirements", - "properties": { - "limits": { - "type": "any", - "description": "Maximum amount of compute resources allowed" - }, - "requests": { - "type": "any", - "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now" - } - } - }, - "v1beta1.RestartPolicy": { - "id": "v1beta1.RestartPolicy", - "properties": { - "always": { - "$ref": "v1beta1.RestartPolicyAlways", - "description": "always restart the container after termination" - }, - "never": { - "$ref": "v1beta1.RestartPolicyNever", - "description": "never restart the container" - }, - "onFailure": { - "$ref": "v1beta1.RestartPolicyOnFailure", - "description": "restart the container if it fails for any reason, but not if it succeeds (exit 0)" - } - } - }, - "v1beta1.RestartPolicyAlways": { - "id": "v1beta1.RestartPolicyAlways", - "properties": {} - }, - "v1beta1.RestartPolicyNever": { - "id": "v1beta1.RestartPolicyNever", - "properties": {} - }, - "v1beta1.RestartPolicyOnFailure": { - "id": "v1beta1.RestartPolicyOnFailure", - "properties": {} - }, - "v1beta1.SELinuxOptions": { - "id": "v1beta1.SELinuxOptions", - "properties": { - "level": { - "type": "string", - "description": "the level label to apply to the container" - }, - "role": { - "type": "string", - "description": "the role label to apply to the container" - }, - "type": { - "type": "string", - "description": "the type label to apply to the container" - }, - "user": { - "type": "string", - "description": "the user label to apply to the container" - } - } - }, - "v1beta1.Secret": { - "id": "v1beta1.Secret", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "data": { - "type": "any", - "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "type": { - "type": "string", - "description": "type facilitates programmatic handling of secret data" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.SecretList": { - "id": "v1beta1.SecretList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Secret" - }, - "description": "items is a list of secret objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.SecretVolumeSource": { - "id": "v1beta1.SecretVolumeSource", - "required": [ - "target" - ], - "properties": { - "target": { - "$ref": "v1beta1.ObjectReference", - "description": "target is a reference to a secret" - } - } - }, - "v1beta1.SecurityContext": { - "id": "v1beta1.SecurityContext", - "properties": { - "capabilities": { - "$ref": "v1beta1.Capabilities", - "description": "the linux capabilites that should be added or removed" - }, - "privileged": { - "type": "boolean", - "description": "run the container in privileged mode" - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "the user id that runs the first process in the container" - }, - "seLinuxOptions": { - "$ref": "v1beta1.SELinuxOptions", - "description": "options that control the SELinux labels applied" - } - } - }, - "v1beta1.Service": { - "id": "v1beta1.Service", - "required": [ - "port", - "selector", - "ports" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "containerPort": { - "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" - }, - "createExternalLoadBalancer": { - "type": "boolean", - "description": "set up a cloud-provider-specific load balancer on an external IP" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize services" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "port": { - "type": "integer", - "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; 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" - }, - "protocol": { - "type": "string", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" - }, - "proxyPort": { - "type": "integer", - "format": "int32", - "description": "if non-zero, a pre-allocated host port used for this service by the proxy on each node; assigned by the master and ignored on input" - }, - "publicIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selector": { - "type": "any", - "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "sessionAffinity": { - "type": "string", - "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ServiceAccount": { - "id": "v1beta1.ServiceAccount", - "required": [ - "secrets" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "v1beta1.ObjectReference" - }, - "description": "list of secrets that can be used by pods running as this service account" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ServiceAccountList": { - "id": "v1beta1.ServiceAccountList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ServiceAccount" - }, - "description": "list of ServiceAccounts" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.ServiceList": { - "id": "v1beta1.ServiceList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Service" - }, - "description": "list of services" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "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": { - "type": "string", - "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" - } - } - }, - "v1beta1.Status": { - "id": "v1beta1.Status", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "code": { - "type": "integer", - "format": "int32", - "description": "suggested HTTP return code for this status; 0 if not set" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "details": { - "$ref": "v1beta1.StatusDetails", - "description": "extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "reason": { - "type": "string", - "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "status": { - "type": "string", - "description": "status of the operation; either Success, or Failure" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" - } - } - }, - "v1beta1.StatusCause": { - "id": "v1beta1.StatusCause", - "properties": { - "field": { - "type": "string", - "description": "field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors" - }, - "message": { - "type": "string", - "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader" - }, - "reason": { - "type": "string", - "description": "machine-readable description of the cause of the error; if this value is empty there is no information available" - } - } - }, - "v1beta1.StatusDetails": { - "id": "v1beta1.StatusDetails", - "properties": { - "causes": { - "type": "array", - "items": { - "$ref": "v1beta1.StatusCause" - }, - "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes" - }, - "id": { - "type": "string", - "description": "the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)" - }, - "kind": { - "type": "string", - "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind" - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "the number of seconds before the client should attempt to retry this operation" - } - } - }, - "v1beta1.TCPSocketAction": { - "id": "v1beta1.TCPSocketAction", - "properties": { - "port": { - "type": "string", - "description": "number of name of the port to access on the container" - } - } - }, - "v1beta1.Volume": { - "id": "v1beta1.Volume", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "volume name; must be a DNS_LABEL and unique within the pod" - }, - "source": { - "$ref": "v1beta1.VolumeSource", - "description": "location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, AWSElasticBlockStore, or GitRepo; default is EmptyDir" - } - } - }, - "v1beta1.VolumeMount": { - "id": "v1beta1.VolumeMount", - "required": [ - "name", - "mountPath" - ], - "properties": { - "mountPath": { - "type": "string", - "description": "path within the container at which the volume should be mounted; overrides path" - }, - "mountType": { - "type": "string", - "description": "LOCAL or HOST; defaults to LOCAL; deprecated" - }, - "name": { - "type": "string", - "description": "name of the volume to mount" - }, - "path": { - "type": "string", - "description": "path within the container at which the volume should be mounted; deprecated" - }, - "readOnly": { - "type": "boolean", - "description": "mounted read-only if true, read-write otherwise (false or unspecified)" - } - } - }, - "v1beta1.VolumeSource": { - "id": "v1beta1.VolumeSource", - "required": [ - "hostDir", - "emptyDir", - "persistentDisk", - "awsElasticBlockStore", - "gitRepo", - "secret", - "nfs", - "iscsi", - "glusterfs" - ], - "properties": { - "awsElasticBlockStore": { - "$ref": "v1beta1.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource attached to the host machine on demand" - }, - "emptyDir": { - "$ref": "v1beta1.EmptyDirVolumeSource", - "description": "temporary directory that shares a pod's lifetime" - }, - "gitRepo": { - "$ref": "v1beta1.GitRepoVolumeSource", - "description": "git repository at a particular revision" - }, - "glusterfs": { - "$ref": "v1beta1.GlusterfsVolumeSource", - "description": "Glusterfs volume that will be mounted on the host machine " - }, - "hostDir": { - "$ref": "v1beta1.HostPathVolumeSource", - "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" - }, - "iscsi": { - "$ref": "v1beta1.ISCSIVolumeSource", - "description": "iSCSI disk attached to host machine on demand" - }, - "nfs": { - "$ref": "v1beta1.NFSVolumeSource", - "description": "NFS volume that will be mounted in the host machine " - }, - "persistentDisk": { - "$ref": "v1beta1.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource attached to the host machine on demand" - }, - "persistentVolumeClaim": { - "$ref": "v1beta1.PersistentVolumeClaimVolumeSource", - "description": "a reference to a PersistentVolumeClaim in the same namespace" - }, - "secret": { - "$ref": "v1beta1.SecretVolumeSource", - "description": "secret to populate volume with" - } - } - } - } - } \ No newline at end of file diff --git a/api/swagger-spec/v1beta2.json b/api/swagger-spec/v1beta2.json deleted file mode 100644 index 55703caa680..00000000000 --- a/api/swagger-spec/v1beta2.json +++ /dev/null @@ -1,11457 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "v1beta2", - "basePath": "https://127.0.0.1:6443", - "resourcePath": "/api/v1beta2", - "apis": [ - { - "path": "/api/v1beta2/bindings", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Binding" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/componentStatuses", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ComponentStatusList", - "method": "GET", - "summary": "list objects of kind ComponentStatus", - "nickname": "listComponentStatus", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ComponentStatusList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/componentStatuses/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ComponentStatus", - "method": "GET", - "summary": "read the specified ComponentStatus", - "nickname": "readComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ComponentStatus", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ComponentStatus" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/endpoints", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.EndpointsList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.EndpointsList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Endpoints", - "method": "POST", - "summary": "create a Endpoints", - "nickname": "createEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/endpoints", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/endpoints/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Endpoints", - "method": "GET", - "summary": "read the specified Endpoints", - "nickname": "readEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Endpoints", - "method": "PUT", - "summary": "replace the specified Endpoints", - "nickname": "replaceEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Endpoints" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Endpoints", - "method": "PATCH", - "summary": "partially update the specified Endpoints", - "nickname": "patchEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Endpoints", - "nickname": "deleteEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/endpoints/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Endpoints", - "nickname": "watchEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/events", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.EventList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.EventList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Event", - "method": "POST", - "summary": "create a Event", - "nickname": "createEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/events", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/events/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Event", - "method": "GET", - "summary": "read the specified Event", - "nickname": "readEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Event", - "method": "PUT", - "summary": "replace the specified Event", - "nickname": "replaceEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Event" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Event", - "method": "PATCH", - "summary": "partially update the specified Event", - "nickname": "patchEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Event", - "nickname": "deleteEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/events/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Event", - "nickname": "watchEvent", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/limitRanges", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.LimitRangeList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.LimitRangeList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.LimitRange", - "method": "POST", - "summary": "create a LimitRange", - "nickname": "createLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/limitRanges", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/limitRanges/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.LimitRange", - "method": "GET", - "summary": "read the specified LimitRange", - "nickname": "readLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.LimitRange", - "method": "PUT", - "summary": "replace the specified LimitRange", - "nickname": "replaceLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.LimitRange" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.LimitRange", - "method": "PATCH", - "summary": "partially update the specified LimitRange", - "nickname": "patchLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a LimitRange", - "nickname": "deleteLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/limitRanges/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind LimitRange", - "nickname": "watchLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/minions", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.MinionList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.MinionList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/minions", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/minions/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Minion", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/minions/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/redirect/minions/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Node", - "nickname": "redirectNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/minions/{name}/{path:*}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/minions/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/minions/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/namespaces", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.NamespaceList", - "method": "GET", - "summary": "list or watch objects of kind Namespace", - "nickname": "listNamespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.NamespaceList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Namespace", - "method": "POST", - "summary": "create a Namespace", - "nickname": "createNamespace", - "parameters": [ - { - "type": "v1beta2.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/namespaces", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Namespace", - "nickname": "watchNamespacelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/namespaces/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Namespace", - "method": "GET", - "summary": "read the specified Namespace", - "nickname": "readNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Namespace", - "method": "PATCH", - "summary": "partially update the specified Namespace", - "nickname": "patchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Namespace", - "nickname": "deleteNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/namespaces/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Namespace", - "nickname": "watchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/namespaces/{name}/finalize", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/namespaces/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Namespace" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/nodes", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.MinionList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.MinionList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/nodes", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/nodes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Minion", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Minion", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/nodes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/redirect/nodes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Node", - "nickname": "redirectNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/nodes/{name}/{path:*}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/nodes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Node", - "nickname": "proxyTRACENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/nodes/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Minion", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.Minion", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Minion" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumeClaims", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listPersistentVolumeClaim", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "method": "POST", - "summary": "create a PersistentVolumeClaim", - "nickname": "createPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/persistentVolumeClaims", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaimlist", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumeClaims/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolumeClaim", - "method": "GET", - "summary": "read the specified PersistentVolumeClaim", - "nickname": "readPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replacePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update the specified PersistentVolumeClaim", - "nickname": "patchPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a PersistentVolumeClaim", - "nickname": "deletePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/persistentVolumeClaims/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumeClaims/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replacePersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumes", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolumeList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolume", - "nickname": "listPersistentVolume", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolumeList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolume", - "method": "POST", - "summary": "create a PersistentVolume", - "nickname": "createPersistentVolume", - "parameters": [ - { - "type": "v1beta2.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/persistentVolumes", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolume", - "nickname": "watchPersistentVolumelist", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolume", - "method": "GET", - "summary": "read the specified PersistentVolume", - "nickname": "readPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.PersistentVolume", - "method": "PATCH", - "summary": "partially update the specified PersistentVolume", - "nickname": "patchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a PersistentVolume", - "nickname": "deletePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/persistentVolumes/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolume", - "nickname": "watchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/persistentVolumes/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, - { - "type": "v1beta2.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PersistentVolume" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.PodList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.PodList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Pod", - "method": "POST", - "summary": "create a Pod", - "nickname": "createPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/pods", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replacePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Pod", - "method": "PATCH", - "summary": "partially update the specified Pod", - "nickname": "patchPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Pod", - "nickname": "deletePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/pods/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Pod", - "nickname": "watchPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/redirect/pods/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Pod", - "nickname": "redirectPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/pods/{name}/{path:*}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Pod", - "nickname": "proxyTRACEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/pods/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Pod", - "nickname": "proxyTRACEPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/binding", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createBinding", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Binding", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Binding" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/exec", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/log", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/portforward", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/proxy", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to Pod", - "nickname": "connectPOSTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to Pod", - "nickname": "connectPUTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to Pod", - "nickname": "connectDELETEPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to Pod", - "nickname": "connectHEADPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to Pod", - "nickname": "connectOPTIONSPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/proxy/{path:*}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to Pod", - "nickname": "connectGETPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to Pod", - "nickname": "connectPOSTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to Pod", - "nickname": "connectPUTPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to Pod", - "nickname": "connectDELETEPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to Pod", - "nickname": "connectHEADPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to Pod", - "nickname": "connectOPTIONSPod", - "parameters": [], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/pods/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replacePod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Pod" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/replicationControllers", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ReplicationControllerList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ReplicationControllerList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ReplicationController", - "method": "POST", - "summary": "create a ReplicationController", - "nickname": "createReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/replicationControllers", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/replicationControllers/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ReplicationController", - "method": "GET", - "summary": "read the specified ReplicationController", - "nickname": "readReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ReplicationController", - "method": "PUT", - "summary": "replace the specified ReplicationController", - "nickname": "replaceReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ReplicationController" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ReplicationController", - "method": "PATCH", - "summary": "partially update the specified ReplicationController", - "nickname": "patchReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a ReplicationController", - "nickname": "deleteReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/replicationControllers/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicationController", - "nickname": "watchReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/resourceQuotas", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ResourceQuotaList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ResourceQuotaList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ResourceQuota", - "method": "POST", - "summary": "create a ResourceQuota", - "nickname": "createResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/resourceQuotas", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/resourceQuotas/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ResourceQuota", - "method": "GET", - "summary": "read the specified ResourceQuota", - "nickname": "readResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ResourceQuota", - "method": "PATCH", - "summary": "partially update the specified ResourceQuota", - "nickname": "patchResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a ResourceQuota", - "nickname": "deleteResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/resourceQuotas/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ResourceQuota", - "nickname": "watchResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/resourceQuotas/{name}/status", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ResourceQuota" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/secrets", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.SecretList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.SecretList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/secrets", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/secrets/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Secret", - "method": "GET", - "summary": "read the specified Secret", - "nickname": "readSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Secret", - "method": "PUT", - "summary": "replace the specified Secret", - "nickname": "replaceSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Secret" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Secret", - "method": "PATCH", - "summary": "partially update the specified Secret", - "nickname": "patchSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Secret", - "nickname": "deleteSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/secrets/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Secret", - "nickname": "watchSecret", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/serviceAccounts", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listServiceAccount", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ServiceAccountList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ServiceAccount", - "method": "POST", - "summary": "create a ServiceAccount", - "nickname": "createServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/serviceAccounts", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchServiceAccountlist", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/serviceAccounts/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ServiceAccount", - "method": "GET", - "summary": "read the specified ServiceAccount", - "nickname": "readServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ServiceAccount", - "method": "PUT", - "summary": "replace the specified ServiceAccount", - "nickname": "replaceServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ServiceAccount" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.ServiceAccount", - "method": "PATCH", - "summary": "partially update the specified ServiceAccount", - "nickname": "patchServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a ServiceAccount", - "nickname": "deleteServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/serviceAccounts/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ServiceAccount", - "nickname": "watchServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/services", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.ServiceList", - "method": "GET", - "summary": "list or watch 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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.ServiceList" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/services", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "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", - "name": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/services/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "v1beta2.Service", - "method": "GET", - "summary": "read the specified Service", - "nickname": "readService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Service", - "method": "PUT", - "summary": "replace the specified Service", - "nickname": "replaceService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Service" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta2.Service", - "method": "PATCH", - "summary": "partially update the specified Service", - "nickname": "patchService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1beta2.Status", - "method": "DELETE", - "summary": "delete a Service", - "nickname": "deleteService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.Status" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/watch/services/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "json.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Service", - "nickname": "watchService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "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": "namespace", - "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": "boolean", - "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 - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "json.WatchEvent" - } - ], - "produces": [ - "application/json" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/redirect/services/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "redirect GET request to Service", - "nickname": "redirectService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/services/{name}/{path:*}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Service", - "nickname": "proxyTRACEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path:*", - "description": "path to the resource", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1beta2/proxy/services/{name}", - "description": "API at /api/v1beta2 version v1beta2", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "TRACE", - "summary": "proxy TRACE requests to Service", - "nickname": "proxyTRACEService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": false, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - } - ], - "models": { - "json.WatchEvent": { - "id": "json.WatchEvent", - "properties": { - "object": { - "type": "string", - "description": "the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR" - }, - "type": { - "type": "string", - "description": "the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR" - } - } - }, - "v1beta2.AWSElasticBlockStoreVolumeSource": { - "id": "v1beta2.AWSElasticBlockStoreVolumeSource", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - }, - "volumeID": { - "type": "string", - "description": "unique id of the PD resource in AWS" - } - } - }, - "v1beta2.Binding": { - "id": "v1beta2.Binding", - "required": [ - "podID", - "host" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "host": { - "type": "string", - "description": "host to which to bind the specified pod" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "podID": { - "type": "string", - "description": "name of the pod to bind" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.Capabilities": { - "id": "v1beta2.Capabilities", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1beta2.Capability" - }, - "description": "added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1beta2.Capability" - }, - "description": "droped capabilities" - } - } - }, - "v1beta2.Capability": { - "id": "v1beta2.Capability", - "properties": {} - }, - "v1beta2.ComponentCondition": { - "id": "v1beta2.ComponentCondition", - "required": [ - "type", - "status" - ], - "properties": { - "error": { - "type": "string", - "description": "error code from health check attempt (if any)" - }, - "message": { - "type": "string", - "description": "health check message received from the component" - }, - "status": { - "type": "string", - "description": "current status of this component condition, one of Full, None, Unknown" - }, - "type": { - "type": "string", - "description": "type of component condition, currently only Healthy" - } - } - }, - "v1beta2.ComponentStatus": { - "id": "v1beta2.ComponentStatus", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta2.ComponentCondition" - }, - "description": "list of component conditions observed" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "name": { - "type": "string", - "description": "name of the component" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ComponentStatusList": { - "id": "v1beta2.ComponentStatusList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.ComponentStatus" - }, - "description": "list of component status objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.Container": { - "id": "v1beta2.Container", - "required": [ - "name", - "image", - "imagePullPolicy" - ], - "properties": { - "capabilities": { - "$ref": "v1beta2.Capabilities", - "description": "capabilities for container; cannot be updated; deprecated; See SecurityContext" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "command argv array; not executed within a shell; the image's cmd is used if this is not provided; cannot be updated" - }, - "cpu": { - "type": "integer", - "format": "int32", - "description": "CPU share in thousandths of a core; cannot be updated" - }, - "entrypoint": { - "type": "array", - "items": { - "type": "string" - }, - "description": "entrypoint array; not executed within a shell; the image's entrypoint is used if this is not provided; cannot be updated" - }, - "env": { - "type": "array", - "items": { - "$ref": "v1beta2.EnvVar" - }, - "description": "list of environment variables to set in the container; cannot be updated" - }, - "image": { - "type": "string", - "description": "Docker image name" - }, - "imagePullPolicy": { - "type": "string", - "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" - }, - "lifecycle": { - "$ref": "v1beta2.Lifecycle", - "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" - }, - "livenessProbe": { - "$ref": "v1beta2.LivenessProbe", - "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" - }, - "memory": { - "type": "integer", - "format": "int64", - "description": "memory limit in bytes; defaults to unlimited; cannot be updated" - }, - "name": { - "type": "string", - "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1beta2.ContainerPort" - }, - "description": "list of ports to expose from the container; cannot be updated" - }, - "privileged": { - "type": "boolean", - "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext" - }, - "readinessProbe": { - "$ref": "v1beta2.LivenessProbe", - "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" - }, - "resources": { - "$ref": "v1beta2.ResourceRequirements", - "description": "Compute Resources required by this container; cannot be updated" - }, - "securityContext": { - "$ref": "v1beta2.SecurityContext", - "description": "security options the pod should run with" - }, - "terminationMessagePath": { - "type": "string", - "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1beta2.VolumeMount" - }, - "description": "pod volumes to mount into the container's filesystem; cannot be updated" - }, - "workingDir": { - "type": "string", - "description": "container's working directory; defaults to image's default; cannot be updated" - } - } - }, - "v1beta2.ContainerManifest": { - "id": "v1beta2.ContainerManifest", - "required": [ - "version", - "id", - "volumes", - "containers" - ], - "properties": { - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1beta2.Container" - }, - "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed" - }, - "dnsPolicy": { - "type": "string", - "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" - }, - "hostNetwork": { - "type": "boolean", - "description": "host networking requested for this pod" - }, - "id": { - "type": "string", - "description": "manifest name; must be a DNS_SUBDOMAIN; cannot be updated" - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1beta2.LocalObjectReference" - }, - "description": "list of references to secrets in the same namespace available for pulling the container images" - }, - "restartPolicy": { - "$ref": "v1beta2.RestartPolicy", - "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process" - }, - "uuid": { - "type": "string", - "description": "manifest UUID; cannot be updated" - }, - "version": { - "type": "string", - "description": "manifest version; must be v1beta1" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "v1beta2.Volume" - }, - "description": "list of volumes that can be mounted by containers belonging to the pod" - } - } - }, - "v1beta2.ContainerPort": { - "id": "v1beta2.ContainerPort", - "required": [ - "containerPort" - ], - "properties": { - "containerPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the pod's IP address" - }, - "hostIP": { - "type": "string", - "description": "host IP to bind the port to" - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the host; most containers do not need this" - }, - "name": { - "type": "string", - "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" - }, - "protocol": { - "type": "string", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" - } - } - }, - "v1beta2.DeleteOptions": { - "id": "v1beta2.DeleteOptions", - "required": [ - "gracePeriodSeconds" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.EmptyDirVolumeSource": { - "id": "v1beta2.EmptyDirVolumeSource", - "required": [ - "medium" - ], - "properties": { - "medium": { - "type": "string", - "description": "type of storage used to back the volume; must be an empty string (default) or Memory" - } - } - }, - "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": [ - "endpoint", - "targetRef" - ], - "properties": { - "endpoint": { - "type": "string", - "description": "endpoint exposed by the referenced object" - }, - "targetRef": { - "$ref": "v1beta2.ObjectReference", - "description": "reference to the object providing the entry point" - } - } - }, - "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": { - "type": "string", - "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", - "subsets" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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": { - "type": "string" - }, - "description": "first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "protocol": { - "type": "string", - "description": "IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "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": { - "$ref": "v1beta2.EndpointObjectReference" - }, - "description": "list of references to objects providing the endpoints" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.EndpointsList": { - "id": "v1beta2.EndpointsList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Endpoints" - }, - "description": "list of service endpoint lists" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.EnvVar": { - "id": "v1beta2.EnvVar", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "name of the environment variable; must be a C_IDENTIFIER" - }, - "value": { - "type": "string", - "description": "value of the environment variable; defaults to empty string" - }, - "valueFrom": { - "$ref": "v1beta2.EnvVarSource", - "description": "source for the environment variable's value; cannot be used if value is not empty" - } - } - }, - "v1beta2.EnvVarSource": { - "id": "v1beta2.EnvVarSource", - "required": [ - "fieldRef" - ], - "properties": { - "fieldRef": { - "$ref": "v1beta2.ObjectFieldSelector", - "description": "selects a field of the pod; only name and namespace are supported" - } - } - }, - "v1beta2.Event": { - "id": "v1beta2.Event", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "count": { - "type": "integer", - "format": "int32", - "description": "the number of times this event has occurred" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "firstTimestamp": { - "type": "string", - "description": "the time at which the event was first recorded" - }, - "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" - }, - "host": { - "type": "string", - "description": "host name on which this event was generated" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "involvedObject": { - "$ref": "v1beta2.ObjectReference", - "description": "object that this event is about" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "lastTimestamp": { - "type": "string", - "description": "the time at which the most recent occurance of this event was recorded" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "reason": { - "type": "string", - "description": "short, machine understandable string that gives the reason for the transition into the object's current status" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "source": { - "type": "string", - "description": "component reporting this event; short machine understandable string" - }, - "status": { - "type": "string", - "description": "short, machine understandable string that describes the current status of the referred object" - }, - "timestamp": { - "type": "string", - "description": "time at which the client recorded the event" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.EventList": { - "id": "v1beta2.EventList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Event" - }, - "description": "list of events" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ExecAction": { - "id": "v1beta2.ExecAction", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" - } - } - }, - "v1beta2.FinalizerName": { - "id": "v1beta2.FinalizerName", - "properties": {} - }, - "v1beta2.GCEPersistentDiskVolumeSource": { - "id": "v1beta2.GCEPersistentDiskVolumeSource", - "required": [ - "pdName" - ], - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" - }, - "pdName": { - "type": "string", - "description": "unique name of the PD resource in GCE" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - } - } - }, - "v1beta2.GitRepoVolumeSource": { - "id": "v1beta2.GitRepoVolumeSource", - "required": [ - "repository", - "revision" - ], - "properties": { - "repository": { - "type": "string", - "description": "repository URL" - }, - "revision": { - "type": "string", - "description": "commit hash for the specified revision" - } - } - }, - "v1beta2.GlusterfsVolumeSource": { - "id": "v1beta2.GlusterfsVolumeSource", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "gluster hosts endpoints name" - }, - "path": { - "type": "string", - "description": "path to gluster volume" - }, - "readOnly": { - "type": "boolean", - "description": "glusterfs volume to be mounted with read-only permissions" - } - } - }, - "v1beta2.HTTPGetAction": { - "id": "v1beta2.HTTPGetAction", - "properties": { - "host": { - "type": "string", - "description": "hostname to connect to; defaults to pod IP" - }, - "path": { - "type": "string", - "description": "path to access on the HTTP server" - }, - "port": { - "type": "string", - "description": "number or name of the port to access on the container" - } - } - }, - "v1beta2.Handler": { - "id": "v1beta2.Handler", - "properties": { - "exec": { - "$ref": "v1beta2.ExecAction", - "description": "exec-based handler" - }, - "httpGet": { - "$ref": "v1beta2.HTTPGetAction", - "description": "HTTP-based handler" - }, - "tcpSocket": { - "$ref": "v1beta2.TCPSocketAction", - "description": "TCP-based handler; TCP hooks not yet supported" - } - } - }, - "v1beta2.HostPathVolumeSource": { - "id": "v1beta2.HostPathVolumeSource", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "path of the directory on the host" - } - } - }, - "v1beta2.ISCSIVolumeSource": { - "id": "v1beta2.ISCSIVolumeSource", - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "iqn": { - "type": "string", - "description": "iSCSI Qualified Name" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iscsi target lun number" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - }, - "targetPortal": { - "type": "string", - "description": "iSCSI target portal" - } - } - }, - "v1beta2.Lifecycle": { - "id": "v1beta2.Lifecycle", - "properties": { - "postStart": { - "$ref": "v1beta2.Handler", - "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" - }, - "preStop": { - "$ref": "v1beta2.Handler", - "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" - } - } - }, - "v1beta2.LimitRange": { - "id": "v1beta2.LimitRange", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta2.LimitRangeSpec", - "description": "spec defines the limits enforced" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.LimitRangeItem": { - "id": "v1beta2.LimitRangeItem", - "properties": { - "default": { - "type": "any", - "description": "default values on this kind by resource name if omitted" - }, - "max": { - "type": "any", - "description": "max usage constraints on this kind by resource name" - }, - "min": { - "type": "any", - "description": "min usage constraints on this kind by resource name" - }, - "type": { - "type": "string", - "description": "type of resource that this limit applies to" - } - } - }, - "v1beta2.LimitRangeList": { - "id": "v1beta2.LimitRangeList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.LimitRange" - }, - "description": "items is a list of LimitRange objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.LimitRangeSpec": { - "id": "v1beta2.LimitRangeSpec", - "required": [ - "limits" - ], - "properties": { - "limits": { - "type": "array", - "items": { - "$ref": "v1beta2.LimitRangeItem" - }, - "description": "limits is the list of LimitRangeItem objects that are enforced" - } - } - }, - "v1beta2.LivenessProbe": { - "id": "v1beta2.LivenessProbe", - "properties": { - "exec": { - "$ref": "v1beta2.ExecAction", - "description": "parameters for exec-based liveness probe" - }, - "httpGet": { - "$ref": "v1beta2.HTTPGetAction", - "description": "parameters for HTTP-based liveness probe" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after the container has started before liveness probes are initiated" - }, - "tcpSocket": { - "$ref": "v1beta2.TCPSocketAction", - "description": "parameters for TCP-based liveness probe" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after which liveness probes timeout; defaults to 1 second" - } - } - }, - "v1beta2.LocalObjectReference": { - "id": "v1beta2.LocalObjectReference", - "properties": { - "name": { - "type": "string", - "description": "name of the referent" - } - } - }, - "v1beta2.Minion": { - "id": "v1beta2.Minion", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "externalID": { - "type": "string", - "description": "external id of the node assigned by some machine database (e.g. a cloud provider). Defaults to node name when empty." - }, - "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" - }, - "hostIP": { - "type": "string", - "description": "IP address of the node" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "podCIDR": { - "type": "string", - "description": "IP range assigned to the node" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "resources": { - "$ref": "v1beta2.NodeResources", - "description": "characterization of node resources" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "status": { - "$ref": "v1beta2.NodeStatus", - "description": "current status of node" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - }, - "unschedulable": { - "type": "boolean", - "description": "disable pod scheduling on the node" - } - } - }, - "v1beta2.MinionList": { - "id": "v1beta2.MinionList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Minion" - }, - "description": "list of nodes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.NFSVolumeSource": { - "id": "v1beta2.NFSVolumeSource", - "required": [ - "server", - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "the path that is exported by the NFS server" - }, - "readOnly": { - "type": "boolean", - "description": "forces the NFS export to be mounted with read-only permissions" - }, - "server": { - "type": "string", - "description": "the hostname or IP address of the NFS server" - } - } - }, - "v1beta2.Namespace": { - "id": "v1beta2.Namespace", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize namespaces" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta2.NamespaceSpec", - "description": "spec defines the behavior of the Namespace" - }, - "status": { - "$ref": "v1beta2.NamespaceStatus", - "description": "status describes the current status of a Namespace; read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.NamespaceList": { - "id": "v1beta2.NamespaceList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Namespace" - }, - "description": "items is the list of Namespace objects in the list" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.NamespaceSpec": { - "id": "v1beta2.NamespaceSpec", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1beta2.FinalizerName" - }, - "description": "an opaque list of values that must be empty to permanently remove object from storage" - } - } - }, - "v1beta2.NamespaceStatus": { - "id": "v1beta2.NamespaceStatus", - "properties": { - "phase": { - "type": "string", - "description": "phase is the current lifecycle phase of the namespace" - } - } - }, - "v1beta2.NodeAddress": { - "id": "v1beta2.NodeAddress", - "required": [ - "type", - "address" - ], - "properties": { - "address": { - "type": "string", - "description": "string representation of the address" - }, - "type": { - "type": "string", - "description": "type of the node address, e.g. external ip, internal ip, hostname, etc" - } - } - }, - "v1beta2.NodeCondition": { - "id": "v1beta2.NodeCondition", - "required": [ - "kind", - "status" - ], - "properties": { - "kind": { - "type": "string", - "description": "kind of the condition, current kinds: Reachable, Ready, Schedulable" - }, - "lastProbeTime": { - "type": "string", - "description": "last time the condition was probed" - }, - "lastTransitionTime": { - "type": "string", - "description": "last time the condition transit from one status to another" - }, - "message": { - "type": "string", - "description": "human readable message indicating details about last transition" - }, - "reason": { - "type": "string", - "description": "(brief) reason for the condition's last transition" - }, - "status": { - "type": "string", - "description": "status of the condition, one of Full, None, Unknown" - } - } - }, - "v1beta2.NodeResources": { - "id": "v1beta2.NodeResources", - "properties": { - "capacity": { - "type": "any", - "description": "resource capacity of a node represented as a map of resource name to quantity of resource" - } - } - }, - "v1beta2.NodeStatus": { - "id": "v1beta2.NodeStatus", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1beta2.NodeAddress" - }, - "description": "list of addresses reachable to the node" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta2.NodeCondition" - }, - "description": "conditions is an array of current node conditions" - }, - "nodeInfo": { - "$ref": "v1beta2.NodeSystemInfo", - "description": "node identity is a set of ids/uuids to uniquely identify the node" - }, - "phase": { - "type": "string", - "description": "node phase is the current lifecycle phase of the node" - } - } - }, - "v1beta2.NodeSystemInfo": { - "id": "v1beta2.NodeSystemInfo", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion" - ], - "properties": { - "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)" - }, - "kubeProxyVersion": { - "type": "string", - "description": "Kube-proxy version reported by the node" - }, - "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" - } - } - }, - "v1beta2.ObjectFieldSelector": { - "id": "v1beta2.ObjectFieldSelector", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema that fieldPath is written in terms of; defaults to v1beta2" - }, - "fieldPath": { - "type": "string", - "description": "path of the field to select in the specified API version" - } - } - }, - "v1beta2.ObjectReference": { - "id": "v1beta2.ObjectReference", - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent" - }, - "fieldPath": { - "type": "string", - "description": "if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]" - }, - "kind": { - "type": "string", - "description": "kind of the referent" - }, - "name": { - "type": "string", - "description": "id of the referent" - }, - "namespace": { - "type": "string", - "description": "namespace of the referent" - }, - "resourceVersion": { - "type": "string", - "description": "specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "uid": { - "type": "string", - "description": "uid of the referent" - } - } - }, - "v1beta2.PersistentVolume": { - "id": "v1beta2.PersistentVolume", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta2.PersistentVolumeSpec", - "description": "specification of a persistent volume as provisioned by an administrator" - }, - "status": { - "$ref": "v1beta2.PersistentVolumeStatus", - "description": "current status of a persistent volume; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PersistentVolumeAccessMode": { - "id": "v1beta2.PersistentVolumeAccessMode", - "properties": {} - }, - "v1beta2.PersistentVolumeClaim": { - "id": "v1beta2.PersistentVolumeClaim", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta2.PersistentVolumeClaimSpec", - "description": "the desired characteristics of a volume" - }, - "status": { - "$ref": "v1beta2.PersistentVolumeClaimStatus", - "description": "the current status of a persistent volume claim; read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PersistentVolumeClaimList": { - "id": "v1beta2.PersistentVolumeClaimList", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.PersistentVolumeClaim" - }, - "description": "a list of persistent volume claims" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PersistentVolumeClaimSpec": { - "id": "v1beta2.PersistentVolumeClaimSpec", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta2.PersistentVolumeAccessMode" - }, - "description": "the desired access modes the volume should have" - }, - "resources": { - "$ref": "v1beta2.ResourceRequirements", - "description": "the desired resources the volume should have" - }, - "volumeName": { - "type": "string", - "description": "the binding reference to the persistent volume backing this claim" - } - } - }, - "v1beta2.PersistentVolumeClaimStatus": { - "id": "v1beta2.PersistentVolumeClaimStatus", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta2.PersistentVolumeAccessMode" - }, - "description": "the actual access modes the volume has" - }, - "capacity": { - "type": "any", - "description": "the actual resources the volume has" - }, - "phase": { - "type": "string", - "description": "the current phase of the claim" - } - } - }, - "v1beta2.PersistentVolumeClaimVolumeSource": { - "id": "v1beta2.PersistentVolumeClaimVolumeSource", - "properties": { - "claimName": { - "type": "string", - "description": "the name of the claim in the same namespace to be mounted as a volume" - }, - "readOnly": { - "type": "boolean", - "description": "mount volume as read-only when true; default false" - } - } - }, - "v1beta2.PersistentVolumeList": { - "id": "v1beta2.PersistentVolumeList", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.PersistentVolume" - }, - "description": "list of persistent volumes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PersistentVolumeSpec": { - "id": "v1beta2.PersistentVolumeSpec", - "required": [ - "persistentDisk", - "awsElasticBlockStore", - "hostPath", - "glusterfs", - "nfs" - ], - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta2.PersistentVolumeAccessMode" - }, - "description": "all ways the volume can be mounted" - }, - "awsElasticBlockStore": { - "$ref": "v1beta2.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource provisioned by an admin" - }, - "capacity": { - "type": "any", - "description": "a description of the persistent volume's resources and capacity" - }, - "claimRef": { - "$ref": "v1beta2.ObjectReference", - "description": "when bound, a reference to the bound claim" - }, - "glusterfs": { - "$ref": "v1beta2.GlusterfsVolumeSource", - "description": "Glusterfs volume resource provisioned by an admin" - }, - "hostPath": { - "$ref": "v1beta2.HostPathVolumeSource", - "description": "a HostPath provisioned by a developer or tester; for develment use only" - }, - "nfs": { - "$ref": "v1beta2.NFSVolumeSource", - "description": "NFS volume resource provisioned by an admin" - }, - "persistentDisk": { - "$ref": "v1beta2.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource provisioned by an admin" - } - } - }, - "v1beta2.PersistentVolumeStatus": { - "id": "v1beta2.PersistentVolumeStatus", - "properties": { - "phase": { - "type": "string", - "description": "the current phase of a persistent volume" - } - } - }, - "v1beta2.Pod": { - "id": "v1beta2.Pod", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "currentState": { - "$ref": "v1beta2.PodState", - "description": "current state of the pod; populated by the system, read-only" - }, - "deletionTimestamp": { - "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" - }, - "desiredState": { - "$ref": "v1beta2.PodState", - "description": "specification of the desired state of the pod" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "nodeSelector": { - "type": "any", - "description": "selector which must match a node's labels for the pod to be scheduled on that node" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "serviceAccount": { - "type": "string", - "description": "the name of the ServiceAccount to use to run this pod" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PodCondition": { - "id": "v1beta2.PodCondition", - "required": [ - "kind", - "status" - ], - "properties": { - "kind": { - "type": "string", - "description": "kind of the condition, currently only Ready" - }, - "status": { - "type": "string", - "description": "status of the condition, one of Full, None, Unknown" - } - } - }, - "v1beta2.PodList": { - "id": "v1beta2.PodList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Pod" - }, - "description": "list of pods" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.PodState": { - "id": "v1beta2.PodState", - "properties": { - "Condition": { - "type": "array", - "items": { - "$ref": "v1beta2.PodCondition" - }, - "description": "current service state of pod" - }, - "host": { - "type": "string", - "description": "host to which the pod is assigned; empty if not yet scheduled; cannot be updated" - }, - "hostIP": { - "type": "string", - "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" - }, - "info": { - "type": "any", - "description": "map of container name to container status" - }, - "manifest": { - "$ref": "v1beta2.ContainerManifest", - "description": "manifest of containers and volumes comprising the pod" - }, - "message": { - "type": "string", - "description": "human readable message indicating details about why the pod is in this condition" - }, - "podIP": { - "type": "string", - "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" - }, - "status": { - "type": "string", - "description": "current condition of the pod, Waiting, Running, or Terminated" - } - } - }, - "v1beta2.PodTemplate": { - "id": "v1beta2.PodTemplate", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template" - }, - "desiredState": { - "$ref": "v1beta2.PodState", - "description": "specification of the desired state of pods created from this template" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services" - }, - "nodeSelector": { - "type": "any", - "description": "a selector which must be true for the pod to fit on a node" - }, - "serviceAccount": { - "type": "string", - "description": "the name of the ServiceAccount to use to run this pod" - } - } - }, - "v1beta2.ReplicationController": { - "id": "v1beta2.ReplicationController", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "currentState": { - "$ref": "v1beta2.ReplicationControllerState", - "description": "current state of the replication controller; populated by the system, read-only" - }, - "deletionTimestamp": { - "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" - }, - "desiredState": { - "$ref": "v1beta2.ReplicationControllerState", - "description": "specification of the desired state of the replication controller" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize replication controllers" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ReplicationControllerList": { - "id": "v1beta2.ReplicationControllerList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.ReplicationController" - }, - "description": "list of replication controllers" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ReplicationControllerState": { - "id": "v1beta2.ReplicationControllerState", - "required": [ - "replicas" - ], - "properties": { - "podTemplate": { - "$ref": "v1beta2.PodTemplate", - "description": "template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas" - }, - "replicaSelector": { - "type": "any", - "description": "label keys and values that must match in order to be controlled by this replication controller" - }, - "replicas": { - "type": "integer", - "format": "int32", - "description": "number of replicas (desired or observed, as appropriate)" - } - } - }, - "v1beta2.ResourceQuota": { - "id": "v1beta2.ResourceQuota", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize resource quotas" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "spec": { - "$ref": "v1beta2.ResourceQuotaSpec", - "description": "spec defines the desired quota" - }, - "status": { - "$ref": "v1beta2.ResourceQuotaStatus", - "description": "status defines the actual enforced quota and current usage" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ResourceQuotaList": { - "id": "v1beta2.ResourceQuotaList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.ResourceQuota" - }, - "description": "items is a list of ResourceQuota objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ResourceQuotaSpec": { - "id": "v1beta2.ResourceQuotaSpec", - "properties": { - "hard": { - "type": "any", - "description": "hard is the set of desired hard limits for each named resource" - } - } - }, - "v1beta2.ResourceQuotaStatus": { - "id": "v1beta2.ResourceQuotaStatus", - "properties": { - "hard": { - "type": "any", - "description": "hard is the set of enforced hard limits for each named resource" - }, - "used": { - "type": "any", - "description": "used is the current observed total usage of the resource in the namespace" - } - } - }, - "v1beta2.ResourceRequirements": { - "id": "v1beta2.ResourceRequirements", - "properties": { - "limits": { - "type": "any", - "description": "Maximum amount of compute resources allowed" - }, - "requests": { - "type": "any", - "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now" - } - } - }, - "v1beta2.RestartPolicy": { - "id": "v1beta2.RestartPolicy", - "properties": { - "always": { - "$ref": "v1beta2.RestartPolicyAlways", - "description": "always restart the container after termination" - }, - "never": { - "$ref": "v1beta2.RestartPolicyNever", - "description": "never restart the container" - }, - "onFailure": { - "$ref": "v1beta2.RestartPolicyOnFailure", - "description": "restart the container if it fails for any reason, but not if it succeeds (exit 0)" - } - } - }, - "v1beta2.RestartPolicyAlways": { - "id": "v1beta2.RestartPolicyAlways", - "properties": {} - }, - "v1beta2.RestartPolicyNever": { - "id": "v1beta2.RestartPolicyNever", - "properties": {} - }, - "v1beta2.RestartPolicyOnFailure": { - "id": "v1beta2.RestartPolicyOnFailure", - "properties": {} - }, - "v1beta2.SELinuxOptions": { - "id": "v1beta2.SELinuxOptions", - "properties": { - "level": { - "type": "string", - "description": "the level label to apply to the container" - }, - "role": { - "type": "string", - "description": "the role label to apply to the container" - }, - "type": { - "type": "string", - "description": "the type label to apply to the container" - }, - "user": { - "type": "string", - "description": "the user label to apply to the container" - } - } - }, - "v1beta2.Secret": { - "id": "v1beta2.Secret", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "data": { - "type": "any", - "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "type": { - "type": "string", - "description": "type facilitates programmatic handling of secret data" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.SecretList": { - "id": "v1beta2.SecretList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Secret" - }, - "description": "items is a list of secret objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.SecretVolumeSource": { - "id": "v1beta2.SecretVolumeSource", - "required": [ - "target" - ], - "properties": { - "target": { - "$ref": "v1beta2.ObjectReference", - "description": "target is a reference to a secret" - } - } - }, - "v1beta2.SecurityContext": { - "id": "v1beta2.SecurityContext", - "properties": { - "capabilities": { - "$ref": "v1beta2.Capabilities", - "description": "the linux capabilites that should be added or removed" - }, - "privileged": { - "type": "boolean", - "description": "run the container in privileged mode" - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "the user id that runs the first process in the container" - }, - "seLinuxOptions": { - "$ref": "v1beta2.SELinuxOptions", - "description": "options that control the SELinux labels applied" - } - } - }, - "v1beta2.Service": { - "id": "v1beta2.Service", - "required": [ - "port", - "selector", - "ports" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "containerPort": { - "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" - }, - "createExternalLoadBalancer": { - "type": "boolean", - "description": "set up a cloud-provider-specific load balancer on an external IP" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize services" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "port": { - "type": "integer", - "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; 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" - }, - "protocol": { - "type": "string", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" - }, - "proxyPort": { - "type": "integer", - "format": "int32", - "description": "if non-zero, a pre-allocated host port used for this service by the proxy on each node; assigned by the master and ignored on input" - }, - "publicIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selector": { - "type": "any", - "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "sessionAffinity": { - "type": "string", - "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ServiceAccount": { - "id": "v1beta2.ServiceAccount", - "required": [ - "secrets" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "v1beta2.ObjectReference" - }, - "description": "list of secrets that can be used by pods running as this service account" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ServiceAccountList": { - "id": "v1beta2.ServiceAccountList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.ServiceAccount" - }, - "description": "list of ServiceAccounts" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.ServiceList": { - "id": "v1beta2.ServiceList", - "required": [ - "items" - ], - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta2.Service" - }, - "description": "list of services" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "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": { - "type": "string", - "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" - } - } - }, - "v1beta2.Status": { - "id": "v1beta2.Status", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" - }, - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "code": { - "type": "integer", - "format": "int32", - "description": "suggested HTTP return code for this status; 0 if not set" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "details": { - "$ref": "v1beta2.StatusDetails", - "description": "extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type" - }, - "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" - }, - "id": { - "type": "string", - "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" - }, - "namespace": { - "type": "string", - "description": "namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated" - }, - "reason": { - "type": "string", - "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it" - }, - "resourceVersion": { - "type": "integer", - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "status": { - "type": "string", - "description": "status of the operation; either Success or Failure" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system, read-only" - } - } - }, - "v1beta2.StatusCause": { - "id": "v1beta2.StatusCause", - "properties": { - "field": { - "type": "string", - "description": "field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors" - }, - "message": { - "type": "string", - "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader" - }, - "reason": { - "type": "string", - "description": "machine-readable description of the cause of the error; if this value is empty there is no information available" - } - } - }, - "v1beta2.StatusDetails": { - "id": "v1beta2.StatusDetails", - "properties": { - "causes": { - "type": "array", - "items": { - "$ref": "v1beta2.StatusCause" - }, - "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes" - }, - "id": { - "type": "string", - "description": "the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)" - }, - "kind": { - "type": "string", - "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind" - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "the number of seconds before the client should attempt to retry this operation" - } - } - }, - "v1beta2.TCPSocketAction": { - "id": "v1beta2.TCPSocketAction", - "properties": { - "port": { - "type": "string", - "description": "number of name of the port to access on the container" - } - } - }, - "v1beta2.Volume": { - "id": "v1beta2.Volume", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "volume name; must be a DNS_LABEL and unique within the pod" - }, - "source": { - "$ref": "v1beta2.VolumeSource", - "description": "location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, AWSElasticBlockStore, or GitRepo; default is EmptyDir" - } - } - }, - "v1beta2.VolumeMount": { - "id": "v1beta2.VolumeMount", - "required": [ - "name", - "mountPath" - ], - "properties": { - "mountPath": { - "type": "string", - "description": "path within the container at which the volume should be mounted" - }, - "name": { - "type": "string", - "description": "name of the volume to mount" - }, - "readOnly": { - "type": "boolean", - "description": "mounted read-only if true, read-write otherwise (false or unspecified)" - } - } - }, - "v1beta2.VolumeSource": { - "id": "v1beta2.VolumeSource", - "required": [ - "hostDir", - "emptyDir", - "persistentDisk", - "awsElasticBlockStore", - "gitRepo", - "secret", - "nfs", - "iscsi", - "glusterfs" - ], - "properties": { - "awsElasticBlockStore": { - "$ref": "v1beta2.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource attached to the host machine on demand" - }, - "emptyDir": { - "$ref": "v1beta2.EmptyDirVolumeSource", - "description": "temporary directory that shares a pod's lifetime" - }, - "gitRepo": { - "$ref": "v1beta2.GitRepoVolumeSource", - "description": "git repository at a particular revision" - }, - "glusterfs": { - "$ref": "v1beta2.GlusterfsVolumeSource", - "description": "Glusterfs volume that will be mounted on the host machine " - }, - "hostDir": { - "$ref": "v1beta2.HostPathVolumeSource", - "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" - }, - "iscsi": { - "$ref": "v1beta2.ISCSIVolumeSource", - "description": "iSCSI disk attached to host machine on demand" - }, - "nfs": { - "$ref": "v1beta2.NFSVolumeSource", - "description": "NFS volume that will be mounted in the host machine" - }, - "persistentDisk": { - "$ref": "v1beta2.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource attached to the host machine on demand" - }, - "persistentVolumeClaim": { - "$ref": "v1beta2.PersistentVolumeClaimVolumeSource", - "description": "a reference to a PersistentVolumeClaim in the same namespace" - }, - "secret": { - "$ref": "v1beta2.SecretVolumeSource", - "description": "secret to populate volume" - } - } - } - } - } \ No newline at end of file diff --git a/api/swagger-spec/v1beta3.json b/api/swagger-spec/v1beta3.json index ca409120597..76eccd0be90 100644 --- a/api/swagger-spec/v1beta3.json +++ b/api/swagger-spec/v1beta3.json @@ -14,14 +14,6 @@ "summary": "create a Binding", "nickname": "createBinding", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Binding", "paramType": "body", @@ -29,6 +21,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -94,10 +94,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -109,10 +109,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -125,11 +125,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -162,16 +162,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the ComponentStatus", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the ComponentStatus", "required": true, "allowMultiple": false } @@ -202,14 +202,6 @@ "summary": "list objects of kind ComponentStatus", "nickname": "listComponentStatus", "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", @@ -221,8 +213,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -233,6 +225,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -263,10 +263,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -278,10 +278,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -294,11 +294,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -322,14 +322,6 @@ "summary": "create a Endpoints", "nickname": "createEndpoints", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Endpoints", "paramType": "body", @@ -337,6 +329,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -367,10 +367,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -382,10 +382,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -398,11 +398,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -435,16 +435,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Endpoints", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Endpoints", "required": true, "allowMultiple": false } @@ -470,10 +470,10 @@ "nickname": "replaceEndpoints", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", + "type": "v1beta3.Endpoints", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -486,10 +486,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Endpoints", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", "required": true, "allowMultiple": false } @@ -516,9 +516,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -532,9 +532,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", "required": true, "allowMultiple": false } @@ -562,10 +562,10 @@ "nickname": "deleteEndpoints", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -578,10 +578,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", "required": true, "allowMultiple": false } @@ -614,18 +614,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -637,10 +629,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -653,11 +645,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", + "required": true, "allowMultiple": false } ], @@ -687,14 +687,6 @@ "summary": "list or watch objects of kind Endpoints", "nickname": "listEndpoints", "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", @@ -706,8 +698,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -718,6 +710,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -775,14 +775,6 @@ "summary": "watch individual changes to a list of Endpoints", "nickname": "watchEndpointslist", "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", @@ -794,8 +786,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -806,6 +798,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -836,10 +836,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -851,10 +851,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -867,11 +867,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -895,14 +895,6 @@ "summary": "create a Event", "nickname": "createEvent", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Event", "paramType": "body", @@ -910,6 +902,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -940,10 +940,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -955,10 +955,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -971,11 +971,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -1008,16 +1008,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Event", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Event", "required": true, "allowMultiple": false } @@ -1043,10 +1043,10 @@ "nickname": "replaceEvent", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", + "type": "v1beta3.Event", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -1059,10 +1059,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Event", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Event", "required": true, "allowMultiple": false } @@ -1089,9 +1089,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -1105,9 +1105,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Event", "required": true, "allowMultiple": false } @@ -1137,16 +1137,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Event", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Event", "required": true, "allowMultiple": false } @@ -1179,18 +1179,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -1202,10 +1194,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -1218,11 +1210,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Event", + "required": true, "allowMultiple": false } ], @@ -1252,14 +1252,6 @@ "summary": "list or watch objects of kind Event", "nickname": "listEvent", "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", @@ -1271,8 +1263,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -1283,6 +1275,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -1340,14 +1340,6 @@ "summary": "watch individual changes to a list of Event", "nickname": "watchEventlist", "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", @@ -1359,8 +1351,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -1371,6 +1363,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -1401,10 +1401,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -1416,10 +1416,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -1432,11 +1432,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -1460,14 +1460,6 @@ "summary": "create a LimitRange", "nickname": "createLimitRange", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.LimitRange", "paramType": "body", @@ -1475,6 +1467,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -1505,10 +1505,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -1520,10 +1520,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -1536,11 +1536,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -1573,16 +1573,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the LimitRange", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the LimitRange", "required": true, "allowMultiple": false } @@ -1608,10 +1608,10 @@ "nickname": "replaceLimitRange", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", + "type": "v1beta3.LimitRange", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -1624,10 +1624,10 @@ "allowMultiple": false }, { - "type": "v1beta3.LimitRange", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the LimitRange", "required": true, "allowMultiple": false } @@ -1654,9 +1654,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -1670,9 +1670,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the LimitRange", "required": true, "allowMultiple": false } @@ -1702,16 +1702,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the LimitRange", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the LimitRange", "required": true, "allowMultiple": false } @@ -1744,18 +1744,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -1767,10 +1759,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -1783,11 +1775,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the LimitRange", + "required": true, "allowMultiple": false } ], @@ -1817,14 +1817,6 @@ "summary": "list or watch objects of kind LimitRange", "nickname": "listLimitRange", "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", @@ -1836,8 +1828,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -1848,6 +1840,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -1905,14 +1905,6 @@ "summary": "watch individual changes to a list of LimitRange", "nickname": "watchLimitRangelist", "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", @@ -1924,8 +1916,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -1936,6 +1928,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -1964,14 +1964,6 @@ "summary": "list or watch objects of kind Namespace", "nickname": "listNamespace", "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", @@ -1983,8 +1975,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -1995,6 +1987,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -2052,14 +2052,6 @@ "summary": "watch individual changes to a list of Namespace", "nickname": "watchNamespacelist", "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", @@ -2071,8 +2063,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -2083,6 +2075,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -2140,14 +2140,6 @@ "summary": "replace the specified Namespace", "nickname": "replaceNamespace", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Namespace", "paramType": "body", @@ -2155,6 +2147,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2179,17 +2179,17 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", "required": true, "allowMultiple": false } @@ -2216,14 +2216,6 @@ "summary": "delete a Namespace", "nickname": "deleteNamespace", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.DeleteOptions", "paramType": "body", @@ -2231,6 +2223,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2261,10 +2261,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -2276,10 +2276,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -2292,11 +2292,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, "allowMultiple": false } ], @@ -2326,14 +2326,6 @@ "summary": "replace the specified Namespace", "nickname": "replaceNamespace", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Namespace", "paramType": "body", @@ -2341,6 +2333,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2369,14 +2369,6 @@ "summary": "replace the specified Namespace", "nickname": "replaceNamespace", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Namespace", "paramType": "body", @@ -2384,6 +2376,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2412,14 +2412,6 @@ "summary": "list or watch objects of kind Node", "nickname": "listNode", "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", @@ -2431,8 +2423,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -2443,6 +2435,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -2500,14 +2500,6 @@ "summary": "watch individual changes to a list of Node", "nickname": "watchNodelist", "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", @@ -2519,8 +2511,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -2531,6 +2523,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -2588,14 +2588,6 @@ "summary": "replace the specified Node", "nickname": "replaceNode", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Node", "paramType": "body", @@ -2603,6 +2595,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Node", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2627,17 +2627,17 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Node", "required": true, "allowMultiple": false } @@ -2664,14 +2664,6 @@ "summary": "delete a Node", "nickname": "deleteNode", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.DeleteOptions", "paramType": "body", @@ -2679,6 +2671,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Node", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -2709,10 +2709,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -2724,10 +2724,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -2740,11 +2740,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Node", + "required": true, "allowMultiple": false } ], @@ -3126,14 +3126,6 @@ "summary": "replace the specified Node", "nickname": "replaceNode", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Node", "paramType": "body", @@ -3141,6 +3133,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Node", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -3171,10 +3171,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -3186,10 +3186,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -3202,11 +3202,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -3230,14 +3230,6 @@ "summary": "create a PersistentVolumeClaim", "nickname": "createPersistentVolumeClaim", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.PersistentVolumeClaim", "paramType": "body", @@ -3245,6 +3237,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -3275,10 +3275,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -3290,10 +3290,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -3306,11 +3306,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -3343,16 +3343,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the PersistentVolumeClaim", "required": true, "allowMultiple": false } @@ -3378,10 +3378,10 @@ "nickname": "replacePersistentVolumeClaim", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", + "type": "v1beta3.PersistentVolumeClaim", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -3394,10 +3394,10 @@ "allowMultiple": false }, { - "type": "v1beta3.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolumeClaim", "required": true, "allowMultiple": false } @@ -3424,9 +3424,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -3440,9 +3440,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolumeClaim", "required": true, "allowMultiple": false } @@ -3470,10 +3470,10 @@ "nickname": "deletePersistentVolumeClaim", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -3486,10 +3486,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolumeClaim", "required": true, "allowMultiple": false } @@ -3522,18 +3522,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -3545,10 +3537,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -3561,11 +3553,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolumeClaim", + "required": true, "allowMultiple": false } ], @@ -3595,14 +3595,6 @@ "summary": "list or watch objects of kind PersistentVolumeClaim", "nickname": "listPersistentVolumeClaim", "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", @@ -3614,8 +3606,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -3626,6 +3618,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -3683,14 +3683,6 @@ "summary": "watch individual changes to a list of PersistentVolumeClaim", "nickname": "watchPersistentVolumeClaimlist", "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", @@ -3702,8 +3694,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -3714,6 +3706,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -3743,10 +3743,10 @@ "nickname": "replacePersistentVolumeClaim", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", + "type": "v1beta3.PersistentVolumeClaim", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -3759,10 +3759,10 @@ "allowMultiple": false }, { - "type": "v1beta3.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolumeClaim", "required": true, "allowMultiple": false } @@ -3793,14 +3793,6 @@ "summary": "list or watch objects of kind PersistentVolume", "nickname": "listPersistentVolume", "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", @@ -3812,8 +3804,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -3824,6 +3816,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -3881,14 +3881,6 @@ "summary": "watch individual changes to a list of PersistentVolume", "nickname": "watchPersistentVolumelist", "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", @@ -3900,8 +3892,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -3912,6 +3904,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -3969,14 +3969,6 @@ "summary": "replace the specified PersistentVolume", "nickname": "replacePersistentVolume", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.PersistentVolume", "paramType": "body", @@ -3984,6 +3976,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolume", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -4008,17 +4008,17 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolume", "required": true, "allowMultiple": false } @@ -4045,14 +4045,6 @@ "summary": "delete a PersistentVolume", "nickname": "deletePersistentVolume", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.DeleteOptions", "paramType": "body", @@ -4060,6 +4052,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolume", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -4090,10 +4090,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -4105,10 +4105,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -4121,11 +4121,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolume", + "required": true, "allowMultiple": false } ], @@ -4155,14 +4155,6 @@ "summary": "replace the specified PersistentVolume", "nickname": "replacePersistentVolume", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.PersistentVolume", "paramType": "body", @@ -4170,6 +4162,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PersistentVolume", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -4200,10 +4200,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -4215,10 +4215,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -4231,11 +4231,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -4259,14 +4259,6 @@ "summary": "create a Pod", "nickname": "createPod", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Pod", "paramType": "body", @@ -4274,6 +4266,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -4304,10 +4304,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -4319,10 +4319,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -4335,11 +4335,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -4372,16 +4372,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4407,10 +4407,10 @@ "nickname": "replacePod", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", + "type": "v1beta3.Pod", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -4423,10 +4423,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Pod", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4453,9 +4453,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -4469,9 +4469,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4499,10 +4499,10 @@ "nickname": "deletePod", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -4515,10 +4515,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4551,18 +4551,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -4574,10 +4566,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -4590,11 +4582,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Pod", + "required": true, "allowMultiple": false } ], @@ -4627,16 +4627,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4663,16 +4663,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4701,16 +4701,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4739,16 +4739,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4777,16 +4777,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4815,16 +4815,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4853,16 +4853,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false }, @@ -4897,16 +4897,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4927,16 +4927,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4957,16 +4957,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -4987,16 +4987,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -5017,16 +5017,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -5047,16 +5047,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -5080,14 +5080,6 @@ "summary": "list or watch objects of kind Pod", "nickname": "listPod", "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", @@ -5099,8 +5091,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -5111,6 +5103,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -5197,14 +5197,6 @@ "summary": "watch individual changes to a list of Pod", "nickname": "watchPodlist", "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", @@ -5216,8 +5208,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -5228,6 +5220,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -5257,10 +5257,10 @@ "nickname": "createBinding", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Binding", + "type": "v1beta3.Binding", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -5273,10 +5273,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Binding", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Binding", "required": true, "allowMultiple": false } @@ -5329,16 +5329,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Pod", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -5557,10 +5557,10 @@ "nickname": "replacePod", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", + "type": "v1beta3.Pod", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -5573,10 +5573,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Pod", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Pod", "required": true, "allowMultiple": false } @@ -5609,10 +5609,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -5624,10 +5624,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -5640,11 +5640,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -5668,14 +5668,6 @@ "summary": "create a PodTemplate", "nickname": "createPodTemplate", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.PodTemplate", "paramType": "body", @@ -5683,6 +5675,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -5713,10 +5713,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -5728,10 +5728,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -5744,11 +5744,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -5781,16 +5781,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the PodTemplate", "required": true, "allowMultiple": false } @@ -5816,10 +5816,10 @@ "nickname": "replacePodTemplate", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", + "type": "v1beta3.PodTemplate", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -5832,10 +5832,10 @@ "allowMultiple": false }, { - "type": "v1beta3.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PodTemplate", "required": true, "allowMultiple": false } @@ -5862,9 +5862,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -5878,9 +5878,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the PodTemplate", "required": true, "allowMultiple": false } @@ -5908,10 +5908,10 @@ "nickname": "deletePodTemplate", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -5924,10 +5924,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PodTemplate", "required": true, "allowMultiple": false } @@ -5960,18 +5960,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -5983,10 +5975,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -5999,11 +5991,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the PodTemplate", + "required": true, "allowMultiple": false } ], @@ -6033,14 +6033,6 @@ "summary": "list or watch objects of kind PodTemplate", "nickname": "listPodTemplate", "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", @@ -6052,8 +6044,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -6064,6 +6056,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -6121,14 +6121,6 @@ "summary": "watch individual changes to a list of PodTemplate", "nickname": "watchPodTemplatelist", "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", @@ -6140,8 +6132,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -6152,6 +6144,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -6182,10 +6182,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -6197,10 +6197,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -6213,11 +6213,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -6241,14 +6241,6 @@ "summary": "create a ReplicationController", "nickname": "createReplicationController", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.ReplicationController", "paramType": "body", @@ -6256,6 +6248,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -6286,10 +6286,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -6301,10 +6301,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -6317,11 +6317,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -6354,16 +6354,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the ReplicationController", "required": true, "allowMultiple": false } @@ -6389,10 +6389,10 @@ "nickname": "replaceReplicationController", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", + "type": "v1beta3.ReplicationController", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -6405,10 +6405,10 @@ "allowMultiple": false }, { - "type": "v1beta3.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicationController", "required": true, "allowMultiple": false } @@ -6435,9 +6435,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -6451,9 +6451,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the ReplicationController", "required": true, "allowMultiple": false } @@ -6481,10 +6481,10 @@ "nickname": "deleteReplicationController", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -6497,10 +6497,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicationController", "required": true, "allowMultiple": false } @@ -6533,18 +6533,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -6556,10 +6548,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -6572,11 +6564,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicationController", + "required": true, "allowMultiple": false } ], @@ -6606,14 +6606,6 @@ "summary": "list or watch objects of kind ReplicationController", "nickname": "listReplicationController", "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", @@ -6625,8 +6617,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -6637,6 +6629,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -6694,14 +6694,6 @@ "summary": "watch individual changes to a list of ReplicationController", "nickname": "watchReplicationControllerlist", "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", @@ -6713,8 +6705,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -6725,6 +6717,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -6755,10 +6755,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -6770,10 +6770,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -6786,11 +6786,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -6814,14 +6814,6 @@ "summary": "create a ResourceQuota", "nickname": "createResourceQuota", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.ResourceQuota", "paramType": "body", @@ -6829,6 +6821,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -6859,10 +6859,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -6874,10 +6874,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -6890,11 +6890,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -6927,16 +6927,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the ResourceQuota", "required": true, "allowMultiple": false } @@ -6962,10 +6962,10 @@ "nickname": "replaceResourceQuota", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", + "type": "v1beta3.ResourceQuota", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -6978,10 +6978,10 @@ "allowMultiple": false }, { - "type": "v1beta3.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ResourceQuota", "required": true, "allowMultiple": false } @@ -7008,9 +7008,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7024,9 +7024,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the ResourceQuota", "required": true, "allowMultiple": false } @@ -7054,10 +7054,10 @@ "nickname": "deleteResourceQuota", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7070,10 +7070,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ResourceQuota", "required": true, "allowMultiple": false } @@ -7106,18 +7106,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -7129,10 +7121,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -7145,11 +7137,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ResourceQuota", + "required": true, "allowMultiple": false } ], @@ -7179,14 +7179,6 @@ "summary": "list or watch objects of kind ResourceQuota", "nickname": "listResourceQuota", "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", @@ -7198,8 +7190,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -7210,6 +7202,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -7267,14 +7267,6 @@ "summary": "watch individual changes to a list of ResourceQuota", "nickname": "watchResourceQuotalist", "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", @@ -7286,8 +7278,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -7298,6 +7290,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -7327,10 +7327,10 @@ "nickname": "replaceResourceQuota", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", + "type": "v1beta3.ResourceQuota", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7343,10 +7343,10 @@ "allowMultiple": false }, { - "type": "v1beta3.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ResourceQuota", "required": true, "allowMultiple": false } @@ -7379,10 +7379,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -7394,10 +7394,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -7410,11 +7410,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -7438,14 +7438,6 @@ "summary": "create a Secret", "nickname": "createSecret", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Secret", "paramType": "body", @@ -7453,6 +7445,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -7483,10 +7483,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -7498,10 +7498,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -7514,11 +7514,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -7551,16 +7551,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Secret", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Secret", "required": true, "allowMultiple": false } @@ -7586,10 +7586,10 @@ "nickname": "replaceSecret", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", + "type": "v1beta3.Secret", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7602,10 +7602,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Secret", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Secret", "required": true, "allowMultiple": false } @@ -7632,9 +7632,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7648,9 +7648,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Secret", "required": true, "allowMultiple": false } @@ -7678,10 +7678,10 @@ "nickname": "deleteSecret", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -7694,10 +7694,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Secret", "required": true, "allowMultiple": false } @@ -7730,18 +7730,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -7753,10 +7745,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -7769,11 +7761,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Secret", + "required": true, "allowMultiple": false } ], @@ -7803,14 +7803,6 @@ "summary": "list or watch objects of kind Secret", "nickname": "listSecret", "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", @@ -7822,8 +7814,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -7834,6 +7826,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -7891,14 +7891,6 @@ "summary": "watch individual changes to a list of Secret", "nickname": "watchSecretlist", "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", @@ -7910,8 +7902,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -7922,6 +7914,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -7952,10 +7952,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -7967,10 +7967,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -7983,11 +7983,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -8011,14 +8011,6 @@ "summary": "create a ServiceAccount", "nickname": "createServiceAccount", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.ServiceAccount", "paramType": "body", @@ -8026,6 +8018,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -8056,10 +8056,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -8071,10 +8071,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -8087,11 +8087,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -8124,16 +8124,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the ServiceAccount", "required": true, "allowMultiple": false } @@ -8159,10 +8159,10 @@ "nickname": "replaceServiceAccount", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", + "type": "v1beta3.ServiceAccount", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -8175,10 +8175,10 @@ "allowMultiple": false }, { - "type": "v1beta3.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ServiceAccount", "required": true, "allowMultiple": false } @@ -8205,9 +8205,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -8221,9 +8221,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the ServiceAccount", "required": true, "allowMultiple": false } @@ -8251,10 +8251,10 @@ "nickname": "deleteServiceAccount", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", + "type": "v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -8267,10 +8267,10 @@ "allowMultiple": false }, { - "type": "v1beta3.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ServiceAccount", "required": true, "allowMultiple": false } @@ -8303,18 +8303,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -8326,10 +8318,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -8342,11 +8334,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ServiceAccount", + "required": true, "allowMultiple": false } ], @@ -8376,14 +8376,6 @@ "summary": "list or watch objects of kind ServiceAccount", "nickname": "listServiceAccount", "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", @@ -8395,8 +8387,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -8407,6 +8399,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -8464,14 +8464,6 @@ "summary": "watch individual changes to a list of ServiceAccount", "nickname": "watchServiceAccountlist", "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", @@ -8483,8 +8475,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -8495,6 +8487,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -8525,10 +8525,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -8540,10 +8540,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -8556,11 +8556,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -8584,14 +8584,6 @@ "summary": "create a Service", "nickname": "createService", "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, { "type": "v1beta3.Service", "paramType": "body", @@ -8599,6 +8591,14 @@ "description": "", "required": true, "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false } ], "responseMessages": [ @@ -8629,10 +8629,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -8644,10 +8644,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -8660,11 +8660,11 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, "allowMultiple": false } ], @@ -8697,16 +8697,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -8732,10 +8732,10 @@ "nickname": "replaceService", "parameters": [ { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", + "type": "v1beta3.Service", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -8748,10 +8748,10 @@ "allowMultiple": false }, { - "type": "v1beta3.Service", - "paramType": "body", - "name": "body", - "description": "", + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -8778,9 +8778,9 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", + "paramType": "body", + "name": "body", + "description": "", "required": true, "allowMultiple": false }, @@ -8794,9 +8794,9 @@ }, { "type": "string", - "paramType": "body", - "name": "body", - "description": "", + "paramType": "path", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -8826,16 +8826,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -8868,18 +8868,10 @@ "parameters": [ { "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "required": false, "allowMultiple": false }, { @@ -8891,10 +8883,10 @@ "allowMultiple": false }, { - "type": "string", + "type": "boolean", "paramType": "query", - "name": "labelSelector", - "description": "a selector to restrict the list of returned objects by their labels; defaults to everything", + "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 }, @@ -8907,11 +8899,19 @@ "allowMultiple": false }, { - "type": "boolean", - "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, + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Service", + "required": true, "allowMultiple": false } ], @@ -8944,16 +8944,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -8980,16 +8980,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9018,16 +9018,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9056,16 +9056,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9094,16 +9094,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9132,16 +9132,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9170,16 +9170,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false }, @@ -9214,16 +9214,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9244,16 +9244,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9274,16 +9274,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9304,16 +9304,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9334,16 +9334,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9364,16 +9364,16 @@ { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the Service", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "namespaces", - "description": "object name and auth scope, such as for teams and projects", + "name": "name", + "description": "name of the Service", "required": true, "allowMultiple": false } @@ -9397,14 +9397,6 @@ "summary": "list or watch objects of kind Service", "nickname": "listService", "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", @@ -9416,8 +9408,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -9428,6 +9420,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -9485,14 +9485,6 @@ "summary": "watch individual changes to a list of Service", "nickname": "watchServicelist", "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", @@ -9504,8 +9496,8 @@ { "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", + "name": "fieldSelector", + "description": "a selector to restrict the list of returned objects by their fields; defaults to everything", "required": false, "allowMultiple": false }, @@ -9516,6 +9508,14 @@ "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 + }, + { + "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 } ], "responseMessages": [ @@ -9536,59 +9536,20 @@ } ], "models": { - "json.WatchEvent": { - "id": "json.WatchEvent", - "properties": { - "object": { - "type": "string", - "description": "the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR" - }, - "type": { - "type": "string", - "description": "the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR" - } - } - }, - "v1beta3.AWSElasticBlockStoreVolumeSource": { - "id": "v1beta3.AWSElasticBlockStoreVolumeSource", - "required": [ - "volumeID", - "fsType" - ], - "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" - }, - "readOnly": { - "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" - }, - "volumeID": { - "type": "string", - "description": "unique id of the PD resource in AWS" - } - } - }, "v1beta3.Binding": { "id": "v1beta3.Binding", "required": [ "target" ], "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { "$ref": "v1beta3.ObjectMeta", "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" @@ -9599,75 +9560,81 @@ } } }, - "v1beta3.Capabilities": { - "id": "v1beta3.Capabilities", + "v1beta3.ObjectMeta": { + "id": "v1beta3.ObjectMeta", "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1beta3.Capability" - }, - "description": "added capabilities" + "name": { + "type": "string", + "description": "string that identifies an object. Must be unique within a namespace; cannot be updated" }, - "drop": { - "type": "array", - "items": { - "$ref": "v1beta3.Capability" - }, - "description": "droped capabilities" + "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" + }, + "namespace": { + "type": "string", + "description": "namespace of the object; must be a DNS_LABEL; cannot be updated" + }, + "selfLink": { + "type": "string", + "description": "URL for the object; populated by the system, read-only" + }, + "uid": { + "type": "string", + "description": "unique UUID across space and time; populated by the system; read-only" + }, + "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" + }, + "creationTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" + }, + "deletionTimestamp": { + "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" + }, + "labels": { + "type": "any", + "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" + }, + "annotations": { + "type": "any", + "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" } } }, - "v1beta3.Capability": { - "id": "v1beta3.Capability", - "properties": {} - }, - "v1beta3.ComponentCondition": { - "id": "v1beta3.ComponentCondition", - "required": [ - "type", - "status" - ], + "v1beta3.ObjectReference": { + "id": "v1beta3.ObjectReference", "properties": { - "error": { - "type": "string", - "description": "error code from health check attempt (if any)" - }, - "message": { - "type": "string", - "description": "health check message received from the component" - }, - "status": { - "type": "string", - "description": "current status of this component condition, one of True, False, Unknown" - }, - "type": { - "type": "string", - "description": "type of component condition, currently only Healthy" - } - } - }, - "v1beta3.ComponentStatus": { - "id": "v1beta3.ComponentStatus", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta3.ComponentCondition" - }, - "description": "list of component conditions observed" - }, "kind": { "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" + "description": "kind of the referent" }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + "namespace": { + "type": "string", + "description": "namespace of the referent" + }, + "name": { + "type": "string", + "description": "name of the referent" + }, + "uid": { + "type": "string", + "description": "uid of the referent" + }, + "apiVersion": { + "type": "string", + "description": "API version of the referent" + }, + "resourceVersion": { + "type": "string", + "description": "specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" + }, + "fieldPath": { + "type": "string", + "description": "if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]" } } }, @@ -9677,291 +9644,159 @@ "items" ], "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, "items": { "type": "array", "items": { "$ref": "v1beta3.ComponentStatus" }, "description": "list of component status objects" + } + } + }, + "v1beta3.ListMeta": { + "id": "v1beta3.ListMeta", + "properties": { + "selfLink": { + "type": "string", + "description": "URL for the object; populated by the system, read-only" }, + "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" + } + } + }, + "v1beta3.ComponentStatus": { + "id": "v1beta3.ComponentStatus", + "properties": { "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.Container": { - "id": "v1beta3.Container", - "required": [ - "name", - "image" - ], - "properties": { - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated" - }, - "capabilities": { - "$ref": "v1beta3.Capabilities", - "description": "capabilities for container; cannot be updated; deprecated; See SecurityContext." - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated" - }, - "env": { - "type": "array", - "items": { - "$ref": "v1beta3.EnvVar" - }, - "description": "list of environment variables to set in the container; cannot be updated" - }, - "image": { - "type": "string", - "description": "Docker image name" - }, - "imagePullPolicy": { - "type": "string", - "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" - }, - "lifecycle": { - "$ref": "v1beta3.Lifecycle", - "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" - }, - "livenessProbe": { - "$ref": "v1beta3.Probe", - "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" - }, - "name": { - "type": "string", - "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1beta3.ContainerPort" - }, - "description": "list of ports to expose from the container; cannot be updated" - }, - "privileged": { - "type": "boolean", - "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext." - }, - "readinessProbe": { - "$ref": "v1beta3.Probe", - "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" - }, - "resources": { - "$ref": "v1beta3.ResourceRequirements", - "description": "Compute Resources required by this container; cannot be updated" - }, - "securityContext": { - "$ref": "v1beta3.SecurityContext", - "description": "security options the pod should run with" - }, - "terminationMessagePath": { - "type": "string", - "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1beta3.VolumeMount" - }, - "description": "pod volumes to mount into the container's filesyste; cannot be updated" - }, - "workingDir": { - "type": "string", - "description": "container's working directory; defaults to image's default; cannot be updated" - } - } - }, - "v1beta3.ContainerPort": { - "id": "v1beta3.ContainerPort", - "required": [ - "containerPort" - ], - "properties": { - "containerPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the pod's IP address" - }, - "hostIP": { - "type": "string", - "description": "host IP to bind the port to" - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "number of port to expose on the host; most containers do not need this" - }, - "name": { - "type": "string", - "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" - }, - "protocol": { - "type": "string", - "description": "protocol for port; must be UDP or TCP; TCP if unspecified" - } - } - }, - "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": [ - "exitCode" - ], - "properties": { - "containerID": { - "type": "string", - "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'" - }, - "exitCode": { - "type": "integer", - "format": "int32", - "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.DeleteOptions": { - "id": "v1beta3.DeleteOptions", - "properties": { "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately" + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta3.ComponentCondition" + }, + "description": "list of component conditions observed" } } }, - "v1beta3.EmptyDirVolumeSource": { - "id": "v1beta3.EmptyDirVolumeSource", + "v1beta3.ComponentCondition": { + "id": "v1beta3.ComponentCondition", + "required": [ + "type", + "status" + ], "properties": { - "medium": { + "type": { "type": "string", - "description": "type of storage used to back the volume; must be an empty string (default) or Memory" + "description": "type of component condition, currently only Healthy" + }, + "status": { + "type": "string", + "description": "current status of this component condition, one of True, False, Unknown" + }, + "message": { + "type": "string", + "description": "health check message received from the component" + }, + "error": { + "type": "string", + "description": "error code from health check attempt (if any)" + } + } + }, + "v1beta3.EndpointsList": { + "id": "v1beta3.EndpointsList", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Endpoints" + }, + "description": "list of endpoints" + } + } + }, + "v1beta3.Endpoints": { + "id": "v1beta3.Endpoints", + "required": [ + "subsets" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "subsets": { + "type": "array", + "items": { + "$ref": "v1beta3.EndpointSubset" + }, + "description": "sets of addresses and ports that comprise a service" + } + } + }, + "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" } } }, @@ -10002,108 +9837,141 @@ } } }, - "v1beta3.EndpointSubset": { - "id": "v1beta3.EndpointSubset", + "json.WatchEvent": { + "id": "json.WatchEvent", "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1beta3.EndpointAddress" - }, - "description": "IP addresses which offer the related ports" + "type": { + "type": "string", + "description": "the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR" }, - "ports": { - "type": "array", - "items": { - "$ref": "v1beta3.EndpointPort" - }, - "description": "port numbers available on the related IP addresses" + "object": { + "type": "string", + "description": "the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR" } } }, - "v1beta3.Endpoints": { - "id": "v1beta3.Endpoints", - "required": [ - "subsets" - ], + "v1beta3.Status": { + "id": "v1beta3.Status", "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "subsets": { - "type": "array", - "items": { - "$ref": "v1beta3.EndpointSubset" - }, - "description": "sets of addresses and ports that comprise a service" - } - } - }, - "v1beta3.EndpointsList": { - "id": "v1beta3.EndpointsList", - "required": [ - "items" - ], - "properties": { "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.Endpoints" - }, - "description": "list of endpoints" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, "metadata": { "$ref": "v1beta3.ListMeta", "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "status": { + "type": "string", + "description": "status of the operation; either Success, or Failure" + }, + "message": { + "type": "string", + "description": "human-readable description of the status of this operation" + }, + "reason": { + "type": "string", + "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it" + }, + "details": { + "$ref": "v1beta3.StatusDetails", + "description": "extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type" + }, + "code": { + "type": "integer", + "format": "int32", + "description": "suggested HTTP return code for this status; 0 if not set" } } }, - "v1beta3.EnvVar": { - "id": "v1beta3.EnvVar", - "required": [ - "name" - ], + "v1beta3.StatusDetails": { + "id": "v1beta3.StatusDetails", "properties": { - "name": { + "id": { "type": "string", - "description": "name of the environment variable; must be a C_IDENTIFIER" + "description": "the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)" }, - "value": { + "kind": { "type": "string", - "description": "value of the environment variable; defaults to empty string" + "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind" }, - "valueFrom": { - "$ref": "v1beta3.EnvVarSource", - "description": "source for the environment variable's value; cannot be used if value is not empty" + "causes": { + "type": "array", + "items": { + "$ref": "v1beta3.StatusCause" + }, + "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes" + }, + "retryAfterSeconds": { + "type": "integer", + "format": "int32", + "description": "the number of seconds before the client should attempt to retry this operation" } } }, - "v1beta3.EnvVarSource": { - "id": "v1beta3.EnvVarSource", + "v1beta3.StatusCause": { + "id": "v1beta3.StatusCause", + "properties": { + "reason": { + "type": "string", + "description": "machine-readable description of the cause of the error; if this value is empty there is no information available" + }, + "message": { + "type": "string", + "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader" + }, + "field": { + "type": "string", + "description": "field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors" + } + } + }, + "v1beta3.DeleteOptions": { + "id": "v1beta3.DeleteOptions", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "gracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately" + } + } + }, + "v1beta3.EventList": { + "id": "v1beta3.EventList", "required": [ - "fieldRef" + "items" ], "properties": { - "fieldRef": { - "$ref": "v1beta3.ObjectFieldSelector", - "description": "selects a field of the pod; only name and namespace are supported" + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Event" + }, + "description": "list of events" } } }, @@ -10114,73 +9982,46 @@ "involvedObject" ], "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "count": { - "type": "integer", - "format": "int32", - "description": "the number of times this event has occurred" - }, - "firstTimestamp": { - "type": "string", - "description": "the time at which the event was first recorded" - }, - "involvedObject": { - "$ref": "v1beta3.ObjectReference", - "description": "object this event is about" - }, "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, - "lastTimestamp": { + "apiVersion": { "type": "string", - "description": "the time at which the most recent occurance of this event was recorded" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" + "description": "version of the schema the object should have" }, "metadata": { "$ref": "v1beta3.ObjectMeta", "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" }, + "involvedObject": { + "$ref": "v1beta3.ObjectReference", + "description": "object this event is about" + }, "reason": { "type": "string", "description": "short, machine understandable string that gives the reason for the transition into the object's current status" }, + "message": { + "type": "string", + "description": "human-readable description of the status of this operation" + }, "source": { "$ref": "v1beta3.EventSource", "description": "component reporting this event" - } - } - }, - "v1beta3.EventList": { - "id": "v1beta3.EventList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { + }, + "firstTimestamp": { "type": "string", - "description": "version of the schema the object should have" + "description": "the time at which the event was first recorded" }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.Event" - }, - "description": "list of events" - }, - "kind": { + "lastTimestamp": { "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" + "description": "the time at which the most recent occurance of this event was recorded" }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + "count": { + "type": "integer", + "format": "int32", + "description": "the number of times this event has occurred" } } }, @@ -10197,15 +10038,151 @@ } } }, - "v1beta3.ExecAction": { - "id": "v1beta3.ExecAction", + "v1beta3.LimitRangeList": { + "id": "v1beta3.LimitRangeList", + "required": [ + "items" + ], "properties": { - "command": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { "type": "array", "items": { - "type": "string" + "$ref": "v1beta3.LimitRange" }, - "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" + "description": "items is a list of LimitRange objects" + } + } + }, + "v1beta3.LimitRange": { + "id": "v1beta3.LimitRange", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.LimitRangeSpec", + "description": "spec defines the limits enforced; http://docs.k8s.io/api-conventions.md#spec-and-status" + } + } + }, + "v1beta3.LimitRangeSpec": { + "id": "v1beta3.LimitRangeSpec", + "required": [ + "limits" + ], + "properties": { + "limits": { + "type": "array", + "items": { + "$ref": "v1beta3.LimitRangeItem" + }, + "description": "limits is the list of LimitRangeItem objects that are enforced" + } + } + }, + "v1beta3.LimitRangeItem": { + "id": "v1beta3.LimitRangeItem", + "properties": { + "type": { + "type": "string", + "description": "type of resource that this limit applies to" + }, + "max": { + "type": "any", + "description": "max usage constraints on this kind by resource name" + }, + "min": { + "type": "any", + "description": "min usage constraints on this kind by resource name" + }, + "default": { + "type": "any", + "description": "default values on this kind by resource name if omitted" + } + } + }, + "v1beta3.NamespaceList": { + "id": "v1beta3.NamespaceList", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Namespace" + }, + "description": "items is the list of Namespace objects in the list" + } + } + }, + "v1beta3.Namespace": { + "id": "v1beta3.Namespace", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.NamespaceSpec", + "description": "spec defines the behavior of the Namespace; http://docs.k8s.io/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "v1beta3.NamespaceStatus", + "description": "status describes the current status of a Namespace; http://docs.k8s.io/api-conventions.md#spec-and-status" + } + } + }, + "v1beta3.NamespaceSpec": { + "id": "v1beta3.NamespaceSpec", + "properties": { + "finalizers": { + "type": "array", + "items": { + "$ref": "v1beta3.FinalizerName" + }, + "description": "an opaque list of values that must be empty to permanently remove object from storage" } } }, @@ -10213,6 +10190,419 @@ "id": "v1beta3.FinalizerName", "properties": {} }, + "v1beta3.NamespaceStatus": { + "id": "v1beta3.NamespaceStatus", + "properties": { + "phase": { + "type": "string", + "description": "phase is the current lifecycle phase of the namespace" + } + } + }, + "v1beta3.NodeList": { + "id": "v1beta3.NodeList", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Node" + }, + "description": "list of nodes" + } + } + }, + "v1beta3.Node": { + "id": "v1beta3.Node", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.NodeSpec", + "description": "specification of a node; http://docs.k8s.io/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "v1beta3.NodeStatus", + "description": "most recently observed status of the node; populated by the system, read-only; http://docs.k8s.io/api-conventions.md#spec-and-status" + } + } + }, + "v1beta3.NodeSpec": { + "id": "v1beta3.NodeSpec", + "properties": { + "podCIDR": { + "type": "string", + "description": "pod IP range assigned to the node" + }, + "externalID": { + "type": "string", + "description": "deprecated. External ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty." + }, + "providerID": { + "type": "string", + "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e" + }, + "unschedulable": { + "type": "boolean", + "description": "disable pod scheduling on the node" + } + } + }, + "v1beta3.NodeStatus": { + "id": "v1beta3.NodeStatus", + "properties": { + "capacity": { + "type": "any", + "description": "compute resource capacity of the node; http://docs.k8s.io/resources.md" + }, + "phase": { + "type": "string", + "description": "most recently observed lifecycle phase of the node" + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta3.NodeCondition" + }, + "description": "list of node conditions observed" + }, + "addresses": { + "type": "array", + "items": { + "$ref": "v1beta3.NodeAddress" + }, + "description": "list of addresses reachable to the node" + }, + "nodeInfo": { + "$ref": "v1beta3.NodeSystemInfo", + "description": "set of ids/uuids to uniquely identify the node" + } + } + }, + "v1beta3.NodeCondition": { + "id": "v1beta3.NodeCondition", + "required": [ + "type", + "status" + ], + "properties": { + "type": { + "type": "string", + "description": "type of node condition, currently only Ready" + }, + "status": { + "type": "string", + "description": "status of the condition, one of True, False, Unknown" + }, + "lastHeartbeatTime": { + "type": "string", + "description": "last time we got an update on a given condition" + }, + "lastTransitionTime": { + "type": "string", + "description": "last time the condition transit from one status to another" + }, + "reason": { + "type": "string", + "description": "(brief) reason for the condition's last transition" + }, + "message": { + "type": "string", + "description": "human readable message indicating details about last transition" + } + } + }, + "v1beta3.NodeAddress": { + "id": "v1beta3.NodeAddress", + "required": [ + "type", + "address" + ], + "properties": { + "type": { + "type": "string", + "description": "node address type, one of Hostname, ExternalIP or InternalIP" + }, + "address": { + "type": "string", + "description": "the node address" + } + } + }, + "v1beta3.NodeSystemInfo": { + "id": "v1beta3.NodeSystemInfo", + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion" + ], + "properties": { + "machineID": { + "type": "string", + "description": "machine-id reported by the node" + }, + "systemUUID": { + "type": "string", + "description": "system-uuid reported by the node" + }, + "bootID": { + "type": "string", + "description": "boot id is the boot-id reported by the node" + }, + "kernelVersion": { + "type": "string", + "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)" + }, + "osImage": { + "type": "string", + "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))" + }, + "containerRuntimeVersion": { + "type": "string", + "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)" + }, + "kubeletVersion": { + "type": "string", + "description": "Kubelet version reported by the node" + }, + "kubeProxyVersion": { + "type": "string", + "description": "Kube-proxy version reported by the node" + } + } + }, + "v1beta3.PersistentVolumeClaimList": { + "id": "v1beta3.PersistentVolumeClaimList", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.PersistentVolumeClaim" + }, + "description": "a list of persistent volume claims" + } + } + }, + "v1beta3.PersistentVolumeClaim": { + "id": "v1beta3.PersistentVolumeClaim", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.PersistentVolumeClaimSpec", + "description": "the desired characteristics of a volume" + }, + "status": { + "$ref": "v1beta3.PersistentVolumeClaimStatus", + "description": "the current status of a persistent volume claim; read-only" + } + } + }, + "v1beta3.PersistentVolumeClaimSpec": { + "id": "v1beta3.PersistentVolumeClaimSpec", + "properties": { + "accessModes": { + "type": "array", + "items": { + "$ref": "v1beta3.PersistentVolumeAccessMode" + }, + "description": "the desired access modes the volume should have" + }, + "resources": { + "$ref": "v1beta3.ResourceRequirements", + "description": "the desired resources the volume should have" + }, + "volumeName": { + "type": "string", + "description": "the binding reference to the persistent volume backing this claim" + } + } + }, + "v1beta3.PersistentVolumeAccessMode": { + "id": "v1beta3.PersistentVolumeAccessMode", + "properties": {} + }, + "v1beta3.ResourceRequirements": { + "id": "v1beta3.ResourceRequirements", + "properties": { + "limits": { + "type": "any", + "description": "Maximum amount of compute resources allowed" + }, + "requests": { + "type": "any", + "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now" + } + } + }, + "v1beta3.PersistentVolumeClaimStatus": { + "id": "v1beta3.PersistentVolumeClaimStatus", + "properties": { + "phase": { + "type": "string", + "description": "the current phase of the claim" + }, + "accessModes": { + "type": "array", + "items": { + "$ref": "v1beta3.PersistentVolumeAccessMode" + }, + "description": "the actual access modes the volume has" + }, + "capacity": { + "type": "any", + "description": "the actual resources the volume has" + } + } + }, + "v1beta3.PersistentVolumeList": { + "id": "v1beta3.PersistentVolumeList", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.PersistentVolume" + }, + "description": "list of persistent volumes" + } + } + }, + "v1beta3.PersistentVolume": { + "id": "v1beta3.PersistentVolume", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.PersistentVolumeSpec", + "description": "specification of a persistent volume as provisioned by an administrator" + }, + "status": { + "$ref": "v1beta3.PersistentVolumeStatus", + "description": "current status of a persistent volume; populated by the system, read-only" + } + } + }, + "v1beta3.PersistentVolumeSpec": { + "id": "v1beta3.PersistentVolumeSpec", + "properties": { + "capacity": { + "type": "any", + "description": "a description of the persistent volume's resources and capacity" + }, + "gcePersistentDisk": { + "$ref": "v1beta3.GCEPersistentDiskVolumeSource", + "description": "GCE disk resource provisioned by an admin" + }, + "awsElasticBlockStore": { + "$ref": "v1beta3.AWSElasticBlockStoreVolumeSource", + "description": "AWS disk resource provisioned by an admin" + }, + "hostPath": { + "$ref": "v1beta3.HostPathVolumeSource", + "description": "a HostPath provisioned by a developer or tester; for develment use only" + }, + "glusterfs": { + "$ref": "v1beta3.GlusterfsVolumeSource", + "description": "Glusterfs volume resource provisioned by an admin" + }, + "nfs": { + "$ref": "v1beta3.NFSVolumeSource", + "description": "NFS volume resource provisioned by an admin" + }, + "rbd": { + "$ref": "v1beta3.RBDVolumeSource", + "description": "rados block volume that will be mounted on the host machine" + }, + "iscsi": { + "$ref": "v1beta3.ISCSIVolumeSource", + "description": "an iSCSI disk resource provisioned by an admin" + }, + "accessModes": { + "type": "array", + "items": { + "$ref": "v1beta3.PersistentVolumeAccessMode" + }, + "description": "all ways the volume can be mounted" + }, + "claimRef": { + "$ref": "v1beta3.ObjectReference", + "description": "when bound, a reference to the bound claim" + } + } + }, "v1beta3.GCEPersistentDiskVolumeSource": { "id": "v1beta3.GCEPersistentDiskVolumeSource", "required": [ @@ -10220,6 +10610,10 @@ "fsType" ], "properties": { + "pdName": { + "type": "string", + "description": "unique name of the PD resource in GCE" + }, "fsType": { "type": "string", "description": "file system type to mount, such as ext4, xfs, ntfs" @@ -10229,9 +10623,31 @@ "format": "int32", "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" }, - "pdName": { + "readOnly": { + "type": "boolean", + "description": "read-only if true, read-write otherwise (false or unspecified)" + } + } + }, + "v1beta3.AWSElasticBlockStoreVolumeSource": { + "id": "v1beta3.AWSElasticBlockStoreVolumeSource", + "required": [ + "volumeID", + "fsType" + ], + "properties": { + "volumeID": { "type": "string", - "description": "unique name of the PD resource in GCE" + "description": "unique id of the PD resource in AWS" + }, + "fsType": { + "type": "string", + "description": "file system type to mount, such as ext4, xfs, ntfs" + }, + "partition": { + "type": "integer", + "format": "int32", + "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted" }, "readOnly": { "type": "boolean", @@ -10239,19 +10655,15 @@ } } }, - "v1beta3.GitRepoVolumeSource": { - "id": "v1beta3.GitRepoVolumeSource", + "v1beta3.HostPathVolumeSource": { + "id": "v1beta3.HostPathVolumeSource", "required": [ - "repository" + "path" ], "properties": { - "repository": { + "path": { "type": "string", - "description": "repository URL" - }, - "revision": { - "type": "string", - "description": "commit hash for the specified revision" + "description": "path of the directory on the host" } } }, @@ -10276,16 +10688,582 @@ } } }, + "v1beta3.NFSVolumeSource": { + "id": "v1beta3.NFSVolumeSource", + "required": [ + "server", + "path" + ], + "properties": { + "server": { + "type": "string", + "description": "the hostname or IP address of the NFS server" + }, + "path": { + "type": "string", + "description": "the path that is exported by the NFS server" + }, + "readOnly": { + "type": "boolean", + "description": "forces the NFS export to be mounted with read-only permissions" + } + } + }, + "v1beta3.RBDVolumeSource": { + "id": "v1beta3.RBDVolumeSource", + "required": [ + "monitors", + "image", + "pool", + "user", + "keyring", + "secretRef" + ], + "properties": { + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "a collection of Ceph monitors" + }, + "image": { + "type": "string", + "description": "rados image name" + }, + "fsType": { + "type": "string", + "description": "file system type to mount, such as ext4, xfs, ntfs" + }, + "pool": { + "type": "string", + "description": "rados pool name; default is rbd; optional" + }, + "user": { + "type": "string", + "description": "rados user name; default is admin; optional" + }, + "keyring": { + "type": "string", + "description": "keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional" + }, + "secretRef": { + "$ref": "v1beta3.LocalObjectReference", + "description": "name of a secret to authenticate the RBD user; if provided overrides keyring; optional" + }, + "readOnly": { + "type": "boolean", + "description": "rbd volume to be mounted with read-only permissions" + } + } + }, + "v1beta3.LocalObjectReference": { + "id": "v1beta3.LocalObjectReference", + "properties": { + "name": { + "type": "string", + "description": "name of the referent" + } + } + }, + "v1beta3.ISCSIVolumeSource": { + "id": "v1beta3.ISCSIVolumeSource", + "required": [ + "targetPortal", + "iqn", + "lun", + "fsType" + ], + "properties": { + "targetPortal": { + "type": "string", + "description": "iSCSI target portal" + }, + "iqn": { + "type": "string", + "description": "iSCSI Qualified Name" + }, + "lun": { + "type": "integer", + "format": "int32", + "description": "iscsi target lun number" + }, + "fsType": { + "type": "string", + "description": "file system type to mount, such as ext4, xfs, ntfs" + }, + "readOnly": { + "type": "boolean", + "description": "read-only if true, read-write otherwise (false or unspecified)" + } + } + }, + "v1beta3.PersistentVolumeStatus": { + "id": "v1beta3.PersistentVolumeStatus", + "properties": { + "phase": { + "type": "string", + "description": "the current phase of a persistent volume" + } + } + }, + "v1beta3.PodList": { + "id": "v1beta3.PodList", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Pod" + }, + "description": "list of pods" + } + } + }, + "v1beta3.Pod": { + "id": "v1beta3.Pod", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1beta3.PodSpec", + "description": "specification of the desired behavior of the pod; http://docs.k8s.io/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "v1beta3.PodStatus", + "description": "most recently observed status of the pod; populated by the system, read-only; http://docs.k8s.io/api-conventions.md#spec-and-status" + } + } + }, + "v1beta3.PodSpec": { + "id": "v1beta3.PodSpec", + "required": [ + "containers", + "serviceAccount" + ], + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "v1beta3.Volume" + }, + "description": "list of volumes that can be mounted by containers belonging to the pod" + }, + "containers": { + "type": "array", + "items": { + "$ref": "v1beta3.Container" + }, + "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod" + }, + "restartPolicy": { + "type": "string", + "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways" + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process" + }, + "activeDeadlineSeconds": { + "type": "integer", + "format": "int64" + }, + "dnsPolicy": { + "type": "string", + "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" + }, + "nodeSelector": { + "type": "any", + "description": "selector which must match a node's labels for the pod to be scheduled on that node" + }, + "serviceAccount": { + "type": "string", + "description": "name of the ServiceAccount to use to run this pod" + }, + "host": { + "type": "string", + "description": "host requested for this pod" + }, + "hostNetwork": { + "type": "boolean", + "description": "host networking requested for this pod" + }, + "imagePullSecrets": { + "type": "array", + "items": { + "$ref": "v1beta3.LocalObjectReference" + }, + "description": "list of references to secrets in the same namespace available for pulling the container images" + } + } + }, + "v1beta3.Volume": { + "id": "v1beta3.Volume", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "volume name; must be a DNS_LABEL and unique within the pod" + }, + "hostPath": { + "$ref": "v1beta3.HostPathVolumeSource", + "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" + }, + "emptyDir": { + "$ref": "v1beta3.EmptyDirVolumeSource", + "description": "temporary directory that shares a pod's lifetime" + }, + "gcePersistentDisk": { + "$ref": "v1beta3.GCEPersistentDiskVolumeSource", + "description": "GCE disk resource attached to the host machine on demand" + }, + "awsElasticBlockStore": { + "$ref": "v1beta3.AWSElasticBlockStoreVolumeSource", + "description": "AWS disk resource attached to the host machine on demand" + }, + "gitRepo": { + "$ref": "v1beta3.GitRepoVolumeSource", + "description": "git repository at a particular revision" + }, + "secret": { + "$ref": "v1beta3.SecretVolumeSource", + "description": "secret to populate volume" + }, + "nfs": { + "$ref": "v1beta3.NFSVolumeSource", + "description": "NFS volume that will be mounted in the host machine" + }, + "iscsi": { + "$ref": "v1beta3.ISCSIVolumeSource", + "description": "iSCSI disk attached to host machine on demand" + }, + "glusterfs": { + "$ref": "v1beta3.GlusterfsVolumeSource", + "description": "Glusterfs volume that will be mounted on the host machine " + }, + "persistentVolumeClaim": { + "$ref": "v1beta3.PersistentVolumeClaimVolumeSource", + "description": "a reference to a PersistentVolumeClaim in the same namespace" + }, + "rbd": { + "$ref": "v1beta3.RBDVolumeSource", + "description": "rados block volume that will be mounted on the host machine" + } + } + }, + "v1beta3.EmptyDirVolumeSource": { + "id": "v1beta3.EmptyDirVolumeSource", + "properties": { + "medium": { + "type": "string", + "description": "type of storage used to back the volume; must be an empty string (default) or Memory" + } + } + }, + "v1beta3.GitRepoVolumeSource": { + "id": "v1beta3.GitRepoVolumeSource", + "required": [ + "repository" + ], + "properties": { + "repository": { + "type": "string", + "description": "repository URL" + }, + "revision": { + "type": "string", + "description": "commit hash for the specified revision" + } + } + }, + "v1beta3.SecretVolumeSource": { + "id": "v1beta3.SecretVolumeSource", + "required": [ + "secretName" + ], + "properties": { + "secretName": { + "type": "string", + "description": "secretName is the name of a secret in the pod's namespace" + } + } + }, + "v1beta3.PersistentVolumeClaimVolumeSource": { + "id": "v1beta3.PersistentVolumeClaimVolumeSource", + "properties": { + "claimName": { + "type": "string", + "description": "the name of the claim in the same namespace to be mounted as a volume" + }, + "readOnly": { + "type": "boolean", + "description": "mount volume as read-only when true; default false" + } + } + }, + "v1beta3.Container": { + "id": "v1beta3.Container", + "required": [ + "name", + "image" + ], + "properties": { + "name": { + "type": "string", + "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" + }, + "image": { + "type": "string", + "description": "Docker image name" + }, + "command": { + "type": "array", + "items": { + "type": "string" + }, + "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not" + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not" + }, + "workingDir": { + "type": "string", + "description": "container's working directory; defaults to image's default; cannot be updated" + }, + "ports": { + "type": "array", + "items": { + "$ref": "v1beta3.ContainerPort" + }, + "description": "list of ports to expose from the container; cannot be updated" + }, + "env": { + "type": "array", + "items": { + "$ref": "v1beta3.EnvVar" + }, + "description": "list of environment variables to set in the container; cannot be updated" + }, + "resources": { + "$ref": "v1beta3.ResourceRequirements", + "description": "Compute Resources required by this container; cannot be updated" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "v1beta3.VolumeMount" + }, + "description": "pod volumes to mount into the container's filesyste; cannot be updated" + }, + "livenessProbe": { + "$ref": "v1beta3.Probe", + "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" + }, + "readinessProbe": { + "$ref": "v1beta3.Probe", + "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" + }, + "lifecycle": { + "$ref": "v1beta3.Lifecycle", + "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" + }, + "terminationMessagePath": { + "type": "string", + "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated" + }, + "privileged": { + "type": "boolean", + "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext." + }, + "imagePullPolicy": { + "type": "string", + "description": "image pull policy; one of Always, Never, IfNotPresent; defaults to Always if :latest tag is specified, or IfNotPresent otherwise; cannot be updated" + }, + "capabilities": { + "$ref": "v1beta3.Capabilities", + "description": "capabilities for container; cannot be updated; deprecated; See SecurityContext." + }, + "securityContext": { + "$ref": "v1beta3.SecurityContext", + "description": "security options the pod should run with" + } + } + }, + "v1beta3.ContainerPort": { + "id": "v1beta3.ContainerPort", + "required": [ + "containerPort" + ], + "properties": { + "name": { + "type": "string", + "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" + }, + "hostPort": { + "type": "integer", + "format": "int32", + "description": "number of port to expose on the host; most containers do not need this" + }, + "containerPort": { + "type": "integer", + "format": "int32", + "description": "number of port to expose on the pod's IP address" + }, + "protocol": { + "type": "string", + "description": "protocol for port; must be UDP or TCP; TCP if unspecified" + }, + "hostIP": { + "type": "string", + "description": "host IP to bind the port to" + } + } + }, + "v1beta3.EnvVar": { + "id": "v1beta3.EnvVar", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "name of the environment variable; must be a C_IDENTIFIER" + }, + "value": { + "type": "string", + "description": "value of the environment variable; defaults to empty string; variable references $(VAR_NAME) are expanded using the previously defined environment varibles in the container and any service environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not" + }, + "valueFrom": { + "$ref": "v1beta3.EnvVarSource", + "description": "source for the environment variable's value; cannot be used if value is not empty" + } + } + }, + "v1beta3.EnvVarSource": { + "id": "v1beta3.EnvVarSource", + "required": [ + "fieldRef" + ], + "properties": { + "fieldRef": { + "$ref": "v1beta3.ObjectFieldSelector", + "description": "selects a field of the pod; only name and namespace are supported" + } + } + }, + "v1beta3.ObjectFieldSelector": { + "id": "v1beta3.ObjectFieldSelector", + "required": [ + "fieldPath" + ], + "properties": { + "apiVersion": { + "type": "string", + "description": "version of the schema that fieldPath is written in terms of; defaults to v1beta3" + }, + "fieldPath": { + "type": "string", + "description": "path of the field to select in the specified API version" + } + } + }, + "v1beta3.VolumeMount": { + "id": "v1beta3.VolumeMount", + "required": [ + "name", + "mountPath" + ], + "properties": { + "name": { + "type": "string", + "description": "name of the volume to mount" + }, + "readOnly": { + "type": "boolean", + "description": "mounted read-only if true, read-write otherwise (false or unspecified)" + }, + "mountPath": { + "type": "string", + "description": "path within the container at which the volume should be mounted" + } + } + }, + "v1beta3.Probe": { + "id": "v1beta3.Probe", + "properties": { + "exec": { + "$ref": "v1beta3.ExecAction", + "description": "exec-based handler" + }, + "httpGet": { + "$ref": "v1beta3.HTTPGetAction", + "description": "HTTP-based handler" + }, + "tcpSocket": { + "$ref": "v1beta3.TCPSocketAction", + "description": "TCP-based handler; TCP hooks not yet supported" + }, + "initialDelaySeconds": { + "type": "integer", + "format": "int64", + "description": "number of seconds after the container has started before liveness probes are initiated" + }, + "timeoutSeconds": { + "type": "integer", + "format": "int64", + "description": "number of seconds after which liveness probes timeout; defaults to 1 second" + } + } + }, + "v1beta3.ExecAction": { + "id": "v1beta3.ExecAction", + "properties": { + "command": { + "type": "array", + "items": { + "type": "string" + }, + "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" + } + } + }, "v1beta3.HTTPGetAction": { "id": "v1beta3.HTTPGetAction", "required": [ "port" ], "properties": { - "host": { - "type": "string", - "description": "hostname to connect to; defaults to pod IP" - }, "path": { "type": "string", "description": "path to access on the HTTP server" @@ -10293,6 +11271,35 @@ "port": { "type": "string", "description": "number or name of the port to access on the container" + }, + "host": { + "type": "string", + "description": "hostname to connect to; defaults to pod IP" + } + } + }, + "v1beta3.TCPSocketAction": { + "id": "v1beta3.TCPSocketAction", + "required": [ + "port" + ], + "properties": { + "port": { + "type": "string", + "description": "number of name of the port to access on the container" + } + } + }, + "v1beta3.Lifecycle": { + "id": "v1beta3.Lifecycle", + "properties": { + "postStart": { + "$ref": "v1beta3.Handler", + "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" + }, + "preStop": { + "$ref": "v1beta3.Handler", + "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" } } }, @@ -10313,780 +11320,108 @@ } } }, - "v1beta3.HostPathVolumeSource": { - "id": "v1beta3.HostPathVolumeSource", - "required": [ - "path" - ], + "v1beta3.Capabilities": { + "id": "v1beta3.Capabilities", "properties": { - "path": { - "type": "string", - "description": "path of the directory on the host" + "add": { + "type": "array", + "items": { + "$ref": "v1beta3.Capability" + }, + "description": "added capabilities" + }, + "drop": { + "type": "array", + "items": { + "$ref": "v1beta3.Capability" + }, + "description": "droped capabilities" } } }, - "v1beta3.ISCSIVolumeSource": { - "id": "v1beta3.ISCSIVolumeSource", - "required": [ - "targetPortal", - "iqn", - "lun", - "fsType" - ], + "v1beta3.Capability": { + "id": "v1beta3.Capability", + "properties": {} + }, + "v1beta3.SecurityContext": { + "id": "v1beta3.SecurityContext", "properties": { - "fsType": { - "type": "string", - "description": "file system type to mount, such as ext4, xfs, ntfs" + "capabilities": { + "$ref": "v1beta3.Capabilities", + "description": "the linux capabilites that should be added or removed" }, - "iqn": { - "type": "string", - "description": "iSCSI Qualified Name" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iscsi target lun number" - }, - "readOnly": { + "privileged": { "type": "boolean", - "description": "read-only if true, read-write otherwise (false or unspecified)" + "description": "run the container in privileged mode" }, - "targetPortal": { - "type": "string", - "description": "iSCSI target portal" + "seLinuxOptions": { + "$ref": "v1beta3.SELinuxOptions", + "description": "options that control the SELinux labels applied" + }, + "runAsUser": { + "type": "integer", + "format": "int64", + "description": "the user id that runs the first process in the container" } } }, - "v1beta3.Lifecycle": { - "id": "v1beta3.Lifecycle", + "v1beta3.SELinuxOptions": { + "id": "v1beta3.SELinuxOptions", "properties": { - "postStart": { - "$ref": "v1beta3.Handler", - "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" - }, - "preStop": { - "$ref": "v1beta3.Handler", - "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" - } - } - }, - "v1beta3.LimitRange": { - "id": "v1beta3.LimitRange", - "properties": { - "apiVersion": { + "user": { "type": "string", - "description": "version of the schema the object should have" + "description": "the user label to apply to the container" }, - "kind": { + "role": { "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.LimitRangeSpec", - "description": "spec defines the limits enforced; http://docs.k8s.io/api-conventions.md#spec-and-status" - } - } - }, - "v1beta3.LimitRangeItem": { - "id": "v1beta3.LimitRangeItem", - "properties": { - "default": { - "type": "any", - "description": "default values on this kind by resource name if omitted" - }, - "max": { - "type": "any", - "description": "max usage constraints on this kind by resource name" - }, - "min": { - "type": "any", - "description": "min usage constraints on this kind by resource name" + "description": "the role label to apply to the container" }, "type": { "type": "string", - "description": "type of resource that this limit applies to" + "description": "the type label to apply to the container" + }, + "level": { + "type": "string", + "description": "the level label to apply to the container" } } }, - "v1beta3.LimitRangeList": { - "id": "v1beta3.LimitRangeList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.LimitRange" - }, - "description": "items is a list of LimitRange objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.LimitRangeSpec": { - "id": "v1beta3.LimitRangeSpec", - "required": [ - "limits" - ], - "properties": { - "limits": { - "type": "array", - "items": { - "$ref": "v1beta3.LimitRangeItem" - }, - "description": "limits is the list of LimitRangeItem objects that are enforced" - } - } - }, - "v1beta3.ListMeta": { - "id": "v1beta3.ListMeta", - "properties": { - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - } - } - }, - "v1beta3.LocalObjectReference": { - "id": "v1beta3.LocalObjectReference", - "properties": { - "name": { - "type": "string", - "description": "name of the referent" - } - } - }, - "v1beta3.NFSVolumeSource": { - "id": "v1beta3.NFSVolumeSource", - "required": [ - "server", - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "the path that is exported by the NFS server" - }, - "readOnly": { - "type": "boolean", - "description": "forces the NFS export to be mounted with read-only permissions" - }, - "server": { - "type": "string", - "description": "the hostname or IP address of the NFS server" - } - } - }, - "v1beta3.Namespace": { - "id": "v1beta3.Namespace", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.NamespaceSpec", - "description": "spec defines the behavior of the Namespace; http://docs.k8s.io/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta3.NamespaceStatus", - "description": "status describes the current status of a Namespace; http://docs.k8s.io/api-conventions.md#spec-and-status" - } - } - }, - "v1beta3.NamespaceList": { - "id": "v1beta3.NamespaceList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.Namespace" - }, - "description": "items is the list of Namespace objects in the list" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.NamespaceSpec": { - "id": "v1beta3.NamespaceSpec", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1beta3.FinalizerName" - }, - "description": "an opaque list of values that must be empty to permanently remove object from storage" - } - } - }, - "v1beta3.NamespaceStatus": { - "id": "v1beta3.NamespaceStatus", + "v1beta3.PodStatus": { + "id": "v1beta3.PodStatus", "properties": { "phase": { "type": "string", - "description": "phase is the current lifecycle phase of the namespace" - } - } - }, - "v1beta3.Node": { - "id": "v1beta3.Node", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" + "description": "current condition of the pod." }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.NodeSpec", - "description": "specification of a node; http://docs.k8s.io/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta3.NodeStatus", - "description": "most recently observed status of the node; populated by the system, read-only; http://docs.k8s.io/api-conventions.md#spec-and-status" - } - } - }, - "v1beta3.NodeAddress": { - "id": "v1beta3.NodeAddress", - "required": [ - "type", - "address" - ], - "properties": { - "address": { - "type": "string", - "description": "the node address" - }, - "type": { - "type": "string", - "description": "node address type, one of Hostname, ExternalIP or InternalIP" - } - } - }, - "v1beta3.NodeCondition": { - "id": "v1beta3.NodeCondition", - "required": [ - "type", - "status" - ], - "properties": { - "lastHeartbeatTime": { - "type": "string", - "description": "last time we got an update on a given condition" - }, - "lastTransitionTime": { - "type": "string", - "description": "last time the condition transit from one status to another" + "Condition": { + "type": "array", + "items": { + "$ref": "v1beta3.PodCondition" + }, + "description": "current service state of pod" }, "message": { "type": "string", - "description": "human readable message indicating details about last transition" + "description": "human readable message indicating details about why the pod is in this condition" }, - "reason": { + "hostIP": { "type": "string", - "description": "(brief) reason for the condition's last transition" + "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" }, - "status": { + "podIP": { "type": "string", - "description": "status of the condition, one of True, False, Unknown" + "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" }, - "type": { + "startTime": { "type": "string", - "description": "type of node condition, currently only Ready" - } - } - }, - "v1beta3.NodeList": { - "id": "v1beta3.NodeList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" + "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." }, - "items": { + "containerStatuses": { "type": "array", "items": { - "$ref": "v1beta3.Node" + "$ref": "v1beta3.ContainerStatus" }, - "description": "list of nodes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.NodeSpec": { - "id": "v1beta3.NodeSpec", - "properties": { - "externalID": { - "type": "string", - "description": "external ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty." - }, - "podCIDR": { - "type": "string", - "description": "pod IP range assigned to the node" - }, - "unschedulable": { - "type": "boolean", - "description": "disable pod scheduling on the node" - } - } - }, - "v1beta3.NodeStatus": { - "id": "v1beta3.NodeStatus", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1beta3.NodeAddress" - }, - "description": "list of addresses reachable to the node" - }, - "capacity": { - "type": "any", - "description": "compute resource capacity of the node; http://docs.k8s.io/resources.md" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta3.NodeCondition" - }, - "description": "list of node conditions observed" - }, - "nodeInfo": { - "$ref": "v1beta3.NodeSystemInfo", - "description": "set of ids/uuids to uniquely identify the node" - }, - "phase": { - "type": "string", - "description": "most recently observed lifecycle phase of the node" - } - } - }, - "v1beta3.NodeSystemInfo": { - "id": "v1beta3.NodeSystemInfo", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion" - ], - "properties": { - "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)" - }, - "kubeProxyVersion": { - "type": "string", - "description": "Kube-proxy version reported by the node" - }, - "kubeletVersion": { - "type": "string", - "description": "Kubelet version reported by the node" - }, - "machineID": { - "type": "string", - "description": "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 reported by the node" - } - } - }, - "v1beta3.ObjectFieldSelector": { - "id": "v1beta3.ObjectFieldSelector", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema that fieldPath is written in terms of; defaults to v1beta3" - }, - "fieldPath": { - "type": "string", - "description": "path of the field to select in the specified API version" - } - } - }, - "v1beta3.ObjectMeta": { - "id": "v1beta3.ObjectMeta", - "properties": { - "annotations": { - "type": "any", - "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" - }, - "creationTimestamp": { - "type": "string", - "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" - }, - "deletionTimestamp": { - "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" - }, - "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" - }, - "labels": { - "type": "any", - "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" - }, - "name": { - "type": "string", - "description": "string that identifies an object. Must be unique within a namespace; cannot be updated" - }, - "namespace": { - "type": "string", - "description": "namespace of the object; must be a DNS_LABEL; cannot be updated" - }, - "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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "selfLink": { - "type": "string", - "description": "URL for the object; populated by the system, read-only" - }, - "uid": { - "type": "string", - "description": "unique UUID across space and time; populated by the system; read-only" - } - } - }, - "v1beta3.ObjectReference": { - "id": "v1beta3.ObjectReference", - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent" - }, - "fieldPath": { - "type": "string", - "description": "if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]" - }, - "kind": { - "type": "string", - "description": "kind of the referent" - }, - "name": { - "type": "string", - "description": "name of the referent" - }, - "namespace": { - "type": "string", - "description": "namespace of the referent" - }, - "resourceVersion": { - "type": "string", - "description": "specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency" - }, - "uid": { - "type": "string", - "description": "uid of the referent" - } - } - }, - "v1beta3.PersistentVolume": { - "id": "v1beta3.PersistentVolume", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.PersistentVolumeSpec", - "description": "specification of a persistent volume as provisioned by an administrator" - }, - "status": { - "$ref": "v1beta3.PersistentVolumeStatus", - "description": "current status of a persistent volume; populated by the system, read-only" - } - } - }, - "v1beta3.PersistentVolumeAccessMode": { - "id": "v1beta3.PersistentVolumeAccessMode", - "properties": {} - }, - "v1beta3.PersistentVolumeClaim": { - "id": "v1beta3.PersistentVolumeClaim", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.PersistentVolumeClaimSpec", - "description": "the desired characteristics of a volume" - }, - "status": { - "$ref": "v1beta3.PersistentVolumeClaimStatus", - "description": "the current status of a persistent volume claim; read-only" - } - } - }, - "v1beta3.PersistentVolumeClaimList": { - "id": "v1beta3.PersistentVolumeClaimList", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.PersistentVolumeClaim" - }, - "description": "a list of persistent volume claims" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" - } - } - }, - "v1beta3.PersistentVolumeClaimSpec": { - "id": "v1beta3.PersistentVolumeClaimSpec", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta3.PersistentVolumeAccessMode" - }, - "description": "the desired access modes the volume should have" - }, - "resources": { - "$ref": "v1beta3.ResourceRequirements", - "description": "the desired resources the volume should have" - }, - "volumeName": { - "type": "string", - "description": "the binding reference to the persistent volume backing this claim" - } - } - }, - "v1beta3.PersistentVolumeClaimStatus": { - "id": "v1beta3.PersistentVolumeClaimStatus", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta3.PersistentVolumeAccessMode" - }, - "description": "the actual access modes the volume has" - }, - "capacity": { - "type": "any", - "description": "the actual resources the volume has" - }, - "phase": { - "type": "string", - "description": "the current phase of the claim" - } - } - }, - "v1beta3.PersistentVolumeClaimVolumeSource": { - "id": "v1beta3.PersistentVolumeClaimVolumeSource", - "properties": { - "claimName": { - "type": "string", - "description": "the name of the claim in the same namespace to be mounted as a volume" - }, - "readOnly": { - "type": "boolean", - "description": "mount volume as read-only when true; default false" - } - } - }, - "v1beta3.PersistentVolumeList": { - "id": "v1beta3.PersistentVolumeList", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.PersistentVolume" - }, - "description": "list of persistent volumes" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" - } - } - }, - "v1beta3.PersistentVolumeSpec": { - "id": "v1beta3.PersistentVolumeSpec", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1beta3.PersistentVolumeAccessMode" - }, - "description": "all ways the volume can be mounted" - }, - "awsElasticBlockStore": { - "$ref": "v1beta3.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource provisioned by an admin" - }, - "capacity": { - "type": "any", - "description": "a description of the persistent volume's resources and capacity" - }, - "claimRef": { - "$ref": "v1beta3.ObjectReference", - "description": "when bound, a reference to the bound claim" - }, - "gcePersistentDisk": { - "$ref": "v1beta3.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource provisioned by an admin" - }, - "glusterfs": { - "$ref": "v1beta3.GlusterfsVolumeSource", - "description": "Glusterfs volume resource provisioned by an admin" - }, - "hostPath": { - "$ref": "v1beta3.HostPathVolumeSource", - "description": "a HostPath provisioned by a developer or tester; for develment use only" - }, - "nfs": { - "$ref": "v1beta3.NFSVolumeSource", - "description": "NFS volume resource provisioned by an admin" - } - } - }, - "v1beta3.PersistentVolumeStatus": { - "id": "v1beta3.PersistentVolumeStatus", - "properties": { - "phase": { - "type": "string", - "description": "the current phase of a persistent volume" - } - } - }, - "v1beta3.Pod": { - "id": "v1beta3.Pod", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta3.PodSpec", - "description": "specification of the desired behavior of the pod; http://docs.k8s.io/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta3.PodStatus", - "description": "most recently observed status of the pod; populated by the system, read-only; http://docs.k8s.io/api-conventions.md#spec-and-status" + "description": "list of container statuses" } } }, @@ -11097,163 +11432,131 @@ "status" ], "properties": { - "status": { - "type": "string", - "description": "status of the condition, one of True, False, Unknown" - }, "type": { "type": "string", "description": "kind of the condition, currently only Ready" + }, + "status": { + "type": "string", + "description": "status of the condition, one of True, False, Unknown" } } }, - "v1beta3.PodList": { - "id": "v1beta3.PodList", + "v1beta3.ContainerStatus": { + "id": "v1beta3.ContainerStatus", "required": [ - "items" + "name", + "ready", + "restartCount", + "image", + "imageID" ], "properties": { - "apiVersion": { + "name": { "type": "string", - "description": "version of the schema the object should have" + "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated" }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.Pod" - }, - "description": "list of pods" + "state": { + "$ref": "v1beta3.ContainerState", + "description": "details about the container's current condition" }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" + "lastState": { + "$ref": "v1beta3.ContainerState", + "description": "details about the container's last termination condition" }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#types-kinds" - } - } - }, - "v1beta3.PodSpec": { - "id": "v1beta3.PodSpec", - "required": [ - "containers", - "serviceAccount" - ], - "properties": { - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1beta3.Container" - }, - "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod" - }, - "dnsPolicy": { - "type": "string", - "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" - }, - "host": { - "type": "string", - "description": "host requested for this pod" - }, - "hostNetwork": { + "ready": { "type": "boolean", - "description": "host networking requested for this pod" + "description": "specifies whether the container has passed its readiness probe" }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1beta3.LocalObjectReference" - }, - "description": "list of references to secrets in the same namespace available for pulling the container images" - }, - "nodeSelector": { - "type": "any", - "description": "selector which must match a node's labels for the pod to be scheduled on that node" - }, - "restartPolicy": { - "type": "string", - "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways" - }, - "serviceAccount": { - "type": "string", - "description": "name of the ServiceAccount to use to run this pod" - }, - "terminationGracePeriodSeconds": { + "restartCount": { "type": "integer", - "format": "int64", - "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process" + "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" }, - "volumes": { - "type": "array", - "items": { - "$ref": "v1beta3.Volume" - }, - "description": "list of volumes that can be mounted by containers belonging to the pod" + "image": { + "type": "string", + "description": "image of the container" + }, + "imageID": { + "type": "string", + "description": "ID of the container's image" + }, + "containerID": { + "type": "string", + "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'" } } }, - "v1beta3.PodStatus": { - "id": "v1beta3.PodStatus", + "v1beta3.ContainerState": { + "id": "v1beta3.ContainerState", "properties": { - "Condition": { - "type": "array", - "items": { - "$ref": "v1beta3.PodCondition" - }, - "description": "current service state of pod" + "waiting": { + "$ref": "v1beta3.ContainerStateWaiting", + "description": "details about a waiting container" }, - "containerStatuses": { - "type": "array", - "items": { - "$ref": "v1beta3.ContainerStatus" - }, - "description": "list of container statuses" + "running": { + "$ref": "v1beta3.ContainerStateRunning", + "description": "details about a running container" }, - "hostIP": { + "termination": { + "$ref": "v1beta3.ContainerStateTerminated", + "description": "details about a terminated container" + } + } + }, + "v1beta3.ContainerStateWaiting": { + "id": "v1beta3.ContainerStateWaiting", + "properties": { + "reason": { "type": "string", - "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" + "description": "(brief) reason the container is not yet running, such as pulling its image" + } + } + }, + "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": [ + "exitCode" + ], + "properties": { + "exitCode": { + "type": "integer", + "format": "int32", + "description": "exit status from the last termination of the container" + }, + "signal": { + "type": "integer", + "format": "int32", + "description": "signal from the last termination of the container" + }, + "reason": { + "type": "string", + "description": "(brief) reason from the last termination of the container" }, "message": { "type": "string", - "description": "human readable message indicating details about why the pod is in this condition" + "description": "message regarding the last termination of the container" }, - "phase": { + "startedAt": { "type": "string", - "description": "current condition of the pod." + "description": "time at which previous execution of the container started" }, - "podIP": { + "finishedAt": { "type": "string", - "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" + "description": "time at which the container last terminated" }, - "startTime": { + "containerID": { "type": "string", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - } - }, - "v1beta3.PodTemplate": { - "id": "v1beta3.PodTemplate", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "template": { - "$ref": "v1beta3.PodTemplateSpec", - "description": "the template of the desired behavior of the pod; http://docs.k8s.io/api-conventions.md#spec-and-status" + "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'" } } }, @@ -11263,24 +11566,45 @@ "items" ], "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, "items": { "type": "array", "items": { "$ref": "v1beta3.PodTemplate" }, "description": "list of pod templates" - }, + } + } + }, + "v1beta3.PodTemplate": { + "id": "v1beta3.PodTemplate", + "properties": { "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "template": { + "$ref": "v1beta3.PodTemplateSpec", + "description": "the template of the desired behavior of the pod; http://docs.k8s.io/api-conventions.md#spec-and-status" } } }, @@ -11297,44 +11621,44 @@ } } }, - "v1beta3.Probe": { - "id": "v1beta3.Probe", + "v1beta3.ReplicationControllerList": { + "id": "v1beta3.ReplicationControllerList", + "required": [ + "items" + ], "properties": { - "exec": { - "$ref": "v1beta3.ExecAction", - "description": "exec-based handler" + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" }, - "httpGet": { - "$ref": "v1beta3.HTTPGetAction", - "description": "HTTP-based handler" + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" }, - "initialDelaySeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after the container has started before liveness probes are initiated" + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" }, - "tcpSocket": { - "$ref": "v1beta3.TCPSocketAction", - "description": "TCP-based handler; TCP hooks not yet supported" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int64", - "description": "number of seconds after which liveness probes timeout; defaults to 1 second" + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.ReplicationController" + }, + "description": "list of replication controllers" } } }, "v1beta3.ReplicationController": { "id": "v1beta3.ReplicationController", "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { "$ref": "v1beta3.ObjectMeta", "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" @@ -11349,33 +11673,6 @@ } } }, - "v1beta3.ReplicationControllerList": { - "id": "v1beta3.ReplicationControllerList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.ReplicationController" - }, - "description": "list of replication controllers" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, "v1beta3.ReplicationControllerSpec": { "id": "v1beta3.ReplicationControllerSpec", "properties": { @@ -11388,13 +11685,13 @@ "type": "any", "description": "label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template" }, - "template": { - "$ref": "v1beta3.PodTemplateSpec", - "description": "object that describes the pod that will be created if insufficient replicas are detected; takes precendence over templateRef" - }, "templateRef": { "$ref": "v1beta3.ObjectReference", "description": "reference to an object that describes the pod that will be created if insufficient replicas are detected" + }, + "template": { + "$ref": "v1beta3.PodTemplateSpec", + "description": "object that describes the pod that will be created if insufficient replicas are detected; takes precendence over templateRef" } } }, @@ -11411,17 +11708,44 @@ } } }, - "v1beta3.ResourceQuota": { - "id": "v1beta3.ResourceQuota", + "v1beta3.ResourceQuotaList": { + "id": "v1beta3.ResourceQuotaList", + "required": [ + "items" + ], "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.ResourceQuota" + }, + "description": "items is a list of ResourceQuota objects" + } + } + }, + "v1beta3.ResourceQuota": { + "id": "v1beta3.ResourceQuota", + "properties": { "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { "$ref": "v1beta3.ObjectMeta", "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" @@ -11436,33 +11760,6 @@ } } }, - "v1beta3.ResourceQuotaList": { - "id": "v1beta3.ResourceQuotaList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.ResourceQuota" - }, - "description": "items is a list of ResourceQuota objects" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, "v1beta3.ResourceQuotaSpec": { "id": "v1beta3.ResourceQuotaSpec", "properties": { @@ -11485,137 +11782,154 @@ } } }, - "v1beta3.ResourceRequirements": { - "id": "v1beta3.ResourceRequirements", - "properties": { - "limits": { - "type": "any", - "description": "Maximum amount of compute resources allowed" - }, - "requests": { - "type": "any", - "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now" - } - } - }, - "v1beta3.SELinuxOptions": { - "id": "v1beta3.SELinuxOptions", - "properties": { - "level": { - "type": "string", - "description": "the level label to apply to the container" - }, - "role": { - "type": "string", - "description": "the role label to apply to the container" - }, - "type": { - "type": "string", - "description": "the type label to apply to the container" - }, - "user": { - "type": "string", - "description": "the user label to apply to the container" - } - } - }, - "v1beta3.Secret": { - "id": "v1beta3.Secret", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "data": { - "type": "any", - "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "type": { - "type": "string", - "description": "type facilitates programmatic handling of secret data" - } - } - }, "v1beta3.SecretList": { "id": "v1beta3.SecretList", "required": [ "items" ], "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, "apiVersion": { "type": "string", "description": "version of the schema the object should have" }, + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, "items": { "type": "array", "items": { "$ref": "v1beta3.Secret" }, "description": "items is a list of secret objects" - }, + } + } + }, + "v1beta3.Secret": { + "id": "v1beta3.Secret", + "properties": { "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "data": { + "type": "any", + "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4" + }, + "type": { + "type": "string", + "description": "type facilitates programmatic handling of secret data" + } + } + }, + "v1beta3.ServiceAccountList": { + "id": "v1beta3.ServiceAccountList", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { "$ref": "v1beta3.ListMeta", "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.ServiceAccount" + }, + "description": "list of ServiceAccounts" } } }, - "v1beta3.SecretVolumeSource": { - "id": "v1beta3.SecretVolumeSource", + "v1beta3.ServiceAccount": { + "id": "v1beta3.ServiceAccount", + "properties": { + "kind": { + "type": "string", + "description": "kind of object, in CamelCase; cannot be updated" + }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, + "metadata": { + "$ref": "v1beta3.ObjectMeta", + "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "v1beta3.ObjectReference" + }, + "description": "list of secrets that can be used by pods running as this service account" + }, + "imagePullSecrets": { + "type": "array", + "items": { + "$ref": "v1beta3.LocalObjectReference" + }, + "description": "list of references to secrets in the same namespace available for pulling container images" + } + } + }, + "v1beta3.ServiceList": { + "id": "v1beta3.ServiceList", "required": [ - "secretName" + "items" ], "properties": { - "secretName": { + "kind": { "type": "string", - "description": "secretName is the name of a secret in the pod's namespace" - } - } - }, - "v1beta3.SecurityContext": { - "id": "v1beta3.SecurityContext", - "properties": { - "capabilities": { - "$ref": "v1beta3.Capabilities", - "description": "the linux capabilites that should be added or removed" + "description": "kind of object, in CamelCase; cannot be updated" }, - "privileged": { - "type": "boolean", - "description": "run the container in privileged mode" + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "the user id that runs the first process in the container" + "metadata": { + "$ref": "v1beta3.ListMeta", + "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" }, - "seLinuxOptions": { - "$ref": "v1beta3.SELinuxOptions", - "description": "options that control the SELinux labels applied" + "items": { + "type": "array", + "items": { + "$ref": "v1beta3.Service" + }, + "description": "list of services" } } }, "v1beta3.Service": { "id": "v1beta3.Service", "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, "kind": { "type": "string", "description": "kind of object, in CamelCase; cannot be updated" }, + "apiVersion": { + "type": "string", + "description": "version of the schema the object should have" + }, "metadata": { "$ref": "v1beta3.ObjectMeta", "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" @@ -11630,109 +11944,6 @@ } } }, - "v1beta3.ServiceAccount": { - "id": "v1beta3.ServiceAccount", - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ObjectMeta", - "description": "standard object metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "v1beta3.ObjectReference" - }, - "description": "list of secrets that can be used by pods running as this service account" - } - } - }, - "v1beta3.ServiceAccountList": { - "id": "v1beta3.ServiceAccountList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.ServiceAccount" - }, - "description": "list of ServiceAccounts" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.ServiceList": { - "id": "v1beta3.ServiceList", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta3.Service" - }, - "description": "list of services" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - } - } - }, - "v1beta3.ServicePort": { - "id": "v1beta3.ServicePort", - "required": [ - "port" - ], - "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": { - "type": "string", - "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": [ @@ -11740,13 +11951,6 @@ "portalIP" ], "properties": { - "createExternalLoadBalancer": { - "type": "boolean", - "description": "set up a cloud-provider-specific load balancer on an external IP" - }, - "portalIP": { - "type": "string" - }, "ports": { "type": "array", "items": { @@ -11754,16 +11958,27 @@ }, "description": "ports exposed by the service" }, + "selector": { + "type": "any", + "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" + }, + "portalIP": { + "type": "string" + }, + "createExternalLoadBalancer": { + "type": "boolean", + "description": "set up a cloud-provider-specific load balancer on an external IP" + }, + "type": { + "type": "string", + "description": "type of this service; must be ClusterIP, NodePort, or LoadBalancer; defaults to ClusterIP" + }, "publicIPs": { "type": "array", "items": { "type": "string" }, - "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" - }, - "selector": { - "type": "any", - "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" + "description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service" }, "sessionAffinity": { "type": "string", @@ -11771,172 +11986,68 @@ } } }, + "v1beta3.ServicePort": { + "id": "v1beta3.ServicePort", + "required": [ + "port", + "nodePort" + ], + "properties": { + "name": { + "type": "string", + "description": "the name of this port; optional if only one port is defined" + }, + "protocol": { + "type": "string", + "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "the port number that is exposed" + }, + "targetPort": { + "type": "string", + "description": "the port to access on the pods targeted by the service; defaults to the service port" + }, + "nodePort": { + "type": "integer", + "format": "int32", + "description": "the port on each node on which this service is exposed" + } + } + }, "v1beta3.ServiceStatus": { "id": "v1beta3.ServiceStatus", - "properties": {} - }, - "v1beta3.Status": { - "id": "v1beta3.Status", "properties": { - "apiVersion": { - "type": "string", - "description": "version of the schema the object should have" - }, - "code": { - "type": "integer", - "format": "int32", - "description": "suggested HTTP return code for this status; 0 if not set" - }, - "details": { - "$ref": "v1beta3.StatusDetails", - "description": "extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type" - }, - "kind": { - "type": "string", - "description": "kind of object, in CamelCase; cannot be updated" - }, - "message": { - "type": "string", - "description": "human-readable description of the status of this operation" - }, - "metadata": { - "$ref": "v1beta3.ListMeta", - "description": "standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata" - }, - "reason": { - "type": "string", - "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it" - }, - "status": { - "type": "string", - "description": "status of the operation; either Success, or Failure" + "loadBalancer": { + "$ref": "v1beta3.LoadBalancerStatus", + "description": "status of load-balancer" } } }, - "v1beta3.StatusCause": { - "id": "v1beta3.StatusCause", + "v1beta3.LoadBalancerStatus": { + "id": "v1beta3.LoadBalancerStatus", "properties": { - "field": { - "type": "string", - "description": "field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors" - }, - "message": { - "type": "string", - "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader" - }, - "reason": { - "type": "string", - "description": "machine-readable description of the cause of the error; if this value is empty there is no information available" - } - } - }, - "v1beta3.StatusDetails": { - "id": "v1beta3.StatusDetails", - "properties": { - "causes": { + "ingress": { "type": "array", "items": { - "$ref": "v1beta3.StatusCause" + "$ref": "v1beta3.LoadBalancerIngress" }, - "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes" - }, - "id": { - "type": "string", - "description": "the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)" - }, - "kind": { - "type": "string", - "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind" - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "the number of seconds before the client should attempt to retry this operation" + "description": "load-balancer ingress points" } } }, - "v1beta3.TCPSocketAction": { - "id": "v1beta3.TCPSocketAction", - "required": [ - "port" - ], + "v1beta3.LoadBalancerIngress": { + "id": "v1beta3.LoadBalancerIngress", "properties": { - "port": { + "ip": { "type": "string", - "description": "number of name of the port to access on the container" - } - } - }, - "v1beta3.Volume": { - "id": "v1beta3.Volume", - "required": [ - "name" - ], - "properties": { - "awsElasticBlockStore": { - "$ref": "v1beta3.AWSElasticBlockStoreVolumeSource", - "description": "AWS disk resource attached to the host machine on demand" + "description": "IP address of ingress point" }, - "emptyDir": { - "$ref": "v1beta3.EmptyDirVolumeSource", - "description": "temporary directory that shares a pod's lifetime" - }, - "gcePersistentDisk": { - "$ref": "v1beta3.GCEPersistentDiskVolumeSource", - "description": "GCE disk resource attached to the host machine on demand" - }, - "gitRepo": { - "$ref": "v1beta3.GitRepoVolumeSource", - "description": "git repository at a particular revision" - }, - "glusterfs": { - "$ref": "v1beta3.GlusterfsVolumeSource", - "description": "Glusterfs volume that will be mounted on the host machine " - }, - "hostPath": { - "$ref": "v1beta3.HostPathVolumeSource", - "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" - }, - "iscsi": { - "$ref": "v1beta3.ISCSIVolumeSource", - "description": "iSCSI disk attached to host machine on demand" - }, - "name": { + "hostname": { "type": "string", - "description": "volume name; must be a DNS_LABEL and unique within the pod" - }, - "nfs": { - "$ref": "v1beta3.NFSVolumeSource", - "description": "NFS volume that will be mounted in the host machine" - }, - "persistentVolumeClaim": { - "$ref": "v1beta3.PersistentVolumeClaimVolumeSource", - "description": "a reference to a PersistentVolumeClaim in the same namespace" - }, - "secret": { - "$ref": "v1beta3.SecretVolumeSource", - "description": "secret to populate volume" - } - } - }, - "v1beta3.VolumeMount": { - "id": "v1beta3.VolumeMount", - "required": [ - "name", - "mountPath" - ], - "properties": { - "mountPath": { - "type": "string", - "description": "path within the container at which the volume should be mounted" - }, - "name": { - "type": "string", - "description": "name of the volume to mount" - }, - "readOnly": { - "type": "boolean", - "description": "mounted read-only if true, read-write otherwise (false or unspecified)" + "description": "hostname of ingress point" } } } diff --git a/api/swagger-spec/version.json b/api/swagger-spec/version.json index b7da015b840..f52f241c014 100644 --- a/api/swagger-spec/version.json +++ b/api/swagger-spec/version.json @@ -23,5 +23,6 @@ } ] } - ] + ], + "models": {} } \ No newline at end of file diff --git a/cluster/addons/cluster-monitoring/google/heapster-controller.yaml b/cluster/addons/cluster-monitoring/google/heapster-controller.yaml index 6bf50c2e56e..2e200a056c2 100644 --- a/cluster/addons/cluster-monitoring/google/heapster-controller.yaml +++ b/cluster/addons/cluster-monitoring/google/heapster-controller.yaml @@ -16,7 +16,7 @@ spec: kubernetes.io/cluster-service: "true" spec: containers: - - image: gcr.io/google_containers/heapster:v0.12.1 + - image: gcr.io/google_containers/heapster:v0.13.0 name: heapster command: - /heapster diff --git a/cluster/addons/cluster-monitoring/influxdb/heapster-controller.yaml b/cluster/addons/cluster-monitoring/influxdb/heapster-controller.yaml index dab1fe1b898..6e46b147f7a 100644 --- a/cluster/addons/cluster-monitoring/influxdb/heapster-controller.yaml +++ b/cluster/addons/cluster-monitoring/influxdb/heapster-controller.yaml @@ -16,7 +16,7 @@ spec: kubernetes.io/cluster-service: "true" spec: containers: - - image: gcr.io/google_containers/heapster:v0.12.1 + - image: gcr.io/google_containers/heapster:v0.13.0 name: heapster command: - /heapster diff --git a/cmd/genconversion/conversion.go b/cmd/genconversion/conversion.go index 3589397fc7c..45a53a961c8 100644 --- a/cmd/genconversion/conversion.go +++ b/cmd/genconversion/conversion.go @@ -23,8 +23,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" pkg_runtime "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" diff --git a/cmd/gendeepcopy/deep_copy.go b/cmd/gendeepcopy/deep_copy.go index 864c22743c0..fa1c7da6609 100644 --- a/cmd/gendeepcopy/deep_copy.go +++ b/cmd/gendeepcopy/deep_copy.go @@ -24,8 +24,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" pkg_runtime "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" diff --git a/cmd/integration/integration.go b/cmd/integration/integration.go index 88a949ef835..ce7ae0a35f5 100644 --- a/cmd/integration/integration.go +++ b/cmd/integration/integration.go @@ -605,23 +605,6 @@ func runPatchTest(c *client.Client) { RemoveLabelBody []byte RemoveAllLabelsBody []byte }{ - "v1beta1": { - api.JSONPatchType: { - []byte(`[{"op":"add","path":"/labels","value":{"foo":"bar","baz":"qux"}}]`), - []byte(`[{"op":"remove","path":"/labels/foo"}]`), - []byte(`[{"op":"remove","path":"/labels"}]`), - }, - api.MergePatchType: { - []byte(`{"labels":{"foo":"bar","baz":"qux"}}`), - []byte(`{"labels":{"foo":null}}`), - []byte(`{"labels":null}`), - }, - api.StrategicMergePatchType: { - []byte(`{"labels":{"foo":"bar","baz":"qux"}}`), - []byte(`{"labels":{"foo":null}}`), - []byte(`{"labels":{"$patch":"replace"}}`), - }, - }, "v1beta3": { api.JSONPatchType: { []byte(`[{"op":"add","path":"/metadata/labels","value":{"foo":"bar","baz":"qux"}}]`), @@ -938,7 +921,7 @@ func main() { glog.Infof("Running tests for APIVersion: %s", apiVersion) firstManifestURL := ServeCachedManifestFile(testPodSpecFile) - secondManifestURL := ServeCachedManifestFile(testManifestFile) + secondManifestURL := ServeCachedManifestFile(testPodSpecFile) apiServerURL, _ := startComponents(firstManifestURL, secondManifestURL, apiVersion) // Ok. we're good to go. @@ -1059,27 +1042,3 @@ const ( } }` ) - -const ( - // This is copied from, and should be kept in sync with: - // https://raw.githubusercontent.com/GoogleCloudPlatform/container-vm-guestbook-redis-python/master/manifest.yaml - // Note that kubelet complains about these containers not having a self link. - testManifestFile = `version: v1beta2 -id: container-vm-guestbook-manifest -containers: - - name: redis - image: redis - volumeMounts: - - name: redis-data - mountPath: /data - - - name: guestbook - image: google/guestbook-python-redis - ports: - - name: www - hostPort: 80 - containerPort: 80 - -volumes: - - name: redis-data` -) diff --git a/cmd/integration/v1beta1-controller.json b/cmd/integration/v1beta1-controller.json deleted file mode 100644 index bbd2ef61039..00000000000 --- a/cmd/integration/v1beta1-controller.json +++ /dev/null @@ -1,23 +0,0 @@ - { - "id": "nginx-controller", - "apiVersion": "v1beta1", - "kind": "ReplicationController", - "desiredState": { - "replicas": 2, - "replicaSelector": {"name": "nginx"}, - "podTemplate": { - "desiredState": { - "manifest": { - "version": "v1beta1", - "id": "nginx-controller", - "containers": [{ - "name": "nginx", - "image": "nginx", - "ports": [{"containerPort": 80}] - }] - } - }, - "labels": {"name": "nginx"} - }}, - "labels": {"name": "nginx"} - } diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index cae071cbb55..b55247d7b81 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -264,16 +264,7 @@ func (s *APIServer) Run(_ []string) error { if ok && legacyAPIFlagValue == "false" { disableLegacyAPIs = true } - - // "api/v1beta1={true|false} allows users to enable/disable v1beta1 API. - // This takes preference over api/all and api/legacy, if specified. - disableV1beta1 := disableAllAPIs || disableLegacyAPIs - disableV1beta1 = !s.getRuntimeConfigValue("api/v1beta1", !disableV1beta1) - - // "api/v1beta2={true|false} allows users to enable/disable v1beta2 API. - // This takes preference over api/all and api/legacy, if specified. - disableV1beta2 := disableAllAPIs || disableLegacyAPIs - disableV1beta2 = !s.getRuntimeConfigValue("api/v1beta2", !disableV1beta2) + _ = disableLegacyAPIs // hush the compiler while we don't have legacy APIs to disable. // "api/v1beta3={true|false} allows users to enable/disable v1beta3 API. // This takes preference over api/all and api/legacy, if specified. @@ -369,8 +360,6 @@ func (s *APIServer) Run(_ []string) error { SupportsBasicAuth: len(s.BasicAuthFile) > 0, Authorizer: authorizer, AdmissionControl: admissionController, - DisableV1Beta1: disableV1beta1, - DisableV1Beta2: disableV1beta2, DisableV1Beta3: disableV1beta3, EnableV1: enableV1, MasterServiceNamespace: s.MasterServiceNamespace, diff --git a/cmd/kube-version-change/version.go b/cmd/kube-version-change/version.go index 882c37f194d..8df3fe2216d 100644 --- a/cmd/kube-version-change/version.go +++ b/cmd/kube-version-change/version.go @@ -28,8 +28,6 @@ import ( "runtime" "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" diff --git a/examples/examples_test.go b/examples/examples_test.go index a6fdb459ef4..af5822e6aba 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -121,7 +121,6 @@ func walkJSONFiles(inDir string, fn func(name, path string, data []byte)) error func TestExampleObjectSchemas(t *testing.T) { cases := map[string]map[string]runtime.Object{ "../cmd/integration": { - "v1beta1-controller": &api.ReplicationController{}, "v1beta3-controller": &api.ReplicationController{}, }, "../examples/guestbook": { diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 77af07c5cc5..ec63990be91 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -114,8 +114,6 @@ PATH="${KUBE_OUTPUT_HOSTBIN}":$PATH kube_api_versions=( "" - v1beta1 - v1beta2 v1beta3 ) for version in "${kube_api_versions[@]}"; do diff --git a/hack/test-go.sh b/hack/test-go.sh index 5571ea619b3..0604a092356 100755 --- a/hack/test-go.sh +++ b/hack/test-go.sh @@ -52,7 +52,7 @@ KUBE_RACE=${KUBE_RACE:-} # use KUBE_RACE="-race" to enable race testing # Set to the goveralls binary path to report coverage results to Coveralls.io. KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-} # Comma separated list of API Versions that should be tested. -KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1beta1,v1beta3"} +KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1beta3"} # Run tests with the standard (registry) and a custom etcd prefix # (kubernetes.io/registry). KUBE_TEST_ETCD_PREFIXES=${KUBE_TEST_ETCD_PREFIXES:-"registry,kubernetes.io/registry"} diff --git a/hack/test-integration.sh b/hack/test-integration.sh index c38d60f7289..36153522c6f 100755 --- a/hack/test-integration.sh +++ b/hack/test-integration.sh @@ -25,7 +25,7 @@ set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" # Comma separated list of API Versions that should be tested. -KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1beta1,v1beta3"} +KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1beta3"} KUBE_INTEGRATION_TEST_MAX_CONCURRENCY=${KUBE_INTEGRATION_TEST_MAX_CONCURRENCY:-"-1"} LOG_LEVEL=${LOG_LEVEL:-2} diff --git a/hack/test-update-storage-objects.sh b/hack/test-update-storage-objects.sh index 90f21820960..462ecc6c986 100755 --- a/hack/test-update-storage-objects.sh +++ b/hack/test-update-storage-objects.sh @@ -24,9 +24,10 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" # The api version in which objects are currently stored in etcd. -KUBE_OLD_API_VERSION=${KUBE_OLD_API_VERSION:-"v1beta1"} +KUBE_OLD_API_VERSION=${KUBE_OLD_API_VERSION:-"v1beta3"} # The api version in which our etcd objects should be converted to. # The new api version +# TODO change this to v1 when it's ready. KUBE_NEW_API_VERSION=${KUBE_NEW_API_VERSION:-"v1beta3"} ETCD_HOST=${ETCD_HOST:-127.0.0.1} diff --git a/pkg/api/conversion_test.go b/pkg/api/conversion_test.go index 7b89de8366d..47832eb37bb 100644 --- a/pkg/api/conversion_test.go +++ b/pkg/api/conversion_test.go @@ -22,8 +22,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" ) diff --git a/pkg/api/latest/latest.go b/pkg/api/latest/latest.go index ae01d17c16c..02ef3f2cd0b 100644 --- a/pkg/api/latest/latest.go +++ b/pkg/api/latest/latest.go @@ -24,8 +24,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/registered" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" @@ -36,7 +34,7 @@ var Version string // OldestVersion is the string that represents the oldest server version supported, // for client code that wants to hardcode the lowest common denominator. -const OldestVersion = "v1beta1" +const OldestVersion = "v1beta3" // Versions is the list of versions that are recognized in code. The order provided // may be assumed to be least feature rich to most feature rich, and clients may @@ -88,20 +86,6 @@ func init() { }, ) - // versions that used mixed case URL formats - versionMixedCase := map[string]bool{ - "v1beta1": true, - "v1beta2": true, - } - - // backwards compatibility, prior to v1beta3, we identified the namespace as a query parameter - versionToNamespaceScope := map[string]meta.RESTScope{ - "v1beta1": meta.RESTScopeNamespaceLegacy, - "v1beta2": meta.RESTScopeNamespaceLegacy, - "v1beta3": meta.RESTScopeNamespace, - "v1": meta.RESTScopeNamespace, - } - // the list of kinds that are scoped at the root of the api hierarchy // if a kind is not enumerated here, it is assumed to have a namespace scope kindToRootScope := map[string]bool{ @@ -130,16 +114,11 @@ func init() { if ignoredKinds.Has(kind) { continue } - mixedCase, found := versionMixedCase[version] - if !found { - mixedCase = false - } - scope := versionToNamespaceScope[version] - _, found = kindToRootScope[kind] - if found { + scope := meta.RESTScopeNamespace + if kindToRootScope[kind] { scope = meta.RESTScopeRoot } - mapper.Add(scope, kind, version, mixedCase) + mapper.Add(scope, kind, version, false) } } RESTMapper = mapper @@ -149,18 +128,6 @@ func init() { // string, or an error if the version is not known. func InterfacesFor(version string) (*meta.VersionInterfaces, error) { switch version { - case "v1beta1": - return &meta.VersionInterfaces{ - Codec: v1beta1.Codec, - ObjectConvertor: api.Scheme, - MetadataAccessor: accessor, - }, nil - case "v1beta2": - return &meta.VersionInterfaces{ - Codec: v1beta2.Codec, - ObjectConvertor: api.Scheme, - MetadataAccessor: accessor, - }, nil case "v1beta3": return &meta.VersionInterfaces{ Codec: v1beta3.Codec, diff --git a/pkg/api/latest/latest_test.go b/pkg/api/latest/latest_test.go index c196b96f75e..881ac4b8558 100644 --- a/pkg/api/latest/latest_test.go +++ b/pkg/api/latest/latest_test.go @@ -21,8 +21,6 @@ import ( "testing" internal "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" ) func TestResourceVersioner(t *testing.T) { diff --git a/pkg/api/registered/registered.go b/pkg/api/registered/registered.go index ef70a01ea6f..485b4136ede 100644 --- a/pkg/api/registered/registered.go +++ b/pkg/api/registered/registered.go @@ -31,13 +31,11 @@ var RegisteredVersions []string func init() { validAPIVersions := map[string]bool{ "v1": true, - "v1beta1": true, - "v1beta2": true, "v1beta3": true, } // The default list of supported api versions, in order of most preferred to the least. - defaultSupportedVersions := "v1beta3,v1beta1,v1beta2,v1" + defaultSupportedVersions := "v1beta3,v1" // Env var KUBE_API_VERSIONS is a comma separated list of API versions that should be registered in the scheme. // The versions should be in the order of most preferred to the least. supportedVersions := os.Getenv("KUBE_API_VERSIONS") diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 844caad772e..08d1e96065f 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -27,8 +27,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" apitesting "github.com/GoogleCloudPlatform/kubernetes/pkg/api/testing" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" @@ -89,12 +87,6 @@ func roundTripSame(t *testing.T, item runtime.Object, except ...string) { set := util.NewStringSet(except...) seed := rand.Int63() fuzzInternalObject(t, "", item, seed) - if !set.Has("v1beta1") { - roundTrip(t, v1beta1.Codec, item) - } - if !set.Has("v1beta2") { - roundTrip(t, v1beta2.Codec, item) - } if !set.Has("v1beta3") { fuzzInternalObject(t, "v1beta3", item, seed) roundTrip(t, v1beta3.Codec, item) @@ -103,8 +95,6 @@ func roundTripSame(t *testing.T, item runtime.Object, except ...string) { func roundTripAll(t *testing.T, item runtime.Object) { seed := rand.Int63() - roundTrip(t, v1beta1.Codec, fuzzInternalObject(t, "v1beta1", item, seed)) - roundTrip(t, v1beta2.Codec, fuzzInternalObject(t, "v1beta2", item, seed)) roundTrip(t, v1beta3.Codec, fuzzInternalObject(t, "v1beta3", item, seed)) } @@ -137,10 +127,7 @@ func TestList(t *testing.T) { var nonRoundTrippableTypes = util.NewStringSet("ContainerManifest", "ContainerManifestList") var nonInternalRoundTrippableTypes = util.NewStringSet("List", "ListOptions", "PodExecOptions") -var nonRoundTrippableTypesByVersion = map[string][]string{ - "PodTemplate": {"v1beta1", "v1beta2"}, - "PodTemplateList": {"v1beta1", "v1beta2"}, -} +var nonRoundTrippableTypesByVersion = map[string][]string{} func TestRoundTripTypes(t *testing.T) { // api.Scheme.Log(t) diff --git a/pkg/api/v1beta1/conversion.go b/pkg/api/v1beta1/conversion.go deleted file mode 100644 index f8b38c8cf52..00000000000 --- a/pkg/api/v1beta1/conversion.go +++ /dev/null @@ -1,1777 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "fmt" - "net" - "reflect" - "strconv" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource" - "github.com/GoogleCloudPlatform/kubernetes/pkg/conversion" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -func addConversionFuncs() { - // Our TypeMeta was split into two different structs. - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.ObjectMeta{}, "ObjectMeta") - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.ListMeta{}, "ListMeta") - - api.Scheme.AddStructFieldConversion(api.TypeMeta{}, "TypeMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.ObjectMeta{}, "ObjectMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.ListMeta{}, "ListMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.Endpoints{}, "Endpoints", Endpoints{}, "Endpoints") - - // TODO: scope this to a specific type once that becomes available and remove the Event conversion functions below - // api.Scheme.AddStructFieldConversion(string(""), "Status", string(""), "Condition") - // api.Scheme.AddStructFieldConversion(string(""), "Condition", string(""), "Status") - - err := api.Scheme.AddConversionFuncs( - // TypeMeta must be split into two objects - func(in *api.TypeMeta, out *TypeMeta, s conversion.Scope) error { - out.Kind = in.Kind - out.APIVersion = in.APIVersion - return nil - }, - func(in *TypeMeta, out *api.TypeMeta, s conversion.Scope) error { - out.Kind = in.Kind - out.APIVersion = in.APIVersion - return nil - }, - - // ListMeta must be converted to TypeMeta - func(in *api.ListMeta, out *TypeMeta, s conversion.Scope) error { - out.SelfLink = in.SelfLink - if len(in.ResourceVersion) > 0 { - v, err := strconv.ParseUint(in.ResourceVersion, 10, 64) - if err != nil { - return err - } - out.ResourceVersion = v - } - return nil - }, - func(in *TypeMeta, out *api.ListMeta, s conversion.Scope) error { - out.SelfLink = in.SelfLink - if in.ResourceVersion != 0 { - out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10) - } else { - out.ResourceVersion = "" - } - return nil - }, - - // ObjectMeta must be converted to TypeMeta - func(in *api.ObjectMeta, out *TypeMeta, s conversion.Scope) error { - out.Namespace = in.Namespace - out.ID = in.Name - out.GenerateName = in.GenerateName - out.UID = in.UID - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = in.DeletionTimestamp - out.SelfLink = in.SelfLink - if len(in.ResourceVersion) > 0 { - v, err := strconv.ParseUint(in.ResourceVersion, 10, 64) - if err != nil { - return err - } - out.ResourceVersion = v - } - return s.Convert(&in.Annotations, &out.Annotations, 0) - }, - func(in *TypeMeta, out *api.ObjectMeta, s conversion.Scope) error { - out.Namespace = in.Namespace - out.Name = in.ID - out.GenerateName = in.GenerateName - out.UID = in.UID - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = in.DeletionTimestamp - out.SelfLink = in.SelfLink - if in.ResourceVersion != 0 { - out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10) - } else { - out.ResourceVersion = "" - } - return s.Convert(&in.Annotations, &out.Annotations, 0) - }, - - // EnvVar's Key is deprecated in favor of Name. - func(in *api.EnvVar, out *EnvVar, s conversion.Scope) error { - out.Value = in.Value - out.Key = in.Name - out.Name = in.Name - - if err := s.Convert(&in.ValueFrom, &out.ValueFrom, 0); err != nil { - return err - } - - return nil - }, - func(in *EnvVar, out *api.EnvVar, s conversion.Scope) error { - out.Value = in.Value - if in.Name != "" { - out.Name = in.Name - } else { - out.Name = in.Key - } - - if err := s.Convert(&in.ValueFrom, &out.ValueFrom, 0); err != nil { - return err - } - - return nil - }, - // Path & MountType are deprecated. - func(in *api.VolumeMount, out *VolumeMount, s conversion.Scope) error { - out.Name = in.Name - out.ReadOnly = in.ReadOnly - out.MountPath = in.MountPath - out.Path = in.MountPath - out.MountType = "" // MountType is ignored. - return nil - }, - func(in *VolumeMount, out *api.VolumeMount, s conversion.Scope) error { - out.Name = in.Name - out.ReadOnly = in.ReadOnly - if in.MountPath == "" { - out.MountPath = in.Path - } else { - out.MountPath = in.MountPath - } - return nil - }, - - // MinionList.Items had a wrong name in v1beta1 - func(in *api.NodeList, out *MinionList, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Items, &out.Items, 0); err != nil { - return err - } - out.Minions = out.Items - return nil - }, - func(in *MinionList, out *api.NodeList, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil { - return err - } - if len(in.Items) == 0 { - if err := s.Convert(&in.Minions, &out.Items, 0); err != nil { - return err - } - } else { - if err := s.Convert(&in.Items, &out.Items, 0); err != nil { - return err - } - } - return nil - }, - - func(in *api.PodStatus, out *PodState, s conversion.Scope) error { - if err := s.Convert(&in.Phase, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Conditions, &out.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerStatuses, &out.Info, 0); err != nil { - return err - } - out.Message = in.Message - out.HostIP = in.HostIP - out.PodIP = in.PodIP - return nil - }, - func(in *PodState, out *api.PodStatus, s conversion.Scope) error { - if err := s.Convert(&in.Status, &out.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Conditions, &out.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.Info, &out.ContainerStatuses, 0); err != nil { - return err - } - - out.Message = in.Message - out.HostIP = in.HostIP - out.PodIP = in.PodIP - return nil - }, - func(in *api.PodSpec, out *PodState, s conversion.Scope) error { - if err := s.Convert(&in, &out.Manifest, 0); err != nil { - return err - } - out.Host = in.NodeName - return nil - }, - func(in *PodState, out *api.PodSpec, s conversion.Scope) error { - if err := s.Convert(&in.Manifest, &out, 0); err != nil { - return err - } - out.NodeName = in.Host - return nil - }, - - func(in *[]api.ContainerStatus, out *PodInfo, s conversion.Scope) error { - *out = make(map[string]ContainerStatus) - for _, st := range *in { - v := ContainerStatus{} - if err := s.Convert(&st, &v, 0); err != nil { - return err - } - (*out)[st.Name] = v - } - return nil - }, - func(in *PodInfo, out *[]api.ContainerStatus, s conversion.Scope) error { - for k, v := range *in { - st := api.ContainerStatus{} - if err := s.Convert(&v, &st, 0); err != nil { - return err - } - st.Name = k - *out = append(*out, st) - } - return nil - }, - - func(in *api.ContainerStatus, out *ContainerStatus, s conversion.Scope) error { - if err := s.Convert(&in.State, &out.State, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTerminationState, &out.LastTerminationState, 0); err != nil { - return err - } - if err := s.Convert(&in.Ready, &out.Ready, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartCount, &out.RestartCount, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.ImageID, &out.ImageID, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerID, &out.ContainerID, 0); err != nil { - return err - } - return nil - }, - func(in *ContainerStatus, out *api.ContainerStatus, s conversion.Scope) error { - if err := s.Convert(&in.State, &out.State, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTerminationState, &out.LastTerminationState, 0); err != nil { - return err - } - if err := s.Convert(&in.Ready, &out.Ready, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartCount, &out.RestartCount, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.ImageID, &out.ImageID, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerID, &out.ContainerID, 0); err != nil { - return err - } - return nil - }, - - // Convert all to the new PodPhase constants - func(in *api.PodPhase, out *PodStatus, s conversion.Scope) error { - switch *in { - case "": - *out = "" - case api.PodPending: - *out = PodWaiting - case api.PodRunning: - *out = PodRunning - case api.PodSucceeded: - *out = PodSucceeded - case api.PodFailed: - *out = PodTerminated - case api.PodUnknown: - *out = PodUnknown - default: - return &api.ConversionError{ - In: in, - Out: out, - Message: "The string provided is not a valid PodPhase constant value", - } - } - - return nil - }, - - func(in *PodStatus, out *api.PodPhase, s conversion.Scope) error { - switch *in { - case "": - *out = "" - case PodWaiting: - *out = api.PodPending - case PodRunning: - *out = api.PodRunning - case PodTerminated: - // Older API versions did not contain enough info to map to PodSucceeded - *out = api.PodFailed - case PodSucceeded: - *out = api.PodSucceeded - case PodUnknown: - *out = api.PodUnknown - default: - return &api.ConversionError{ - In: in, - Out: out, - Message: "The string provided is not a valid PodPhase constant value", - } - } - return nil - }, - - // Convert all the standard objects - func(in *api.Pod, out *Pod, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - // TODO: Change this to use in.ObjectMeta.Labels. - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { - return err - } - out.DesiredState.Host = in.Spec.NodeName - out.CurrentState.Host = in.Spec.NodeName - out.ServiceAccount = in.Spec.ServiceAccount - if err := s.Convert(&in.Status, &out.CurrentState, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { - return err - } - return nil - }, - func(in *Pod, out *api.Pod, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { - return err - } - out.Spec.NodeName = in.DesiredState.Host - out.Spec.ServiceAccount = in.ServiceAccount - if err := s.Convert(&in.CurrentState, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { - return err - } - return nil - }, - func(in *api.PodStatusResult, out *PodStatusResult, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.State, 0); err != nil { - return err - } - return nil - }, - func(in *PodStatusResult, out *api.PodStatusResult, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.State, &out.Status, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ReplicationController, out *ReplicationController, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if err := s.Convert(&in.Spec, &out.DesiredState, 0); err != nil { - return err - } - out.CurrentState.Replicas = in.Status.Replicas - return nil - }, - func(in *ReplicationController, out *api.ReplicationController, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if err := s.Convert(&in.DesiredState, &out.Spec, 0); err != nil { - return err - } - out.Status.Replicas = in.CurrentState.Replicas - return nil - }, - - func(in *api.ReplicationControllerSpec, out *ReplicationControllerState, s conversion.Scope) error { - out.Replicas = in.Replicas - if err := s.Convert(&in.Selector, &out.ReplicaSelector, 0); err != nil { - return err - } - //if in.TemplateRef != nil && in.Template == nil { - // return &api.ConversionError{ - // In: in, - // Out: out, - // Message: "objects with a template ref cannot be converted to older objects, must populate template", - // } - //} - if in.Template != nil { - if err := s.Convert(in.Template, &out.PodTemplate, 0); err != nil { - return err - } - } - return nil - }, - func(in *ReplicationControllerState, out *api.ReplicationControllerSpec, s conversion.Scope) error { - out.Replicas = in.Replicas - if err := s.Convert(&in.ReplicaSelector, &out.Selector, 0); err != nil { - return err - } - out.Template = &api.PodTemplateSpec{} - if err := s.Convert(&in.PodTemplate, out.Template, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodTemplateSpec, out *PodTemplate, s conversion.Scope) error { - if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { - return err - } - out.DesiredState.Host = in.Spec.NodeName - out.ServiceAccount = in.Spec.ServiceAccount - if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Annotations, &out.Annotations, 0); err != nil { - return err - } - return nil - }, - func(in *PodTemplate, out *api.PodTemplateSpec, s conversion.Scope) error { - if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { - return err - } - out.Spec.NodeName = in.DesiredState.Host - out.Spec.ServiceAccount = in.ServiceAccount - if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Annotations, &out.ObjectMeta.Annotations, 0); err != nil { - return err - } - return nil - }, - - // Converts internal Container to v1beta1.Container. - // Fields 'CPU' and 'Memory' are not present in the internal Container object. - // Hence the need for a custom conversion function. - func(in *api.Container, out *Container, s conversion.Scope) error { - if err := s.Convert(&in.Name, &out.Name, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.Command, &out.Entrypoint, 0); err != nil { - return err - } - if err := s.Convert(&in.Args, &out.Command, 0); err != nil { - return err - } - if err := s.Convert(&in.WorkingDir, &out.WorkingDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Ports, &out.Ports, 0); err != nil { - return err - } - if err := s.Convert(&in.Env, &out.Env, 0); err != nil { - return err - } - if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil { - return err - } - if err := s.Convert(in.Resources.Limits.Cpu(), &out.CPU, 0); err != nil { - return err - } - if err := s.Convert(in.Resources.Limits.Memory(), &out.Memory, 0); err != nil { - return err - } - if err := s.Convert(&in.VolumeMounts, &out.VolumeMounts, 0); err != nil { - return err - } - if err := s.Convert(&in.LivenessProbe, &out.LivenessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.ReadinessProbe, &out.ReadinessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.Lifecycle, &out.Lifecycle, 0); err != nil { - return err - } - if err := s.Convert(&in.TerminationMessagePath, &out.TerminationMessagePath, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullPolicy, &out.ImagePullPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.SecurityContext, &out.SecurityContext, 0); err != nil { - return err - } - // now that we've converted set the container field from security context - if out.SecurityContext != nil && out.SecurityContext.Privileged != nil { - out.Privileged = *out.SecurityContext.Privileged - } - // now that we've converted set the container field from security context - if out.SecurityContext != nil && out.SecurityContext.Capabilities != nil { - out.Capabilities = *out.SecurityContext.Capabilities - } - return nil - }, - // Internal API does not support CPU to be specified via an explicit field. - // Hence it must be stored in Container.Resources. - func(in *int, out *api.ResourceList, s conversion.Scope) error { - if *in <= 0 { - return nil - } - quantity := resource.Quantity{} - if err := s.Convert(in, &quantity, 0); err != nil { - return err - } - (*out)[api.ResourceCPU] = quantity - return nil - }, - // Internal API does not support Memory to be specified via an explicit field. - // Hence it must be stored in Container.Resources. - func(in *int64, out *api.ResourceList, s conversion.Scope) error { - if *in <= 0 { - return nil - } - quantity := resource.Quantity{} - if err := s.Convert(in, &quantity, 0); err != nil { - return err - } - (*out)[api.ResourceMemory] = quantity - return nil - }, - // Converts v1beta1.Container to internal Container. - // Fields 'CPU' and 'Memory' are not present in the internal Container object. - // Hence the need for a custom conversion function. - func(in *Container, out *api.Container, s conversion.Scope) error { - if err := s.Convert(&in.Name, &out.Name, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.Command, &out.Args, 0); err != nil { - return err - } - if err := s.Convert(&in.Entrypoint, &out.Command, 0); err != nil { - return err - } - if err := s.Convert(&in.WorkingDir, &out.WorkingDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Ports, &out.Ports, 0); err != nil { - return err - } - if err := s.Convert(&in.Env, &out.Env, 0); err != nil { - return err - } - if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil { - return err - } - if err := s.Convert(&in.CPU, &out.Resources.Limits, 0); err != nil { - return err - } - if err := s.Convert(&in.Memory, &out.Resources.Limits, 0); err != nil { - return err - } - if err := s.Convert(&in.VolumeMounts, &out.VolumeMounts, 0); err != nil { - return err - } - if err := s.Convert(&in.LivenessProbe, &out.LivenessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.ReadinessProbe, &out.ReadinessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.Lifecycle, &out.Lifecycle, 0); err != nil { - return err - } - if err := s.Convert(&in.TerminationMessagePath, &out.TerminationMessagePath, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullPolicy, &out.ImagePullPolicy, 0); err != nil { - return err - } - if in.SecurityContext != nil { - if in.SecurityContext.Capabilities != nil { - if !reflect.DeepEqual(in.SecurityContext.Capabilities.Add, in.Capabilities.Add) || - !reflect.DeepEqual(in.SecurityContext.Capabilities.Drop, in.Capabilities.Drop) { - return fmt.Errorf("container capability settings do not match security context settings, cannot convert") - } - } - if in.SecurityContext.Privileged != nil { - if in.Privileged != *in.SecurityContext.Privileged { - return fmt.Errorf("container privileged settings do not match security context settings, cannot convert") - } - } - } - if err := s.Convert(&in.SecurityContext, &out.SecurityContext, 0); err != nil { - return err - } - return nil - }, - func(in *api.PodSpec, out *ContainerManifest, s conversion.Scope) error { - if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil { - return err - } - if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullSecrets, &out.ImagePullSecrets, 0); err != nil { - return err - } - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } - out.DNSPolicy = DNSPolicy(in.DNSPolicy) - out.Version = "v1beta2" - out.HostNetwork = in.HostNetwork - return nil - }, - func(in *ContainerManifest, out *api.PodSpec, s conversion.Scope) error { - if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil { - return err - } - if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullSecrets, &out.ImagePullSecrets, 0); err != nil { - return err - } - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } - out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) - out.HostNetwork = in.HostNetwork - return nil - }, - - func(in *api.Service, out *Service, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - // Produce legacy fields. - out.Protocol = ProtocolTCP - if len(in.Spec.Ports) > 0 { - out.PortName = in.Spec.Ports[0].Name - out.Port = in.Spec.Ports[0].Port - out.Protocol = Protocol(in.Spec.Ports[0].Protocol) - out.ContainerPort = in.Spec.Ports[0].TargetPort - } - // Copy modern fields. - for i := range in.Spec.Ports { - out.Ports = append(out.Ports, ServicePort{ - Name: in.Spec.Ports[i].Name, - Port: in.Spec.Ports[i].Port, - Protocol: Protocol(in.Spec.Ports[i].Protocol), - ContainerPort: in.Spec.Ports[i].TargetPort, - NodePort: in.Spec.Ports[i].NodePort, - }) - } - - if err := s.Convert(&in.Spec.Selector, &out.Selector, 0); err != nil { - return err - } - out.PublicIPs = in.Spec.DeprecatedPublicIPs - out.PortalIP = in.Spec.ClusterIP - if err := s.Convert(&in.Spec.SessionAffinity, &out.SessionAffinity, 0); err != nil { - return err - } - - if err := s.Convert(&in.Status.LoadBalancer, &out.LoadBalancerStatus, 0); err != nil { - return err - } - - if err := s.Convert(&in.Spec.Type, &out.Type, 0); err != nil { - return err - } - out.CreateExternalLoadBalancer = in.Spec.Type == api.ServiceTypeLoadBalancer - - return nil - }, - func(in *Service, out *api.Service, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if len(in.Ports) == 0 && in.Port != 0 { - // Use legacy fields to produce modern fields. - out.Spec.Ports = append(out.Spec.Ports, api.ServicePort{ - Name: in.PortName, - Port: in.Port, - Protocol: api.Protocol(in.Protocol), - TargetPort: in.ContainerPort, - }) - } else { - // Use modern fields, ignore legacy. - for i := range in.Ports { - out.Spec.Ports = append(out.Spec.Ports, api.ServicePort{ - Name: in.Ports[i].Name, - Port: in.Ports[i].Port, - Protocol: api.Protocol(in.Ports[i].Protocol), - TargetPort: in.Ports[i].ContainerPort, - NodePort: in.Ports[i].NodePort, - }) - } - } - - if err := s.Convert(&in.Selector, &out.Spec.Selector, 0); err != nil { - return err - } - out.Spec.DeprecatedPublicIPs = in.PublicIPs - out.Spec.ClusterIP = in.PortalIP - if err := s.Convert(&in.SessionAffinity, &out.Spec.SessionAffinity, 0); err != nil { - return err - } - - if err := s.Convert(&in.LoadBalancerStatus, &out.Status.LoadBalancer, 0); err != nil { - return err - } - - typeIn := in.Type - if typeIn == "" { - if in.CreateExternalLoadBalancer { - typeIn = ServiceTypeLoadBalancer - } else { - typeIn = ServiceTypeClusterIP - } - } - if err := s.Convert(&typeIn, &out.Spec.Type, 0); err != nil { - return err - } - - return nil - }, - - func(in *api.Node, out *Minion, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Phase, &out.Status.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Conditions, &out.Status.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Addresses, &out.Status.Addresses, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.NodeInfo, &out.Status.NodeInfo, 0); err != nil { - return err - } - - for _, address := range in.Status.Addresses { - if address.Type == api.NodeLegacyHostIP { - out.HostIP = address.Address - } - } - out.PodCIDR = in.Spec.PodCIDR - out.ExternalID = in.Spec.ExternalID - out.ProviderID = in.Spec.ProviderID - out.Unschedulable = in.Spec.Unschedulable - return s.Convert(&in.Status.Capacity, &out.NodeResources.Capacity, 0) - }, - func(in *Minion, out *api.Node, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Phase, &out.Status.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Conditions, &out.Status.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Addresses, &out.Status.Addresses, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.NodeInfo, &out.Status.NodeInfo, 0); err != nil { - return err - } - - if in.HostIP != "" { - api.AddToNodeAddresses(&out.Status.Addresses, - api.NodeAddress{Type: api.NodeLegacyHostIP, Address: in.HostIP}) - } - out.Spec.PodCIDR = in.PodCIDR - out.Spec.ExternalID = in.ExternalID - out.Spec.ProviderID = in.ProviderID - out.Spec.Unschedulable = in.Unschedulable - return s.Convert(&in.NodeResources.Capacity, &out.Status.Capacity, 0) - }, - - func(in *api.LimitRange, out *LimitRange, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - return nil - }, - func(in *LimitRange, out *api.LimitRange, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - return nil - }, - - func(in *Namespace, out *api.Namespace, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - return nil - }, - - func(in *api.LimitRangeSpec, out *LimitRangeSpec, s conversion.Scope) error { - *out = LimitRangeSpec{} - out.Limits = make([]LimitRangeItem, len(in.Limits), len(in.Limits)) - for i := range in.Limits { - if err := s.Convert(&in.Limits[i], &out.Limits[i], 0); err != nil { - return err - } - } - return nil - }, - func(in *LimitRangeSpec, out *api.LimitRangeSpec, s conversion.Scope) error { - *out = api.LimitRangeSpec{} - out.Limits = make([]api.LimitRangeItem, len(in.Limits), len(in.Limits)) - for i := range in.Limits { - if err := s.Convert(&in.Limits[i], &out.Limits[i], 0); err != nil { - return err - } - } - return nil - }, - - func(in *api.LimitRangeItem, out *LimitRangeItem, s conversion.Scope) error { - *out = LimitRangeItem{} - out.Type = LimitType(in.Type) - if err := s.Convert(&in.Max, &out.Max, 0); err != nil { - return err - } - if err := s.Convert(&in.Min, &out.Min, 0); err != nil { - return err - } - if err := s.Convert(&in.Default, &out.Default, 0); err != nil { - return err - } - return nil - }, - func(in *LimitRangeItem, out *api.LimitRangeItem, s conversion.Scope) error { - *out = api.LimitRangeItem{} - out.Type = api.LimitType(in.Type) - if err := s.Convert(&in.Max, &out.Max, 0); err != nil { - return err - } - if err := s.Convert(&in.Min, &out.Min, 0); err != nil { - return err - } - if err := s.Convert(&in.Default, &out.Default, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuota, out *ResourceQuota, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuota, out *api.ResourceQuota, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuotaSpec, out *ResourceQuotaSpec, s conversion.Scope) error { - *out = ResourceQuotaSpec{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuotaSpec, out *api.ResourceQuotaSpec, s conversion.Scope) error { - *out = api.ResourceQuotaSpec{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuotaStatus, out *ResourceQuotaStatus, s conversion.Scope) error { - *out = ResourceQuotaStatus{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - if err := s.Convert(&in.Used, &out.Used, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuotaStatus, out *api.ResourceQuotaStatus, s conversion.Scope) error { - *out = api.ResourceQuotaStatus{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - if err := s.Convert(&in.Used, &out.Used, 0); err != nil { - return err - } - return nil - }, - - // Object ID <-> Name - // TODO: amend the conversion package to allow overriding specific fields. - func(in *ObjectReference, out *api.ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.Name = in.ID - out.UID = in.UID - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil - }, - func(in *api.ObjectReference, out *ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.ID = in.Name - out.UID = in.UID - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil - }, - - // Event Source <-> Source.Component - // Event Host <-> Source.Host - // TODO: remove this when it becomes possible to specify a field name conversion on a specific type - func(in *api.Event, out *Event, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - out.Source = in.Source.Component - out.Host = in.Source.Host - out.Timestamp = in.FirstTimestamp - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - - return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0) - }, - func(in *Event, out *api.Event, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - out.Source.Component = in.Source - out.Source.Host = in.Host - if in.FirstTimestamp.IsZero() { - // Assume this is an old event that does not specify FirstTimestamp/LastTimestamp/Count - out.FirstTimestamp = in.Timestamp - out.LastTimestamp = in.Timestamp - out.Count = 1 - } else { - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - } - return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0) - }, - - // This is triggered for the Memory field of Container. - func(in *int64, out *resource.Quantity, s conversion.Scope) error { - out.Set(*in) - out.Format = resource.BinarySI - return nil - }, - func(in *resource.Quantity, out *int64, s conversion.Scope) error { - *out = in.Value() - return nil - }, - - // This is triggered by the CPU field of Container. - // Note that if we add other int/Quantity conversions my - // simple hack (int64=Value(), int=MilliValue()) here won't work. - func(in *int, out *resource.Quantity, s conversion.Scope) error { - out.SetMilli(int64(*in)) - out.Format = resource.DecimalSI - return nil - }, - func(in *resource.Quantity, out *int, s conversion.Scope) error { - *out = int(in.MilliValue()) - return nil - }, - - // Convert resource lists. - func(in *ResourceList, out *api.ResourceList, s conversion.Scope) error { - *out = api.ResourceList{} - for k, v := range *in { - fv, err := strconv.ParseFloat(v.String(), 64) - if err != nil { - return &api.ConversionError{ - In: in, Out: out, - Message: fmt.Sprintf("value '%v' of '%v': %v", v, k, err), - } - } - if k == ResourceCPU { - (*out)[api.ResourceCPU] = *resource.NewMilliQuantity(int64(fv*1000), resource.DecimalSI) - } else { - (*out)[api.ResourceName(k)] = *resource.NewQuantity(int64(fv), resource.BinarySI) - } - } - return nil - }, - func(in *api.ResourceList, out *ResourceList, s conversion.Scope) error { - *out = ResourceList{} - for k, v := range *in { - if k == api.ResourceCPU { - (*out)[ResourceCPU] = util.NewIntOrStringFromString(fmt.Sprintf("%v", float64(v.MilliValue())/1000)) - } else { - (*out)[ResourceName(k)] = util.NewIntOrStringFromInt(int(v.Value())) - } - } - return nil - }, - - func(in *api.Volume, out *Volume, s conversion.Scope) error { - if err := s.Convert(&in.VolumeSource, &out.Source, 0); err != nil { - return err - } - out.Name = in.Name - return nil - }, - func(in *Volume, out *api.Volume, s conversion.Scope) error { - if err := s.Convert(&in.Source, &out.VolumeSource, 0); err != nil { - return err - } - out.Name = in.Name - return nil - }, - - // VolumeSource's HostDir is deprecated in favor of HostPath. - // TODO: It would be great if I could just map field names to - // convert or else maybe say "convert all members of this - // struct" and then fix up only the stuff that changed. - func(in *api.VolumeSource, out *VolumeSource, s conversion.Scope) error { - if err := s.Convert(&in.EmptyDir, &out.EmptyDir, 0); err != nil { - return err - } - if err := s.Convert(&in.GitRepo, &out.GitRepo, 0); err != nil { - return err - } - if err := s.Convert(&in.GCEPersistentDisk, &out.GCEPersistentDisk, 0); err != nil { - return err - } - if err := s.Convert(&in.ISCSI, &out.ISCSI, 0); err != nil { - return err - } - if err := s.Convert(&in.AWSElasticBlockStore, &out.AWSElasticBlockStore, 0); err != nil { - return err - } - if err := s.Convert(&in.HostPath, &out.HostDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Secret, &out.Secret, 0); err != nil { - return err - } - if err := s.Convert(&in.NFS, &out.NFS, 0); err != nil { - return err - } - if err := s.Convert(&in.Glusterfs, &out.Glusterfs, 0); err != nil { - return err - } - if err := s.Convert(&in.PersistentVolumeClaimVolumeSource, &out.PersistentVolumeClaimVolumeSource, 0); err != nil { - return err - } - if err := s.Convert(&in.RBD, &out.RBD, 0); err != nil { - return err - } - return nil - }, - func(in *VolumeSource, out *api.VolumeSource, s conversion.Scope) error { - if err := s.Convert(&in.EmptyDir, &out.EmptyDir, 0); err != nil { - return err - } - if err := s.Convert(&in.GitRepo, &out.GitRepo, 0); err != nil { - return err - } - if err := s.Convert(&in.GCEPersistentDisk, &out.GCEPersistentDisk, 0); err != nil { - return err - } - if err := s.Convert(&in.ISCSI, &out.ISCSI, 0); err != nil { - return err - } - if err := s.Convert(&in.AWSElasticBlockStore, &out.AWSElasticBlockStore, 0); err != nil { - return err - } - if err := s.Convert(&in.HostDir, &out.HostPath, 0); err != nil { - return err - } - if err := s.Convert(&in.Secret, &out.Secret, 0); err != nil { - return err - } - if err := s.Convert(&in.NFS, &out.NFS, 0); err != nil { - return err - } - if err := s.Convert(&in.PersistentVolumeClaimVolumeSource, &out.PersistentVolumeClaimVolumeSource, 0); err != nil { - return err - } - if err := s.Convert(&in.Glusterfs, &out.Glusterfs, 0); err != nil { - return err - } - if err := s.Convert(&in.RBD, &out.RBD, 0); err != nil { - return err - } - - return nil - }, - - func(in *api.PullPolicy, out *PullPolicy, s conversion.Scope) error { - switch *in { - case api.PullAlways: - *out = PullAlways - case api.PullNever: - *out = PullNever - case api.PullIfNotPresent: - *out = PullIfNotPresent - case "": - *out = "" - default: - // Let unknown values through - they will get caught by validation - *out = PullPolicy(*in) - } - return nil - }, - func(in *PullPolicy, out *api.PullPolicy, s conversion.Scope) error { - switch *in { - case PullAlways: - *out = api.PullAlways - case PullNever: - *out = api.PullNever - case PullIfNotPresent: - *out = api.PullIfNotPresent - case "": - *out = "" - default: - // Let unknown values through - they will get caught by validation - *out = api.PullPolicy(*in) - } - return nil - }, - - func(in *api.RestartPolicy, out *RestartPolicy, s conversion.Scope) error { - switch *in { - case api.RestartPolicyAlways: - *out = RestartPolicy{Always: &RestartPolicyAlways{}} - case api.RestartPolicyNever: - *out = RestartPolicy{Never: &RestartPolicyNever{}} - case api.RestartPolicyOnFailure: - *out = RestartPolicy{OnFailure: &RestartPolicyOnFailure{}} - default: - *out = RestartPolicy{} - } - return nil - }, - func(in *RestartPolicy, out *api.RestartPolicy, s conversion.Scope) error { - switch { - case in.Always != nil: - *out = api.RestartPolicyAlways - case in.Never != nil: - *out = api.RestartPolicyNever - case in.OnFailure != nil: - *out = api.RestartPolicyOnFailure - default: - *out = "" - } - return nil - }, - - func(in *api.Probe, out *LivenessProbe, s conversion.Scope) error { - if err := s.Convert(&in.Exec, &out.Exec, 0); err != nil { - return err - } - if err := s.Convert(&in.HTTPGet, &out.HTTPGet, 0); err != nil { - return err - } - if err := s.Convert(&in.TCPSocket, &out.TCPSocket, 0); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - return nil - }, - func(in *LivenessProbe, out *api.Probe, s conversion.Scope) error { - if err := s.Convert(&in.Exec, &out.Exec, 0); err != nil { - return err - } - if err := s.Convert(&in.HTTPGet, &out.HTTPGet, 0); err != nil { - return err - } - if err := s.Convert(&in.TCPSocket, &out.TCPSocket, 0); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - return nil - }, - - func(in *api.Endpoints, out *Endpoints, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Subsets, &out.Subsets, 0); err != nil { - return err - } - // Produce back-compat fields. - firstPortName := "" - if len(in.Subsets) > 0 { - if len(in.Subsets[0].Ports) > 0 { - if err := s.Convert(&in.Subsets[0].Ports[0].Protocol, &out.Protocol, 0); err != nil { - return err - } - firstPortName = in.Subsets[0].Ports[0].Name - } - } else { - out.Protocol = ProtocolTCP - } - for i := range in.Subsets { - ss := &in.Subsets[i] - for j := range ss.Ports { - ssp := &ss.Ports[j] - if ssp.Name != firstPortName { - continue - } - for k := range ss.Addresses { - ssa := &ss.Addresses[k] - hostPort := net.JoinHostPort(ssa.IP, strconv.Itoa(ssp.Port)) - out.Endpoints = append(out.Endpoints, hostPort) - if ssa.TargetRef != nil { - target := EndpointObjectReference{ - Endpoint: hostPort, - } - if err := s.Convert(ssa.TargetRef, &target.ObjectReference, 0); err != nil { - return err - } - out.TargetRefs = append(out.TargetRefs, target) - } - } - } - } - return nil - }, - func(in *Endpoints, out *api.Endpoints, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Subsets, &out.Subsets, 0); err != nil { - return err - } - // Back-compat fields are handled in the defaulting phase. - return nil - }, - - func(in *api.NodeCondition, out *NodeCondition, s conversion.Scope) error { - if err := s.Convert(&in.Type, &out.Kind, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.LastHeartbeatTime, &out.LastProbeTime, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTransitionTime, &out.LastTransitionTime, 0); err != nil { - return err - } - if err := s.Convert(&in.Reason, &out.Reason, 0); err != nil { - return err - } - if err := s.Convert(&in.Message, &out.Message, 0); err != nil { - return err - } - return nil - }, - func(in *NodeCondition, out *api.NodeCondition, s conversion.Scope) error { - if err := s.Convert(&in.Kind, &out.Type, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.LastProbeTime, &out.LastHeartbeatTime, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTransitionTime, &out.LastTransitionTime, 0); err != nil { - return err - } - if err := s.Convert(&in.Reason, &out.Reason, 0); err != nil { - return err - } - if err := s.Convert(&in.Message, &out.Message, 0); err != nil { - return err - } - return nil - }, - - func(in *api.NodeConditionType, out *NodeConditionKind, s conversion.Scope) error { - switch *in { - case api.NodeReady: - *out = NodeReady - break - case "": - *out = "" - default: - *out = NodeConditionKind(*in) - break - } - return nil - }, - func(in *NodeConditionKind, out *api.NodeConditionType, s conversion.Scope) error { - switch *in { - case NodeReady: - *out = api.NodeReady - break - case "": - *out = "" - default: - *out = api.NodeConditionType(*in) - break - } - return nil - }, - - func(in *api.ConditionStatus, out *ConditionStatus, s conversion.Scope) error { - switch *in { - case api.ConditionTrue: - *out = ConditionFull - break - case api.ConditionFalse: - *out = ConditionNone - break - default: - *out = ConditionStatus(*in) - break - } - return nil - }, - func(in *ConditionStatus, out *api.ConditionStatus, s conversion.Scope) error { - switch *in { - case ConditionFull: - *out = api.ConditionTrue - break - case ConditionNone: - *out = api.ConditionFalse - break - default: - *out = api.ConditionStatus(*in) - break - } - return nil - }, - - func(in *api.PodCondition, out *PodCondition, s conversion.Scope) error { - if err := s.Convert(&in.Type, &out.Kind, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - return nil - }, - func(in *PodCondition, out *api.PodCondition, s conversion.Scope) error { - if err := s.Convert(&in.Kind, &out.Type, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodConditionType, out *PodConditionKind, s conversion.Scope) error { - switch *in { - case api.PodReady: - *out = PodReady - break - case "": - *out = "" - default: - *out = PodConditionKind(*in) - break - } - - return nil - }, - func(in *PodConditionKind, out *api.PodConditionType, s conversion.Scope) error { - switch *in { - case PodReady: - *out = api.PodReady - break - case "": - *out = "" - default: - *out = api.PodConditionType(*in) - break - } - - return nil - }, - - func(in *Binding, out *api.Binding, s conversion.Scope) error { - if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil { - return err - } - out.Target = api.ObjectReference{ - Name: in.Host, - } - out.Name = in.PodID - return nil - }, - func(in *api.Binding, out *Binding, s conversion.Scope) error { - if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil { - return err - } - out.Host = in.Target.Name - out.PodID = in.Name - return nil - }, - func(in *api.SecretVolumeSource, out *SecretVolumeSource, s conversion.Scope) error { - out.Target.ID = in.SecretName - return nil - }, - func(in *SecretVolumeSource, out *api.SecretVolumeSource, s conversion.Scope) error { - out.SecretName = in.Target.ID - return nil - }, - func(in *api.ContainerState, out *ContainerState, s conversion.Scope) error { - if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil { - return err - } - if err := s.Convert(&in.Running, &out.Running, 0); err != nil { - return err - } - if err := s.Convert(&in.Terminated, &out.Termination, 0); err != nil { - return err - } - return nil - }, - func(in *ContainerState, out *api.ContainerState, s conversion.Scope) error { - if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil { - return err - } - if err := s.Convert(&in.Running, &out.Running, 0); err != nil { - return err - } - if err := s.Convert(&in.Termination, &out.Terminated, 0); err != nil { - return err - } - return nil - }, - ) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - - // Add field conversion funcs. - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "Pod", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "DesiredState.Host": - return "spec.host", value, nil - case "DesiredState.Status": - podStatus := PodStatus(value) - var internalValue api.PodPhase - api.Scheme.Convert(&podStatus, &internalValue) - return "status.phase", string(internalValue), nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "Node", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "unschedulable": - return "spec.unschedulable", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "ReplicationController", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "currentState.replicas": - return "status.replicas", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "Event", - func(label, value string) (string, string, error) { - switch label { - case "involvedObject.kind", - "involvedObject.namespace", - "involvedObject.uid", - "involvedObject.apiVersion", - "involvedObject.resourceVersion", - "involvedObject.fieldPath", - "reason", - "source": - return label, value, nil - case "involvedObject.id": - return "involvedObject.name", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "Namespace", - func(label, value string) (string, string, error) { - switch label { - case "status.phase": - return label, value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "Secret", - func(label, value string) (string, string, error) { - switch label { - case "type": - return label, value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta1", "ServiceAccount", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } -} diff --git a/pkg/api/v1beta1/conversion_test.go b/pkg/api/v1beta1/conversion_test.go deleted file mode 100644 index be69b0f1eb9..00000000000 --- a/pkg/api/v1beta1/conversion_test.go +++ /dev/null @@ -1,811 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1_test - -import ( - "encoding/json" - "reflect" - "testing" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource" - versioned "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -var Convert = api.Scheme.Convert - -func TestEmptyObjectConversion(t *testing.T) { - s, err := versioned.Codec.Encode(&versioned.LimitRange{}) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - // DeletionTimestamp is not included, while CreationTimestamp is (would always be set) - if string(s) != `{"kind":"LimitRange","creationTimestamp":null,"apiVersion":"v1beta1","spec":{"limits":null}}` { - t.Errorf("unexpected empty object: %s", string(s)) - } -} - -func TestNodeConversion(t *testing.T) { - version, kind, err := api.Scheme.ObjectVersionAndKind(&versioned.Minion{}) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if version != "v1beta1" || kind != "Minion" { - t.Errorf("unexpected version and kind: %s %s", version, kind) - } - - api.Scheme.Log(t) - obj, err := versioned.Codec.Decode([]byte(`{"kind":"Node","apiVersion":"v1beta1"}`)) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if _, ok := obj.(*api.Node); !ok { - t.Errorf("unexpected type: %#v", obj) - } - - obj, err = versioned.Codec.Decode([]byte(`{"kind":"NodeList","apiVersion":"v1beta1"}`)) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if _, ok := obj.(*api.NodeList); !ok { - t.Errorf("unexpected type: %#v", obj) - } - - obj = &api.Node{} - if err := versioned.Codec.DecodeInto([]byte(`{"kind":"Node","apiVersion":"v1beta1"}`), obj); err != nil { - t.Fatalf("unexpected error: %v", err) - } - - obj = &api.Node{} - data, err := versioned.Codec.Encode(obj) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - m := map[string]interface{}{} - if err := json.Unmarshal(data, &m); err != nil { - t.Fatalf("unexpected error: %v", err) - } - if m["kind"] != "Minion" { - t.Errorf("unexpected encoding: %s - %#v", m["kind"], string(data)) - } -} - -func TestEnvConversion(t *testing.T) { - nonCanonical := []versioned.EnvVar{ - {Key: "EV"}, - {Key: "EV", Name: "EX"}, - } - canonical := []api.EnvVar{ - {Name: "EV"}, - {Name: "EX"}, - } - for i := range nonCanonical { - var got api.EnvVar - err := Convert(&nonCanonical[i], &got) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if e, a := canonical[i], got; !reflect.DeepEqual(e, a) { - t.Errorf("expected %v, got %v", e, a) - } - } - - // Test conversion the other way, too. - for i := range canonical { - var got versioned.EnvVar - err := Convert(&canonical[i], &got) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if e, a := canonical[i].Name, got.Key; e != a { - t.Errorf("expected %v, got %v", e, a) - } - if e, a := canonical[i].Name, got.Name; e != a { - t.Errorf("expected %v, got %v", e, a) - } - } -} - -func TestVolumeMountConversionToOld(t *testing.T) { - table := []struct { - in api.VolumeMount - out versioned.VolumeMount - }{ - { - in: api.VolumeMount{Name: "foo", MountPath: "/dev/foo", ReadOnly: true}, - out: versioned.VolumeMount{Name: "foo", MountPath: "/dev/foo", Path: "/dev/foo", ReadOnly: true}, - }, - } - for _, item := range table { - got := versioned.VolumeMount{} - err := Convert(&item.in, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.out, got; !reflect.DeepEqual(e, a) { - t.Errorf("Expected: %#v, got %#v", e, a) - } - } -} - -func TestVolumeMountConversionToNew(t *testing.T) { - table := []struct { - in versioned.VolumeMount - out api.VolumeMount - }{ - { - in: versioned.VolumeMount{Name: "foo", MountPath: "/dev/foo", ReadOnly: true}, - out: api.VolumeMount{Name: "foo", MountPath: "/dev/foo", ReadOnly: true}, - }, { - in: versioned.VolumeMount{Name: "foo", MountPath: "/dev/foo", Path: "/dev/bar", ReadOnly: true}, - out: api.VolumeMount{Name: "foo", MountPath: "/dev/foo", ReadOnly: true}, - }, { - in: versioned.VolumeMount{Name: "foo", Path: "/dev/bar", ReadOnly: true}, - out: api.VolumeMount{Name: "foo", MountPath: "/dev/bar", ReadOnly: true}, - }, - } - for _, item := range table { - got := api.VolumeMount{} - err := Convert(&item.in, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.out, got; !reflect.DeepEqual(e, a) { - t.Errorf("Expected: %#v, got %#v", e, a) - } - } -} - -func TestMinionListConversionToNew(t *testing.T) { - oldMinion := func(id string) versioned.Minion { - return versioned.Minion{ - TypeMeta: versioned.TypeMeta{ID: id}, - ExternalID: id} - } - newNode := func(id string) api.Node { - return api.Node{ - ObjectMeta: api.ObjectMeta{Name: id}, - Spec: api.NodeSpec{ExternalID: id}, - } - } - oldMinions := []versioned.Minion{ - oldMinion("foo"), - oldMinion("bar"), - } - newMinions := []api.Node{ - newNode("foo"), - newNode("bar"), - } - - table := []struct { - oldML *versioned.MinionList - newML *api.NodeList - }{ - { - oldML: &versioned.MinionList{Items: oldMinions}, - newML: &api.NodeList{Items: newMinions}, - }, { - oldML: &versioned.MinionList{Minions: oldMinions}, - newML: &api.NodeList{Items: newMinions}, - }, { - oldML: &versioned.MinionList{ - Items: oldMinions, - Minions: []versioned.Minion{oldMinion("baz")}, - }, - newML: &api.NodeList{Items: newMinions}, - }, - } - - for _, item := range table { - got := &api.NodeList{} - err := Convert(item.oldML, got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - if e, a := item.newML, got; !api.Semantic.DeepEqual(e, a) { - t.Errorf("Expected: %#v, got %#v", e, a) - } - } -} - -func TestMinionListConversionToOld(t *testing.T) { - oldMinion := func(id string) versioned.Minion { - return versioned.Minion{TypeMeta: versioned.TypeMeta{ID: id}} - } - newNode := func(id string) api.Node { - return api.Node{ObjectMeta: api.ObjectMeta{Name: id}} - } - oldMinions := []versioned.Minion{ - oldMinion("foo"), - oldMinion("bar"), - } - newMinions := []api.Node{ - newNode("foo"), - newNode("bar"), - } - - newML := &api.NodeList{Items: newMinions} - oldML := &versioned.MinionList{ - Items: oldMinions, - Minions: oldMinions, - } - - got := &versioned.MinionList{} - err := Convert(newML, got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - if e, a := oldML, got; !api.Semantic.DeepEqual(e, a) { - t.Errorf("Expected: %#v, got %#v", e, a) - } -} - -func TestServiceEmptySelector(t *testing.T) { - // Nil map should be preserved - svc := &versioned.Service{Selector: nil} - data, err := api.Scheme.EncodeToVersion(svc, "v1beta1") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - obj, err := api.Scheme.Decode(data) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - selector := obj.(*api.Service).Spec.Selector - if selector != nil { - t.Errorf("unexpected selector: %#v", obj) - } - - // Empty map should be preserved - svc2 := &versioned.Service{Selector: map[string]string{}} - data, err = api.Scheme.EncodeToVersion(svc2, "v1beta1") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - obj, err = api.Scheme.Decode(data) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - selector = obj.(*api.Service).Spec.Selector - if selector == nil || len(selector) != 0 { - t.Errorf("unexpected selector: %#v", obj) - } -} - -func TestServicePorts(t *testing.T) { - testCases := []struct { - given versioned.Service - expected api.Service - roundtrip versioned.Service - }{ - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "legacy-with-defaults", - }, - Port: 111, - Protocol: versioned.ProtocolTCP, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Port: 111, - Protocol: api.ProtocolTCP, - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Port: 111, - Protocol: versioned.ProtocolTCP, - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "legacy-full", - }, - PortName: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolTCP, - TargetPort: util.NewIntOrStringFromString("p"), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "both", - }, - PortName: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - Ports: []versioned.ServicePort{{ - Name: "q", - Port: 222, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "q", - Port: 222, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "q", - Port: 222, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "one", - }, - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "two", - }, - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromInt(76), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: api.ProtocolTCP, - TargetPort: util.NewIntOrStringFromInt(76), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromInt(76), - }}, - }, - }, - } - - for i, tc := range testCases { - // Convert versioned -> internal. - got := api.Service{} - if err := Convert(&tc.given, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !reflect.DeepEqual(got.Spec.Ports, tc.expected.Spec.Ports) { - t.Errorf("[Case: %d] Expected %v, got %v", i, tc.expected.Spec.Ports, got.Spec.Ports) - } - - // Convert internal -> versioned. - got2 := versioned.Service{} - if err := Convert(&got, &got2); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !reflect.DeepEqual(got2.Ports, tc.roundtrip.Ports) { - t.Errorf("[Case: %d] Expected %v, got %v", i, tc.roundtrip.Ports, got2.Ports) - } - } -} - -func TestPullPolicyConversion(t *testing.T) { - table := []struct { - versioned versioned.PullPolicy - internal api.PullPolicy - }{ - { - versioned: versioned.PullAlways, - internal: api.PullAlways, - }, { - versioned: versioned.PullNever, - internal: api.PullNever, - }, { - versioned: versioned.PullIfNotPresent, - internal: api.PullIfNotPresent, - }, { - versioned: "", - internal: "", - }, { - versioned: "invalid value", - internal: "invalid value", - }, - } - for _, item := range table { - var got api.PullPolicy - err := Convert(&item.versioned, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.internal, got; e != a { - t.Errorf("Expected: %q, got %q", e, a) - } - } - for _, item := range table { - var got versioned.PullPolicy - err := Convert(&item.internal, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.versioned, got; e != a { - t.Errorf("Expected: %q, got %q", e, a) - } - } -} - -func getResourceRequirements(cpu, memory resource.Quantity) versioned.ResourceRequirements { - res := versioned.ResourceRequirements{} - res.Limits = versioned.ResourceList{} - if cpu.Value() > 0 { - res.Limits[versioned.ResourceCPU] = util.NewIntOrStringFromInt(int(cpu.Value())) - } - if memory.Value() > 0 { - res.Limits[versioned.ResourceMemory] = util.NewIntOrStringFromInt(int(memory.Value())) - } - - return res -} - -func TestContainerConversion(t *testing.T) { - cpuLimit := resource.MustParse("10") - memoryLimit := resource.MustParse("10M") - null := resource.Quantity{} - testCases := []versioned.Container{ - { - Name: "container", - Resources: getResourceRequirements(cpuLimit, memoryLimit), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Resources: getResourceRequirements(null, memoryLimit), - }, - { - Name: "container", - Memory: memoryLimit.Value(), - Resources: getResourceRequirements(cpuLimit, null), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Memory: memoryLimit.Value(), - }, - { - Name: "container", - Memory: memoryLimit.Value(), - Resources: getResourceRequirements(cpuLimit, resource.MustParse("100M")), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Resources: getResourceRequirements(resource.MustParse("500"), memoryLimit), - }, - } - - for i, tc := range testCases { - got := api.Container{} - if err := Convert(&tc, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if cpu := got.Resources.Limits.Cpu(); cpu.Value() != cpuLimit.Value() { - t.Errorf("[Case: %d] Expected cpu: %v, got: %v", i, cpuLimit, *cpu) - } - if memory := got.Resources.Limits.Memory(); memory.Value() != memoryLimit.Value() { - t.Errorf("[Case: %d] Expected memory: %v, got: %v", i, memoryLimit, *memory) - } - } -} - -func TestEndpointsConversion(t *testing.T) { - testCases := []struct { - given versioned.Endpoints - expected api.Endpoints - }{ - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "empty", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "one legacy", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{"1.2.3.4:88"}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{{ - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolTCP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "several legacy", - }, - Protocol: versioned.ProtocolUDP, - Endpoints: []string{"1.2.3.4:88", "1.2.3.4:89", "1.2.3.4:90"}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{ - { - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 89, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 90, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - }}, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "one subset", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{"1.2.3.4:88"}, - Subsets: []versioned.EndpointSubset{{ - Ports: []versioned.EndpointPort{{Name: "", Port: 88, Protocol: versioned.ProtocolTCP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{{ - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolTCP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "several subset", - }, - Protocol: versioned.ProtocolUDP, - Endpoints: []string{"1.2.3.4:88", "5.6.7.8:88", "1.2.3.4:89", "5.6.7.8:89"}, - Subsets: []versioned.EndpointSubset{ - { - Ports: []versioned.EndpointPort{{Name: "", Port: 88, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []versioned.EndpointPort{{Name: "", Port: 89, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []versioned.EndpointPort{{Name: "named", Port: 90, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - }, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{ - { - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 89, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []api.EndpointPort{{Name: "named", Port: 90, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - }}, - }, - } - - for i, tc := range testCases { - // Convert versioned -> internal. - got := api.Endpoints{} - if err := Convert(&tc.given, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !api.Semantic.DeepEqual(got.Subsets, tc.expected.Subsets) { - t.Errorf("[Case: %d] Expected %#v, got %#v", i, tc.expected.Subsets, got.Subsets) - } - - // Convert internal -> versioned. - got2 := versioned.Endpoints{} - if err := Convert(&got, &got2); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if got2.Protocol != tc.given.Protocol || !api.Semantic.DeepEqual(got2.Endpoints, tc.given.Endpoints) { - t.Errorf("[Case: %d] Expected %s %#v, got %s %#v", i, tc.given.Protocol, tc.given.Endpoints, got2.Protocol, got2.Endpoints) - } - } -} - -func TestSecretVolumeSourceConversion(t *testing.T) { - given := versioned.SecretVolumeSource{ - Target: versioned.ObjectReference{ - ID: "foo", - }, - } - - expected := api.SecretVolumeSource{ - SecretName: "foo", - } - - got := api.SecretVolumeSource{} - if err := Convert(&given, &got); err != nil { - t.Errorf("Unexpected error: %v", err) - } - if got.SecretName != expected.SecretName { - t.Errorf("Expected %v; got %v", expected, got) - } - - got2 := versioned.SecretVolumeSource{} - if err := Convert(&got, &got2); err != nil { - t.Errorf("Unexpected error: %v", err) - } - if got2.Target.ID != given.Target.ID { - t.Errorf("Expected %v; got %v", given, got2) - } -} - -func TestBadSecurityContextConversion(t *testing.T) { - priv := false - testCases := map[string]struct { - c *versioned.Container - err string - }{ - // this use case must use true for the container and false for the sc. Otherwise the defaulter - // will assume privileged was left undefined (since it is the default value) and copy the - // sc setting upwards - "mismatched privileged": { - c: &versioned.Container{ - Privileged: true, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - }, - }, - err: "container privileged settings do not match security context settings, cannot convert", - }, - "mismatched caps add": { - c: &versioned.Container{ - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"bar"}, - }, - }, - }, - err: "container capability settings do not match security context settings, cannot convert", - }, - "mismatched caps drop": { - c: &versioned.Container{ - Capabilities: versioned.Capabilities{ - Drop: []versioned.Capability{"foo"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - err: "container capability settings do not match security context settings, cannot convert", - }, - } - - for k, v := range testCases { - got := api.Container{} - err := Convert(v.c, &got) - if err == nil { - t.Errorf("expected error for case %s but got none", k) - } else { - if err.Error() != v.err { - t.Errorf("unexpected error for case %s. Expected: %s but got: %s", k, v.err, err.Error()) - } - } - } - -} diff --git a/pkg/api/v1beta1/defaults.go b/pkg/api/v1beta1/defaults.go deleted file mode 100644 index 0b2ea9d2253..00000000000 --- a/pkg/api/v1beta1/defaults.go +++ /dev/null @@ -1,242 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "net" - "strconv" - "strings" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" - "github.com/golang/glog" -) - -func addDefaultingFuncs() { - api.Scheme.AddDefaultingFuncs( - func(obj *ReplicationController) { - if len(obj.DesiredState.ReplicaSelector) == 0 { - obj.DesiredState.ReplicaSelector = obj.DesiredState.PodTemplate.Labels - } - if len(obj.Labels) == 0 { - obj.Labels = obj.DesiredState.PodTemplate.Labels - } - }, - func(obj *Volume) { - if util.AllPtrFieldsNil(&obj.Source) { - obj.Source = VolumeSource{ - EmptyDir: &EmptyDirVolumeSource{}, - } - } - }, - func(obj *ContainerPort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - }, - func(obj *Container) { - if obj.ImagePullPolicy == "" { - // TODO(dchen1107): Move ParseImageName code to pkg/util - parts := strings.Split(obj.Image, ":") - // Check image tag - if parts[len(parts)-1] == "latest" { - obj.ImagePullPolicy = PullAlways - } else { - obj.ImagePullPolicy = PullIfNotPresent - } - } - if obj.TerminationMessagePath == "" { - obj.TerminationMessagePath = TerminationMessagePathDefault - } - defaultSecurityContext(obj) - }, - func(obj *RestartPolicy) { - if util.AllPtrFieldsNil(obj) { - obj.Always = &RestartPolicyAlways{} - } - }, - func(obj *Service) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.SessionAffinity == "" { - obj.SessionAffinity = ServiceAffinityNone - } - if obj.Type == "" { - if obj.CreateExternalLoadBalancer { - obj.Type = ServiceTypeLoadBalancer - } else { - obj.Type = ServiceTypeClusterIP - } - } else if obj.Type == ServiceTypeLoadBalancer { - obj.CreateExternalLoadBalancer = true - } - 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) { - if obj.DNSPolicy == "" { - obj.DNSPolicy = DNSClusterFirst - } - if obj.HostNetwork { - defaultHostNetworkPorts(&obj.Containers) - } - }, - func(obj *ContainerManifest) { - if obj.DNSPolicy == "" { - obj.DNSPolicy = DNSClusterFirst - } - if obj.HostNetwork { - defaultHostNetworkPorts(&obj.Containers) - } - }, - func(obj *LivenessProbe) { - if obj.TimeoutSeconds == 0 { - obj.TimeoutSeconds = 1 - } - }, - func(obj *Secret) { - if obj.Type == "" { - obj.Type = SecretTypeOpaque - } - }, - func(obj *PersistentVolume) { - if obj.Status.Phase == "" { - obj.Status.Phase = VolumePending - } - }, - func(obj *PersistentVolumeClaim) { - if obj.Status.Phase == "" { - obj.Status.Phase = ClaimPending - } - }, - func(obj *Endpoints) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if len(obj.Subsets) == 0 && len(obj.Endpoints) > 0 { - // Must be a legacy-style object - populate - // Subsets from the older fields. Do this the - // simplest way, which is dumb (but valid). - for i := range obj.Endpoints { - host, portStr, err := net.SplitHostPort(obj.Endpoints[i]) - if err != nil { - glog.Errorf("failed to SplitHostPort(%q)", obj.Endpoints[i]) - } - var tgtRef *ObjectReference - for j := range obj.TargetRefs { - if obj.TargetRefs[j].Endpoint == obj.Endpoints[i] { - tgtRef = &ObjectReference{} - *tgtRef = obj.TargetRefs[j].ObjectReference - } - } - port, err := strconv.Atoi(portStr) - if err != nil { - glog.Errorf("failed to Atoi(%q)", portStr) - } - obj.Subsets = append(obj.Subsets, EndpointSubset{ - Addresses: []EndpointAddress{{IP: host, TargetRef: tgtRef}}, - Ports: []EndpointPort{{Protocol: obj.Protocol, Port: port}}, - }) - } - } - for i := range obj.Subsets { - ss := &obj.Subsets[i] - for i := range ss.Ports { - ep := &ss.Ports[i] - if ep.Protocol == "" { - ep.Protocol = ProtocolTCP - } - } - } - }, - func(obj *HTTPGetAction) { - if obj.Path == "" { - obj.Path = "/" - } - }, - func(obj *NamespaceStatus) { - if obj.Phase == "" { - obj.Phase = NamespaceActive - } - }, - func(obj *Minion) { - if obj.ExternalID == "" { - obj.ExternalID = obj.ID - } - }, - func(obj *ObjectFieldSelector) { - if obj.APIVersion == "" { - obj.APIVersion = "v1beta1" - } - }, - ) -} - -// With host networking default all host ports to container ports. -func defaultHostNetworkPorts(containers *[]Container) { - for i := range *containers { - for j := range (*containers)[i].Ports { - if (*containers)[i].Ports[j].HostPort == 0 { - (*containers)[i].Ports[j].HostPort = (*containers)[i].Ports[j].ContainerPort - } - } - } -} - -// defaultSecurityContext performs the downward and upward merges of a pod definition -func defaultSecurityContext(container *Container) { - if container.SecurityContext == nil { - glog.V(5).Infof("creating security context for container %s", container.Name) - container.SecurityContext = &SecurityContext{} - } - // if there are no capabilities defined on the SecurityContext then copy the container settings - if container.SecurityContext.Capabilities == nil { - container.SecurityContext.Capabilities = &container.Capabilities - } else { - // if there are capabilities defined on the security context and the container setting is - // empty then assume that it was left off the pod definition and ensure that the container - // settings match the security context settings (checked by the convert functions). If - // there are settings in both then don't touch it, the converter will error if they don't - // match - if len(container.Capabilities.Add) == 0 { - container.Capabilities.Add = container.SecurityContext.Capabilities.Add - } - if len(container.Capabilities.Drop) == 0 { - container.Capabilities.Drop = container.SecurityContext.Capabilities.Drop - } - } - // if there are no privileged settings on the security context then copy the container settings - if container.SecurityContext.Privileged == nil { - container.SecurityContext.Privileged = &container.Privileged - } else { - // we don't have a good way to know if container.Privileged was set or just defaulted to false - // so the best we can do here is check if the securityContext is set to true and the - // container is set to false and assume that the Privileged field was left off the container - // definition and not an intentional mismatch - if *container.SecurityContext.Privileged && !container.Privileged { - container.Privileged = *container.SecurityContext.Privileged - } - } -} diff --git a/pkg/api/v1beta1/defaults_test.go b/pkg/api/v1beta1/defaults_test.go deleted file mode 100644 index e1e62d5dc1f..00000000000 --- a/pkg/api/v1beta1/defaults_test.go +++ /dev/null @@ -1,461 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1_test - -import ( - "reflect" - "testing" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - versioned "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := versioned.Codec.Encode(obj) - if err != nil { - t.Errorf("%v\n %#v", err, obj) - return nil - } - obj2, err := api.Codec.Decode(data) - if err != nil { - t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) - return nil - } - obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3) - if err != nil { - t.Errorf("%v\nSource: %#v", err, obj2) - return nil - } - return obj3 -} - -func TestSetDefaultReplicationController(t *testing.T) { - tests := []struct { - rc *versioned.ReplicationController - expectLabels bool - expectSelector bool - }{ - { - rc: &versioned.ReplicationController{ - DesiredState: versioned.ReplicationControllerState{ - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: true, - expectSelector: true, - }, - { - rc: &versioned.ReplicationController{ - Labels: map[string]string{ - "bar": "foo", - }, - DesiredState: versioned.ReplicationControllerState{ - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: false, - expectSelector: true, - }, - { - rc: &versioned.ReplicationController{ - Labels: map[string]string{ - "bar": "foo", - }, - DesiredState: versioned.ReplicationControllerState{ - ReplicaSelector: map[string]string{ - "some": "other", - }, - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: false, - expectSelector: false, - }, - { - rc: &versioned.ReplicationController{ - DesiredState: versioned.ReplicationControllerState{ - ReplicaSelector: map[string]string{ - "some": "other", - }, - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: true, - expectSelector: false, - }, - } - for _, test := range tests { - rc := test.rc - obj2 := roundTrip(t, runtime.Object(rc)) - rc2, ok := obj2.(*versioned.ReplicationController) - if !ok { - t.Errorf("unexpected object: %v", rc2) - t.FailNow() - } - if test.expectSelector != reflect.DeepEqual(rc2.DesiredState.ReplicaSelector, rc2.DesiredState.PodTemplate.Labels) { - if test.expectSelector { - t.Errorf("expected: %v, got: %v", rc2.DesiredState.PodTemplate.Labels, rc2.DesiredState.ReplicaSelector) - } else { - t.Errorf("unexpected equality: %v", rc2.DesiredState.PodTemplate.Labels) - } - } - if test.expectLabels != reflect.DeepEqual(rc2.Labels, rc2.DesiredState.PodTemplate.Labels) { - if test.expectLabels { - t.Errorf("expected: %v, got: %v", rc2.DesiredState.PodTemplate.Labels, rc2.Labels) - } else { - t.Errorf("unexpected equality: %v", rc2.DesiredState.PodTemplate.Labels) - } - } - } -} - -func TestSetDefaultService(t *testing.T) { - svc := &versioned.Service{} - obj2 := roundTrip(t, runtime.Object(svc)) - svc2 := obj2.(*versioned.Service) - if svc2.Protocol != versioned.ProtocolTCP { - t.Errorf("Expected default protocol :%s, got: %s", versioned.ProtocolTCP, svc2.Protocol) - } - if svc2.SessionAffinity != versioned.ServiceAffinityNone { - t.Errorf("Expected default session affinity type:%s, got: %s", versioned.ServiceAffinityNone, svc2.SessionAffinity) - } - if svc2.Type != versioned.ServiceTypeClusterIP { - t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeClusterIP, svc2.Type) - } -} - -func TestSetDefaultServiceWithLoadbalancer(t *testing.T) { - svc := &versioned.Service{} - svc.CreateExternalLoadBalancer = true - obj2 := roundTrip(t, runtime.Object(svc)) - svc2 := obj2.(*versioned.Service) - if svc2.Type != versioned.ServiceTypeLoadBalancer { - t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeLoadBalancer, svc2.Type) - } -} - -func TestSetDefaultSecret(t *testing.T) { - s := &versioned.Secret{} - obj2 := roundTrip(t, runtime.Object(s)) - s2 := obj2.(*versioned.Secret) - - if s2.Type != versioned.SecretTypeOpaque { - t.Errorf("Expected secret type %v, got %v", versioned.SecretTypeOpaque, s2.Type) - } -} - -func TestSetDefaultPersistentVolume(t *testing.T) { - pv := &versioned.PersistentVolume{} - obj2 := roundTrip(t, runtime.Object(pv)) - pv2 := obj2.(*versioned.PersistentVolume) - - if pv2.Status.Phase != versioned.VolumePending { - t.Errorf("Expected volume phase %v, got %v", versioned.VolumePending, pv2.Status.Phase) - } -} - -func TestSetDefaultPersistentVolumeClaim(t *testing.T) { - pvc := &versioned.PersistentVolumeClaim{} - obj2 := roundTrip(t, runtime.Object(pvc)) - pvc2 := obj2.(*versioned.PersistentVolumeClaim) - - if pvc2.Status.Phase != versioned.ClaimPending { - t.Errorf("Expected claim phase %v, got %v", versioned.ClaimPending, pvc2.Status.Phase) - } -} - -// Test that we use "legacy" fields if "modern" fields are not provided. -func TestSetDefaulEndpointsLegacy(t *testing.T) { - in := &versioned.Endpoints{ - Protocol: "UDP", - Endpoints: []string{"1.2.3.4:93", "5.6.7.8:76"}, - TargetRefs: []versioned.EndpointObjectReference{{Endpoint: "1.2.3.4:93", ObjectReference: versioned.ObjectReference{ID: "foo"}}}, - } - obj := roundTrip(t, runtime.Object(in)) - out := obj.(*versioned.Endpoints) - - if len(out.Subsets) != 2 { - t.Errorf("Expected 2 EndpointSubsets, got %d (%#v)", len(out.Subsets), out.Subsets) - } - expected := []versioned.EndpointSubset{ - { - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4", TargetRef: &versioned.ObjectReference{ID: "foo"}}}, - Ports: []versioned.EndpointPort{{Protocol: versioned.ProtocolUDP, Port: 93}}, - }, - { - Addresses: []versioned.EndpointAddress{{IP: "5.6.7.8"}}, - Ports: []versioned.EndpointPort{{Protocol: versioned.ProtocolUDP, Port: 76}}, - }, - } - if !reflect.DeepEqual(out.Subsets, expected) { - t.Errorf("Expected %#v, got %#v", expected, out.Subsets) - } -} - -func TestSetDefaulEndpointsProtocol(t *testing.T) { - in := &versioned.Endpoints{Subsets: []versioned.EndpointSubset{ - {Ports: []versioned.EndpointPort{{}, {Protocol: "UDP"}, {}}}, - }} - obj := roundTrip(t, runtime.Object(in)) - out := obj.(*versioned.Endpoints) - - if out.Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Protocol) - } - for i := range out.Subsets { - for j := range out.Subsets[i].Ports { - if in.Subsets[i].Ports[j].Protocol == "" { - if out.Subsets[i].Ports[j].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Subsets[i].Ports[j].Protocol) - } - } else { - if out.Subsets[i].Ports[j].Protocol != in.Subsets[i].Ports[j].Protocol { - t.Errorf("Expected protocol %s, got %s", in.Subsets[i].Ports[j].Protocol, out.Subsets[i].Ports[j].Protocol) - } - } - } - } -} - -func TestSetDefaultNamespace(t *testing.T) { - s := &versioned.Namespace{} - obj2 := roundTrip(t, runtime.Object(s)) - s2 := obj2.(*versioned.Namespace) - - if s2.Status.Phase != versioned.NamespaceActive { - t.Errorf("Expected phase %v, got %v", versioned.NamespaceActive, s2.Status.Phase) - } -} - -func TestSetDefaultContainerManifestHostNetwork(t *testing.T) { - portNum := 8080 - s := versioned.ContainerManifest{} - s.HostNetwork = true - s.Containers = []versioned.Container{ - { - Ports: []versioned.ContainerPort{ - { - ContainerPort: portNum, - }, - }, - }, - } - obj2 := roundTrip(t, runtime.Object(&versioned.ContainerManifestList{ - Items: []versioned.ContainerManifest{s}, - })) - sList2 := obj2.(*versioned.ContainerManifestList) - s2 := sList2.Items[0] - - hostPortNum := s2.Containers[0].Ports[0].HostPort - if hostPortNum != portNum { - t.Errorf("Expected container port to be defaulted, was made %d instead of %d", hostPortNum, portNum) - } -} - -func TestSetDefaultServicePort(t *testing.T) { - // Unchanged if set. - in := &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "UDP", Port: 9376, ContainerPort: util.NewIntOrStringFromInt(118)}}} - out := roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolUDP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != in.Ports[0].ContainerPort { - t.Errorf("Expected port %d, got %d", in.Ports[0].ContainerPort, out.Ports[0].ContainerPort) - } - - // Defaulted. - in = &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "", Port: 9376, ContainerPort: util.NewIntOrStringFromInt(0)}}} - out = roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != util.NewIntOrStringFromInt(in.Ports[0].Port) { - t.Errorf("Expected port %d, got %v", in.Ports[0].Port, out.Ports[0].ContainerPort) - } - - // Defaulted. - in = &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "", Port: 9376, ContainerPort: util.NewIntOrStringFromString("")}}} - out = roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != util.NewIntOrStringFromInt(in.Ports[0].Port) { - t.Errorf("Expected port %d, got %v", in.Ports[0].Port, out.Ports[0].ContainerPort) - } -} - -func TestSetDefaultMinionExternalID(t *testing.T) { - name := "node0" - m := &versioned.Minion{} - m.ID = name - obj2 := roundTrip(t, runtime.Object(m)) - m2 := obj2.(*versioned.Minion) - if m2.ExternalID != name { - t.Errorf("Expected default External ID: %s, got: %s", name, m2.ExternalID) - } - if m2.ProviderID != "" { - t.Errorf("Expected empty default Cloud Provider ID, got: %s", m2.ProviderID) - } -} - -func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) { - s := versioned.ContainerManifest{ - Containers: []versioned.Container{ - { - Env: []versioned.EnvVar{ - { - ValueFrom: &versioned.EnvVarSource{ - FieldRef: &versioned.ObjectFieldSelector{}, - }, - }, - }, - }, - }, - } - obj2 := roundTrip(t, runtime.Object(&versioned.ContainerManifestList{ - Items: []versioned.ContainerManifest{s}, - })) - sList2 := obj2.(*versioned.ContainerManifestList) - s2 := sList2.Items[0] - - apiVersion := s2.Containers[0].Env[0].ValueFrom.FieldRef.APIVersion - if apiVersion != "v1beta1" { - t.Errorf("Expected default APIVersion v1beta1, got: %v", apiVersion) - } -} - -func TestSetDefaultSecurityContext(t *testing.T) { - priv := false - privTrue := true - testCases := map[string]struct { - c versioned.Container - }{ - "downward defaulting caps": { - c: versioned.Container{ - Privileged: false, - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - }, - }, - }, - "downward defaulting priv": { - c: versioned.Container{ - Privileged: false, - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - }, - "upward defaulting caps": { - c: versioned.Container{ - Privileged: false, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"biz"}, - Drop: []versioned.Capability{"baz"}, - }, - }, - }, - }, - "upward defaulting priv": { - c: versioned.Container{ - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Privileged: &privTrue, - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - }, - } - - pod := &versioned.Pod{ - DesiredState: versioned.PodState{ - Manifest: versioned.ContainerManifest{}, - }, - } - - for k, v := range testCases { - pod.DesiredState.Manifest.Containers = []versioned.Container{v.c} - obj := roundTrip(t, runtime.Object(pod)) - defaultedPod := obj.(*versioned.Pod) - c := defaultedPod.DesiredState.Manifest.Containers[0] - if isEqual, issues := areSecurityContextAndContainerEqual(&c); !isEqual { - t.Errorf("test case %s expected the security context to have the same values as the container but found %#v", k, issues) - } - } -} - -func areSecurityContextAndContainerEqual(c *versioned.Container) (bool, []string) { - issues := make([]string, 0) - equal := true - - if c.SecurityContext == nil || c.SecurityContext.Privileged == nil || c.SecurityContext.Capabilities == nil { - equal = false - issues = append(issues, "Expected non nil settings for SecurityContext") - return equal, issues - } - if *c.SecurityContext.Privileged != c.Privileged { - equal = false - issues = append(issues, "The defaulted SecurityContext.Privileged value did not match the container value") - } - if !reflect.DeepEqual(c.Capabilities.Add, c.Capabilities.Add) { - equal = false - issues = append(issues, "The defaulted SecurityContext.Capabilities.Add did not match the container settings") - } - if !reflect.DeepEqual(c.Capabilities.Drop, c.Capabilities.Drop) { - equal = false - issues = append(issues, "The defaulted SecurityContext.Capabilities.Drop did not match the container settings") - } - return equal, issues -} diff --git a/pkg/api/v1beta1/doc.go b/pkg/api/v1beta1/doc.go deleted file mode 100644 index 9f524e6de8b..00000000000 --- a/pkg/api/v1beta1/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta1 is the v1beta1 version of the API. -package v1beta1 diff --git a/pkg/api/v1beta1/register.go b/pkg/api/v1beta1/register.go deleted file mode 100644 index 29d29844961..00000000000 --- a/pkg/api/v1beta1/register.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/registered" - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" -) - -// Codec encodes internal objects to the v1beta1 scheme -var Codec = runtime.CodecFor(api.Scheme, "v1beta1") - -// Dependency does nothing but give a hook for other packages to force a -// compile-time error when this API version is eventually removed. This is -// useful, for example, to clean up things that are implicitly tied to -// semantics of older APIs. -const Dependency = true - -func init() { - // Check if v1beta1 is in the list of supported API versions. - if !registered.IsRegisteredAPIVersion("v1beta1") { - return - } - - // Register the API. - addKnownTypes() - addConversionFuncs() - addDefaultingFuncs() -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes() { - api.Scheme.AddKnownTypes("v1beta1", - &Pod{}, - &PodStatusResult{}, - &PodList{}, - &ReplicationController{}, - &ReplicationControllerList{}, - &Service{}, - &ServiceList{}, - &Endpoints{}, - &EndpointsList{}, - &Minion{}, - &MinionList{}, - &NodeInfo{}, - &Binding{}, - &Status{}, - &Event{}, - &EventList{}, - &ContainerManifest{}, - &ContainerManifestList{}, - &List{}, - &LimitRange{}, - &LimitRangeList{}, - &ResourceQuota{}, - &ResourceQuotaList{}, - &Namespace{}, - &NamespaceList{}, - &Secret{}, - &SecretList{}, - &ServiceAccount{}, - &ServiceAccountList{}, - &PersistentVolume{}, - &PersistentVolumeList{}, - &PersistentVolumeClaim{}, - &PersistentVolumeClaimList{}, - &DeleteOptions{}, - &ListOptions{}, - &PodLogOptions{}, - &PodExecOptions{}, - &PodProxyOptions{}, - &ComponentStatus{}, - &ComponentStatusList{}, - &SerializedReference{}, - &RangeAllocation{}, - ) - // Future names are supported - api.Scheme.AddKnownTypeWithName("v1beta1", "Node", &Minion{}) - api.Scheme.AddKnownTypeWithName("v1beta1", "NodeList", &MinionList{}) -} - -func (*Pod) IsAnAPIObject() {} -func (*PodStatusResult) IsAnAPIObject() {} -func (*PodList) IsAnAPIObject() {} -func (*ReplicationController) IsAnAPIObject() {} -func (*ReplicationControllerList) IsAnAPIObject() {} -func (*Service) IsAnAPIObject() {} -func (*ServiceList) IsAnAPIObject() {} -func (*Endpoints) IsAnAPIObject() {} -func (*EndpointsList) IsAnAPIObject() {} -func (*Minion) IsAnAPIObject() {} -func (*NodeInfo) IsAnAPIObject() {} -func (*MinionList) IsAnAPIObject() {} -func (*Binding) IsAnAPIObject() {} -func (*Status) IsAnAPIObject() {} -func (*Event) IsAnAPIObject() {} -func (*EventList) IsAnAPIObject() {} -func (*ContainerManifest) IsAnAPIObject() {} -func (*ContainerManifestList) IsAnAPIObject() {} -func (*List) IsAnAPIObject() {} -func (*LimitRange) IsAnAPIObject() {} -func (*LimitRangeList) IsAnAPIObject() {} -func (*ResourceQuota) IsAnAPIObject() {} -func (*ResourceQuotaList) IsAnAPIObject() {} -func (*Namespace) IsAnAPIObject() {} -func (*NamespaceList) IsAnAPIObject() {} -func (*Secret) IsAnAPIObject() {} -func (*SecretList) IsAnAPIObject() {} -func (*ServiceAccount) IsAnAPIObject() {} -func (*ServiceAccountList) IsAnAPIObject() {} -func (*PersistentVolume) IsAnAPIObject() {} -func (*PersistentVolumeList) IsAnAPIObject() {} -func (*PersistentVolumeClaim) IsAnAPIObject() {} -func (*PersistentVolumeClaimList) IsAnAPIObject() {} -func (*DeleteOptions) IsAnAPIObject() {} -func (*ListOptions) IsAnAPIObject() {} -func (*PodLogOptions) IsAnAPIObject() {} -func (*PodExecOptions) IsAnAPIObject() {} -func (*PodProxyOptions) IsAnAPIObject() {} -func (*ComponentStatus) IsAnAPIObject() {} -func (*ComponentStatusList) IsAnAPIObject() {} -func (*SerializedReference) IsAnAPIObject() {} -func (*RangeAllocation) IsAnAPIObject() {} diff --git a/pkg/api/v1beta1/types.go b/pkg/api/v1beta1/types.go deleted file mode 100644 index a4b5bd6ba18..00000000000 --- a/pkg/api/v1beta1/types.go +++ /dev/null @@ -1,1877 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" - "github.com/GoogleCloudPlatform/kubernetes/pkg/types" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -// Common string formats -// --------------------- -// Many fields in this API have formatting requirements. The commonly used -// formats are defined here. -// -// C_IDENTIFIER: This is a string that conforms to the definition of an "identifier" -// in the C language. This is captured by the following regex: -// [A-Za-z_][A-Za-z0-9_]* -// This defines the format, but not the length restriction, which should be -// specified at the definition of any field of this type. -// -// DNS_LABEL: This is a string, no more than 63 characters long, that conforms -// to the definition of a "label" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])? -// -// DNS_SUBDOMAIN: This is a string, no more than 253 characters long, that conforms -// to the definition of a "subdomain" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* -// or more simply: -// DNS_LABEL(\.DNS_LABEL)* - -// ContainerManifest corresponds to the Container Manifest format, documented at: -// https://developers.google.com/compute/docs/containers/container_vms#container_manifest -// This is used as the representation of Kubernetes workloads. -type ContainerManifest struct { - // Required: This must be a supported version string, such as "v1beta1". - Version string `json:"version" description:"manifest version; must be v1beta1"` - // Required: This must be a DNS_SUBDOMAIN. - // TODO: ID on Manifest is deprecated and will be removed in the future. - ID string `json:"id" description:"manifest name; must be a DNS_SUBDOMAIN; cannot be updated"` - // TODO: UUID on Manifext is deprecated in the future once we are done - // with the API refactory. It is required for now to determine the instance - // of a Pod. - UUID types.UID `json:"uuid,omitempty" description:"manifest UUID, populated by the system, read-only"` - Volumes []Volume `json:"volumes" description:"list of volumes that can be mounted by containers belonging to the pod"` - Containers []Container `json:"containers" description:"list of containers belonging to the pod; containers cannot currently be added or removed"` - RestartPolicy RestartPolicy `json:"restartPolicy,omitempty" description:"restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways"` - // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. - // Value must be non-negative integer. The value zero indicates delete immediately. - // If this value is nil, the default grace period will be used instead. - // The grace period is the duration in seconds after the processes running in the pod are sent - // a termination signal and the time when the processes are forcibly halted with a kill signal. - // Set this value longer than the expected cleanup time for your process. - TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" description:"optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process"` - ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" description:"optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers; value must be a positive integer` - // Optional: Set DNS policy. Defaults to "ClusterFirst" - DNSPolicy DNSPolicy `json:"dnsPolicy,omitempty" description:"DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"` - // Uses the host's network namespace. If this option is set, the ports that will be - // used must be specified. - // Optional: Default to false. - HostNetwork bool `json:"hostNetwork,omitempty" description:"host networking requested for this pod"` - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. For example, - // in the case of docker, only DockerConfig type secrets are honored. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling the container images"` -} - -// ContainerManifestList is used to communicate container manifests to kubelet. -type ContainerManifestList struct { - TypeMeta `json:",inline"` - Items []ContainerManifest `json:"items" description:"list of pod container manifests"` -} - -const ( - // TerminationMessagePathDefault means the default path to capture the application termination message running in a container - TerminationMessagePathDefault string = "/dev/termination-log" -) - -// Volume represents a named volume in a pod that may be accessed by any containers in the pod. -type Volume struct { - // Required: This must be a DNS_LABEL. Each volume in a pod must have - // a unique name. - Name string `json:"name" description:"volume name; must be a DNS_LABEL and unique within the pod"` - // Source represents the location and type of a volume to mount. - // This is optional for now. If not specified, the Volume is implied to be an EmptyDir. - // This implied behavior is deprecated and will be removed in a future version. - Source VolumeSource `json:"source,omitempty" description:"location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, AWSElasticBlockStore, or GitRepo; default is EmptyDir"` -} - -// VolumeSource represents the source location of a volume to mount. -// Only one of its members may be specified. -type VolumeSource struct { - // HostDir represents a pre-existing directory on the host machine that is directly - // exposed to the container. This is generally used for system agents or other privileged - // things that are allowed to see the host machine. Most containers will NOT need this. - // TODO(jonesdl) We need to restrict who can use host directory mounts and - // who can/can not mount host directories as read/write. - HostDir *HostPathVolumeSource `json:"hostDir,omitempty" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` - // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDirVolumeSource `json:"emptyDir,omitempty" description:"temporary directory that shares a pod's lifetime"` - // GCEPersistentDisk represents a GCE Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk,omitempty" description:"GCE disk resource attached to the host machine on demand"` - // AWSElasticBlockStore represents an AWS Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty" description:"AWS disk resource attached to the host machine on demand"` - // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepoVolumeSource `json:"gitRepo,omitempty" description:"git repository at a particular revision"` - // Secret represents a secret to populate the volume with - Secret *SecretVolumeSource `json:"secret,omitempty" description:"secret to populate volume with"` - // NFS represents an NFS mount on the host that shares a pod's lifetime - NFS *NFSVolumeSource `json:"nfs,omitempty" description:"NFS volume that will be mounted in the host machine "` - // ISCSI represents an ISCSI Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - ISCSI *ISCSIVolumeSource `json:"iscsi,omitempty" description:"iSCSI disk attached to host machine on demand"` - // Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime - Glusterfs *GlusterfsVolumeSource `json:"glusterfs,omitempty" description:"Glusterfs volume that will be mounted on the host machine "` - // PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace - PersistentVolumeClaimVolumeSource *PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty" description:"a reference to a PersistentVolumeClaim in the same namespace"` - // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime - RBD *RBDVolumeSource `json:"rbd,omitempty" description:"rados block volume that will be mounted on the host machine"` -} - -// Similar to VolumeSource but meant for the administrator who creates PVs. -// Exactly one of its members must be set. -type PersistentVolumeSource struct { - // GCEPersistentDisk represents a GCE Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk,omitempty" description:"GCE disk resource provisioned by an admin"` - // AWSElasticBlockStore represents an AWS EBS volume that is attached to a - // kubelet's host machine and then exposed to the pod. - AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty" description:"AWS disk resource provisioned by an admin"` - // HostPath represents a directory on the host. - // This is useful for development and testing only. - // on-host storage is not supported in any way. - HostPath *HostPathVolumeSource `json:"hostPath,omitempty" description:"a HostPath provisioned by a developer or tester; for develment use only"` - // Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod - Glusterfs *GlusterfsVolumeSource `json:"glusterfs,omitempty" description:"Glusterfs volume resource provisioned by an admin"` - // NFS represents an NFS mount on the host - NFS *NFSVolumeSource `json:"nfs,omitempty" description:"NFS volume resource provisioned by an admin"` - // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime - RBD *RBDVolumeSource `json:"rbd,omitempty" description:"rados block volume that will be mounted on the host machine"` - // ISCSI represents an ISCSI Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - ISCSI *ISCSIVolumeSource `json:"iscsi,omitempty" description:"an iSCSI disk resource provisioned by an admin"` -} - -type PersistentVolumeClaimVolumeSource struct { - // ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume - ClaimName string `json:"claimName" description:"the name of the claim in the same namespace to be mounted as a volume"` - // Optional: Defaults to false (read/write). ReadOnly here - // will force the ReadOnly setting in VolumeMounts - ReadOnly bool `json:"readOnly,omitempty" description:"mount volume as read-only when true; default false"` -} - -type PersistentVolume struct { - TypeMeta `json:",inline"` - - //Spec defines a persistent volume owned by the cluster - Spec PersistentVolumeSpec `json:"spec,omitempty" description:"specification of a persistent volume as provisioned by an administrator"` - - // Status represents the current information about persistent volume. - Status PersistentVolumeStatus `json:"status,omitempty" description:"current status of a persistent volume; populated by the system, read-only"` -} - -type PersistentVolumeSpec struct { - // Resources represents the actual resources of the volume - Capacity ResourceList `json:"capacity,omitempty" description:"a description of the persistent volume's resources and capacity"` - // Source represents the location and type of a volume to mount. - PersistentVolumeSource `json:",inline" description:"the actual volume backing the persistent volume"` - // AccessModes contains all ways the volume can be mounted - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"all ways the volume can be mounted"` - // ClaimRef is a non-binding reference to the claim bound to this volume - ClaimRef *ObjectReference `json:"claimRef,omitempty" description:"when bound, a reference to the bound claim"` -} - -type PersistentVolumeStatus struct { - // Phase indicates if a volume is available, bound to a claim, or released by a claim - Phase PersistentVolumePhase `json:"phase,omitempty" description:"the current phase of a persistent volume"` -} - -type PersistentVolumeList struct { - TypeMeta `json:",inline"` - Items []PersistentVolume `json:"items,omitempty" description:"list of persistent volumes"` -} - -// PersistentVolumeClaim is a user's request for and claim to a persistent volume -type PersistentVolumeClaim struct { - TypeMeta `json:",inline"` - - // Spec defines the volume requested by a pod author - Spec PersistentVolumeClaimSpec `json:"spec,omitempty" description:"the desired characteristics of a volume"` - - // Status represents the current information about a claim - Status PersistentVolumeClaimStatus `json:"status,omitempty" description:"the current status of a persistent volume claim; read-only"` -} - -type PersistentVolumeClaimList struct { - TypeMeta `json:",inline"` - Items []PersistentVolumeClaim `json:"items,omitempty" description:"a list of persistent volume claims"` -} - -// PersistentVolumeClaimSpec describes the common attributes of storage devices -// and allows a Source for provider-specific attributes -type PersistentVolumeClaimSpec struct { - // Contains the types of access modes required - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"the desired access modes the volume should have"` - // Resources represents the minimum resources required - Resources ResourceRequirements `json:"resources,omitempty" description:"the desired resources the volume should have"` - // VolumeName is the binding reference to the PersistentVolume backing this claim - VolumeName string `json:"volumeName,omitempty" description:"the binding reference to the persistent volume backing this claim"` -} - -type PersistentVolumeClaimStatus struct { - // Phase represents the current phase of PersistentVolumeClaim - Phase PersistentVolumeClaimPhase `json:"phase,omitempty" description:"the current phase of the claim"` - // AccessModes contains all ways the volume backing the PVC can be mounted - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"the actual access modes the volume has"` - // Represents the actual resources of the underlying volume - Capacity ResourceList `json:"capacity,omitempty" description:"the actual resources the volume has"` -} - -type PersistentVolumeAccessMode string - -const ( - // can be mounted read/write mode to exactly 1 host - ReadWriteOnce PersistentVolumeAccessMode = "ReadWriteOnce" - // can be mounted in read-only mode to many hosts - ReadOnlyMany PersistentVolumeAccessMode = "ReadOnlyMany" - // can be mounted in read/write mode to many hosts - ReadWriteMany PersistentVolumeAccessMode = "ReadWriteMany" -) - -type PersistentVolumePhase string - -const ( - // used for PersistentVolumes that are not available - VolumePending PersistentVolumePhase = "Pending" - // used for PersistentVolumes that are not yet bound - VolumeAvailable PersistentVolumePhase = "Available" - // used for PersistentVolumes that are bound - VolumeBound PersistentVolumePhase = "Bound" - // used for PersistentVolumes where the bound PersistentVolumeClaim was deleted - // released volumes must be recycled before becoming available again - VolumeReleased PersistentVolumePhase = "Released" -) - -type PersistentVolumeClaimPhase string - -const ( - // used for PersistentVolumeClaims that are not yet bound - ClaimPending PersistentVolumeClaimPhase = "Pending" - // used for PersistentVolumeClaims that are bound - ClaimBound PersistentVolumeClaimPhase = "Bound" -) - -// HostPathVolumeSource represents bare host directory volume. -type HostPathVolumeSource struct { - Path string `json:"path" description:"path of the directory on the host"` -} - -type EmptyDirVolumeSource struct { - // Optional: what type of storage medium should back this directory. - // The default is "" which means to use the node's default medium. - Medium StorageMedium `json:"medium" description:"type of storage used to back the volume; must be an empty string (default) or Memory"` -} - -// StorageMedium defines ways that storage can be allocated to a volume. -type StorageMedium string - -const ( - StorageMediumDefault StorageMedium = "" // use whatever the default is for the node - StorageMediumMemory StorageMedium = "Memory" // use memory (tmpfs) -) - -// Protocol defines network protocols supported for things like conatiner ports. -type Protocol string - -const ( - // ProtocolTCP is the TCP protocol. - ProtocolTCP Protocol = "TCP" - // ProtocolUDP is the UDP protocol. - ProtocolUDP Protocol = "UDP" -) - -// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. -// -// A GCE PD must exist and be formatted before mounting to a container. -// The disk must also be in the same GCE project and zone as the kubelet. -// A GCE PD can only be mounted as read/write once. -type GCEPersistentDiskVolumeSource struct { - // Unique name of the PD resource. Used to identify the disk in GCE - PDName string `json:"pdName" description:"unique name of the PD resource in GCE"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - // TODO: why omitempty if required? - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Partition on the disk to mount. - // If omitted, kubelet will attempt to mount the device name. - // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field 0 or empty. - Partition int `json:"partition,omitempty" description:"partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// A ISCSI Disk can only be mounted as read/write once. -type ISCSIVolumeSource struct { - // Required: iSCSI target portal - // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260) - TargetPortal string `json:"targetPortal,omitempty" description:"iSCSI target portal"` - // Required: target iSCSI Qualified Name - IQN string `json:"iqn,omitempty" description:"iSCSI Qualified Name"` - // Required: iSCSI target lun number - Lun int `json:"lun,omitempty" description:"iscsi target lun number"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// AWSElasticBlockStoreVolumeSource represents a Persistent Disk resource in AWS. -// -// An AWS PD must exist and be formatted before mounting to a container. -// The disk must also be in the same AWS zone as the kubelet. -// A AWS PD can only be mounted on a single machine. -type AWSElasticBlockStoreVolumeSource struct { - // Unique id of the PD resource. Used to identify the disk in AWS - VolumeID string `json:"volumeID" description:"unique id of the PD resource in AWS"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - // TODO: why omitempty if required? - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Partition on the disk to mount. - // If omitted, kubelet will attempt to mount the device name. - // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field 0 or empty. - Partition int `json:"partition,omitempty" description:"partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. -type GitRepoVolumeSource struct { - // Repository URL - Repository string `json:"repository" description:"repository URL"` - // Commit hash, this is optional - Revision string `json:"revision" description:"commit hash for the specified revision"` -} - -// SecretVolumeSource adapts a Secret into a VolumeSource -type SecretVolumeSource struct { - // Reference to a Secret to use. Only the ID field of this reference is used; a - // secret can only be used by pods in its namespace. - Target ObjectReference `json:"target" description:"target is a reference to a secret"` -} - -// RBDVolumeSource represents a Rados Block Device Mount that lasts the lifetime of a pod -type RBDVolumeSource struct { - // Required: CephMonitors is a collection of Ceph monitors - CephMonitors []string `json:"monitors" description:"a collection of Ceph monitors"` - // Required: RBDImage is the rados image name - RBDImage string `json:"image" description:"rados image name"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: RadosPool is the rados pool name,default is rbd - RBDPool string `json:"pool" description:"rados pool name; default is rbd; optional"` - // Optional: RBDUser is the rados user name, default is admin - RadosUser string `json:"user" description:"rados user name; default is admin; optional"` - // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring - Keyring string `json:"keyring" description:"keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional"` - // Optional: SecretRef is name of the authentication secret for RBDUser, default is empty. - SecretRef *LocalObjectReference `json:"secretRef" description:"name of a secret to authenticate the RBD user; if provided overrides keyring; optional"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"rbd volume to be mounted with read-only permissions"` -} - -// ContainerPort represents a network port in a single container -type ContainerPort struct { - // Optional: If specified, this must be a DNS_LABEL. Each named port - // in a pod must have a unique name. - Name string `json:"name,omitempty" description:"name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod"` - // Optional: If specified, this must be a valid port number, 0 < x < 65536. - // If HostNetwork is specified, this must match ContainerPort. - HostPort int `json:"hostPort,omitempty" description:"number of port to expose on the host; most containers do not need this"` - // Required: This must be a valid port number, 0 < x < 65536. - ContainerPort int `json:"containerPort" description:"number of port to expose on the pod's IP address"` - // Optional: Defaults to "TCP". - Protocol Protocol `json:"protocol,omitempty" description:"protocol for port; must be UDP or TCP; TCP if unspecified"` - // Optional: What host IP to bind the external port to. - HostIP string `json:"hostIP,omitempty" description:"host IP to bind the port to"` -} - -// VolumeMount describes a mounting of a Volume within a container. -type VolumeMount struct { - // Required: This must match the Name of a Volume [above]. - Name string `json:"name" description:"name of the volume to mount"` - // Optional: Defaults to false (read-write). - ReadOnly bool `json:"readOnly,omitempty" description:"mounted read-only if true, read-write otherwise (false or unspecified)"` - // Required. - // Exactly one of the following must be set. If both are set, prefer MountPath. - // DEPRECATED: Path will be removed in a future version of the API. - MountPath string `json:"mountPath" description:"path within the container at which the volume should be mounted; overrides path"` - Path string `json:"path,omitempty" description:"path within the container at which the volume should be mounted; deprecated"` - // One of: "LOCAL" (local volume) or "HOST" (external mount from the host). Default: LOCAL. - // DEPRECATED: MountType will be removed in a future version of the API. - MountType string `json:"mountType,omitempty" description:"LOCAL or HOST; defaults to LOCAL; deprecated"` -} - -// EnvVar represents an environment variable present in a Container. -type EnvVar struct { - // Required: This must be a C_IDENTIFIER. - // Exactly one of the following must be set. If both are set, prefer Name. - // DEPRECATED: EnvVar.Key will be removed in a future version of the API. - Name string `json:"name" description:"name of the environment variable; must be a C_IDENTIFIER"` - Key string `json:"key,omitempty" description:"name of the environment variable; must be a C_IDENTIFIER; deprecated - use name instead"` - // Optional: no more than one of the following may be specified. - // Optional: Defaults to ""; variable references $(VAR_NAME) are expanded - // using the previous defined environment variables in the container and - // any service environment variables. If a variable cannot be resolved, - // the reference in the input string will be unchanged. The $(VAR_NAME) - // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped - // references will never be expanded, regardless of whether the variable - // exists or not. - Value string `json:"value,omitempty" description:"value of the environment variable; defaults to empty string; variable references $(VAR_NAME) are expanded using the previously defined environment varibles in the container and any service environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: Specifies a source the value of this var should come from. - ValueFrom *EnvVarSource `json:"valueFrom,omitempty" description:"source for the environment variable's value; cannot be used if value is not empty"` -} - -// EnvVarSource represents a source for the value of an EnvVar. -type EnvVarSource struct { - // Required: Selects a field of the pod; only name and namespace are supported. - FieldRef *ObjectFieldSelector `json:"fieldRef" description:"selects a field of the pod; only name and namespace are supported"` -} - -// ObjectFieldSelector selects an APIVersioned field of an object. -type ObjectFieldSelector struct { - // Optional: Version of the schema the FieldPath is written in terms of, defaults to "v1beta1" - APIVersion string `json:"apiVersion,omitempty" description:"version of the schema that fieldPath is written in terms of; defaults to v1beta1"` - // Required: Path of the field to select in the specified API version - FieldPath string `json:"fieldPath" description:"path of the field to select in the specified API version"` -} - -// HTTPGetAction describes an action based on HTTP Get requests. -type HTTPGetAction struct { - // Optional: Path to access on the HTTP server. - Path string `json:"path,omitempty" description:"path to access on the HTTP server"` - // Required: Name or number of the port to access on the container. - Port util.IntOrString `json:"port,omitempty" description:"number or name of the port to access on the container"` - // Optional: Host name to connect to, defaults to the pod IP. - Host string `json:"host,omitempty" description:"hostname to connect to; defaults to pod IP"` -} - -// TCPSocketAction describes an action based on opening a socket -type TCPSocketAction struct { - // Required: Port to connect to. - Port util.IntOrString `json:"port,omitempty" description:"number of name of the port to access on the container"` -} - -// ExecAction describes a "run in container" action. -type ExecAction struct { - // Command is the command line to execute inside the container, the working directory for the - // command is root ('/') in the container's filesystem. The command is simply exec'd, it is - // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - // a shell, you need to explicitly call out to that shell. - // A return code of zero is treated as 'Healthy', non-zero is 'Unhealthy' - Command []string `json:"command,omitempty" description:"command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy"` -} - -// LivenessProbe describes a liveness probe to be examined to the container. -// TODO: pass structured data to the actions, and document that data here. -type LivenessProbe struct { - // HTTPGetProbe parameters, required if Type == 'http' - HTTPGet *HTTPGetAction `json:"httpGet,omitempty" description:"parameters for HTTP-based liveness probe"` - // TCPSocketProbe parameter, required if Type == 'tcp' - TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty" description:"parameters for TCP-based liveness probe"` - // ExecProbe parameter, required if Type == 'exec' - Exec *ExecAction `json:"exec,omitempty" description:"parameters for exec-based liveness probe"` - // Length of time before health checking is activated. In seconds. - InitialDelaySeconds int64 `json:"initialDelaySeconds,omitempty" description:"number of seconds after the container has started before liveness probes are initiated"` - // Length of time before health checking times out. In seconds. - TimeoutSeconds int64 `json:"timeoutSeconds,omitempty" description:"number of seconds after which liveness probes timeout; defaults to 1 second"` -} - -// PullPolicy describes a policy for if/when to pull a container image -type PullPolicy string - -const ( - // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. - PullAlways PullPolicy = "PullAlways" - // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present - PullNever PullPolicy = "PullNever" - // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. - PullIfNotPresent PullPolicy = "PullIfNotPresent" -) - -// Capability represent POSIX capabilities type -type Capability string - -// Capabilities represent POSIX capabilities that can be added or removed to a running container. -type Capabilities struct { - // Added capabilities - Add []Capability `json:"add,omitempty" description:"added capabilities"` - // Removed capabilities - Drop []Capability `json:"drop,omitempty" description:"droped capabilities"` -} - -type ResourceRequirements struct { - // Limits describes the maximum amount of compute resources required. - Limits ResourceList `json:"limits,omitempty" description:"Maximum amount of compute resources allowed"` - // Requests describes the minimum amount of compute resources required. - // Note: 'Requests' are honored only for Persistent Volumes as of now. - // TODO: Update the scheduler to use 'Requests' in addition to 'Limits'. If Request is omitted for a container, - // it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value - Requests ResourceList `json:"requests,omitempty" description:"Minimum amount of resources requested; requests are honored only for persistent volumes as of now"` -} - -// Container represents a single container that is expected to be run on the host. -type Container struct { - // Required: This must be a DNS_LABEL. Each container in a pod must - // have a unique name. - Name string `json:"name" description:"name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated"` - // Required. - Image string `json:"image" description:"Docker image name"` - // Optional: The image's entrypoint is used if this is not provided; cannot be updated. - // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax - // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, - // regardless of whether the variable exists or not. - Entrypoint []string `json:"entrypoint,omitempty" description:"entrypoint array; not executed within a shell; the image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: The image's cmd is used if this is not provided; cannot be updated. - // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax - // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, - // regardless of whether the variable exists or not. - Command []string `json:"command,omitempty" description:"command argv array; not executed within a shell; the image's cmd is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: Docker's default is used if this is not provided. - WorkingDir string `json:"workingDir,omitempty" description:"container's working directory; defaults to image's default; cannot be updated"` - Ports []ContainerPort `json:"ports,omitempty" description:"list of ports to expose from the container; cannot be updated"` - Env []EnvVar `json:"env,omitempty" description:"list of environment variables to set in the container; cannot be updated"` - Resources ResourceRequirements `json:"resources,omitempty" description:"Compute Resources required by this container; cannot be updated"` - // Optional: Defaults to unlimited. - CPU int `json:"cpu,omitempty" description:"CPU share in thousandths of a core; cannot be updated"` - // Optional: Defaults to unlimited. - Memory int64 `json:"memory,omitempty" description:"memory limit in bytes; defaults to unlimited; cannot be updated"` - VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" description:"pod volumes to mount into the container's filesystem; cannot be updated"` - LivenessProbe *LivenessProbe `json:"livenessProbe,omitempty" description:"periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated"` - ReadinessProbe *LivenessProbe `json:"readinessProbe,omitempty" description:"periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated"` - Lifecycle *Lifecycle `json:"lifecycle,omitempty" description:"actions that the management system should take in response to container lifecycle events; cannot be updated"` - // Optional: Defaults to /dev/termination-log - TerminationMessagePath string `json:"terminationMessagePath,omitempty" description:"path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated"` - // Deprecated - see SecurityContext. Optional: Default to false. - Privileged bool `json:"privileged,omitempty" description:"whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext"` - // Optional: Policy for pulling images for this container - ImagePullPolicy PullPolicy `json:"imagePullPolicy" description:"image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated"` - // Deprecated - see SecurityContext. Optional: Capabilities for container. - Capabilities Capabilities `json:"capabilities,omitempty" description:"capabilities for container; cannot be updated; deprecated; See SecurityContext"` - // Optional: SecurityContext defines the security options the pod should be run with - SecurityContext *SecurityContext `json:"securityContext,omitempty" description:"security options the pod should run with"` -} - -// Handler defines a specific action that should be taken -// TODO: pass structured data to these actions, and document that data here. -type Handler struct { - // One and only one of the following should be specified. - // Exec specifies the action to take. - Exec *ExecAction `json:"exec,omitempty" description:"exec-based handler"` - // HTTPGet specifies the http request to perform. - HTTPGet *HTTPGetAction `json:"httpGet,omitempty" description:"HTTP-based handler"` - // TCPSocket specifies an action involving a TCP port. - // TODO: implement a realistic TCP lifecycle hook - TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty" description:"TCP-based handler; TCP hooks not yet supported"` -} - -// Lifecycle describes actions that the management system should take in response to container lifecycle -// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks -// until the action is complete, unless the container process fails, in which case the handler is aborted. -type Lifecycle struct { - // PostStart is called immediately after a container is created. If the handler fails, the container - // is terminated and restarted. - PostStart *Handler `json:"postStart,omitempty" description:"called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes"` - // PreStop is called immediately before a container is terminated. The reason for termination is - // passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. - PreStop *Handler `json:"preStop,omitempty" description:"called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes"` -} - -// The below types are used by kube_client and api_server. - -// TypeMeta is shared by all objects sent to, or returned from the client. -type TypeMeta struct { - Kind string `json:"kind,omitempty" description:"kind of object, in CamelCase; cannot be updated"` - ID string `json:"id,omitempty" description:"name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated"` - UID types.UID `json:"uid,omitempty" description:"unique UUID across space and time; populated by the system, read-only; cannot be updated"` - CreationTimestamp util.Time `json:"creationTimestamp,omitempty" description:"RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"` - SelfLink string `json:"selfLink,omitempty" description:"URL for the object; populated by the system, read-only"` - ResourceVersion uint64 `json:"resourceVersion,omitempty" 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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency"` - APIVersion string `json:"apiVersion,omitempty" description:"version of the schema the object should have"` - Namespace string `json:"namespace,omitempty" description:"namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated"` - - // DeletionTimestamp is the time after which this resource will be deleted. This - // field is set by the server when a graceful deletion is requested by the user, and is not - // directly settable by a client. The resource will be deleted (no longer visible from - // resource lists, and not reachable by name) after the time in this field. Once set, this - // value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. Once the resource is deleted in the API, the Kubelet - // will send a hard termination signal to the container. - DeletionTimestamp *util.Time `json:"deletionTimestamp,omitempty" 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"` - - // GenerateName indicates that the name should be made unique by the server prior to persisting - // it. A non-empty value for the field indicates the name will be made unique (and the name - // returned to the client will be different than the name passed). The value of this field will - // be combined with a unique suffix on the server if the Name field has not been provided. - // The provided value must be valid within the rules for Name, and may be truncated by the length - // of the suffix required to make the value unique on the server. - // - // If this field is specified, and Name is not present, the server will NOT return a 409 if the - // generated name exists - instead, it will either return 201 Created or 500 with Reason - // ServerTimeout indicating a unique name could not be found in the time allotted, and the client - // should retry (optionally after the time indicated in the Retry-After header). - GenerateName string `json:"generateName,omitempty" 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"` - - // Annotations are unstructured key value data stored with a resource that may be set by - // external tooling. They are not queryable and should be preserved when modifying - // objects. - Annotations map[string]string `json:"annotations,omitempty" description:"map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object"` -} - -type ConditionStatus string - -// These are valid condition statuses. "ConditionFull" means a resource is in the condition; -// "ConditionNone" means a resource is not in the condition; "ConditionUnknown" means kubernetes -// can't decide if a resource is in the condition or not. In the future, we could add other -// intermediate conditions, e.g. ConditionDegraded. -const ( - ConditionFull ConditionStatus = "Full" - ConditionNone ConditionStatus = "None" - ConditionUnknown ConditionStatus = "Unknown" -) - -// PodStatus represents a status of a pod. -type PodStatus string - -// These are the valid statuses of pods. -const ( - // PodWaiting means that we're waiting for the pod to begin running. - PodWaiting PodStatus = "Waiting" - // PodRunning means that the pod is up and running. - PodRunning PodStatus = "Running" - // PodTerminated means that the pod has stopped with error(s) - PodTerminated PodStatus = "Terminated" - // PodUnknown means that we failed to obtain info about the pod. - PodUnknown PodStatus = "Unknown" - // PodSucceeded means that the pod has stopped without error(s) - PodSucceeded PodStatus = "Succeeded" -) - -type ContainerStateWaiting struct { - // Reason could be pulling image, - Reason string `json:"reason,omitempty" description:"(brief) reason the container is not yet running, such as pulling its image"` -} - -type ContainerStateRunning struct { - StartedAt util.Time `json:"startedAt,omitempty" description:"time at which the container was last (re-)started"` -} - -type ContainerStateTerminated struct { - ExitCode int `json:"exitCode" description:"exit status from the last termination of the container"` - Signal int `json:"signal,omitempty" description:"signal from the last termination of the container"` - Reason string `json:"reason,omitempty" description:"(brief) reason from the last termination of the container"` - Message string `json:"message,omitempty" description:"message regarding the last termination of the container"` - StartedAt util.Time `json:"startedAt,omitempty" description:"time at which previous execution of the container started"` - FinishedAt util.Time `json:"finishedAt,omitempty" description:"time at which the container last terminated"` - ContainerID string `json:"containerID,omitempty" description:"container's ID in the format 'docker://'"` -} - -// ContainerState holds a possible state of container. -// Only one of its members may be specified. -// If none of them is specified, the default one is ContainerStateWaiting. -type ContainerState struct { - Waiting *ContainerStateWaiting `json:"waiting,omitempty" description:"details about a waiting container"` - Running *ContainerStateRunning `json:"running,omitempty" description:"details about a running container"` - Termination *ContainerStateTerminated `json:"termination,omitempty" description:"details about a terminated container"` -} - -type ContainerStatus struct { - // TODO(dchen1107): Should we rename PodStatus to a more generic name or have a separate states - // defined for container? - State ContainerState `json:"state,omitempty" description:"details about the container's current condition"` - LastTerminationState ContainerState `json:"lastState,omitempty" description:"details about the container's last termination condition"` - Ready bool `json:"ready" description:"specifies whether the container has passed its readiness probe"` - // Note that this is calculated from dead containers. But those containers are subject to - // garbage collection. This value will get capped at 5 by GC. - RestartCount int `json:"restartCount" description:"the number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed"` - // TODO(dchen1107): Need to decide how to reprensent this in v1beta3 - Image string `json:"image" description:"image of the container"` - ImageID string `json:"imageID" description:"ID of the container's image"` - ContainerID string `json:"containerID,omitempty" description:"container's ID in the format 'docker://'"` -} - -// PodConditionKind is a valid value for PodCondition.Kind -type PodConditionKind string - -// These are valid conditions of pod. -const ( - // PodReady means the pod is able to service requests and should be added to the - // load balancing pools of all matching services. - PodReady PodConditionKind = "Ready" -) - -// TODO: add LastTransitionTime, Reason, Message to match NodeCondition api. -type PodCondition struct { - // Kind is the kind of the condition - Kind PodConditionKind `json:"kind" description:"kind of the condition, currently only Ready"` - // Status is the status of the condition - Status ConditionStatus `json:"status" description:"status of the condition, one of Full, None, Unknown"` -} - -// PodInfo contains one entry for every container with available info. -type PodInfo map[string]ContainerStatus - -// PodContainerInfo is a wrapper for PodInfo that can be encode/decoded -type PodContainerInfo struct { - TypeMeta `json:",inline"` - ContainerInfo PodInfo `json:"containerInfo" description:"information about each container in this pod"` -} - -type RestartPolicyAlways struct{} - -// TODO(dchen1107): Define what kinds of failures should restart -// TODO(dchen1107): Decide whether to support policy knobs, and, if so, which ones. -type RestartPolicyOnFailure struct{} - -type RestartPolicyNever struct{} - -type RestartPolicy struct { - // Only one of the following restart policy may be specified. - // If none of the following policies is specified, the default one - // is RestartPolicyAlways. - Always *RestartPolicyAlways `json:"always,omitempty" description:"always restart the container after termination"` - OnFailure *RestartPolicyOnFailure `json:"onFailure,omitempty" description:"restart the container if it fails for any reason, but not if it succeeds (exit 0)"` - Never *RestartPolicyNever `json:"never,omitempty" description:"never restart the container"` -} - -// PodState is the state of a pod, used as either input (desired state) or output (current state). -type PodState struct { - Manifest ContainerManifest `json:"manifest,omitempty" description:"manifest of containers and volumes comprising the pod"` - Status PodStatus `json:"status,omitempty" description:"current condition of the pod, Waiting, Running, or Terminated"` - Conditions []PodCondition `json:"Condition,omitempty" description:"current service state of pod"` - // A human readable message indicating details about why the pod is in this state. - Message string `json:"message,omitempty" description:"human readable message indicating details about why the pod is in this condition"` - Host string `json:"host,omitempty" description:"host to which the pod is assigned; empty if not yet scheduled; cannot be updated"` - HostIP string `json:"hostIP,omitempty" description:"IP address of the host to which the pod is assigned; empty if not yet scheduled"` - PodIP string `json:"podIP,omitempty" description:"IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"` - - // The key of this map is the *name* of the container within the manifest; it has one - // entry per container in the manifest. The value of this map is ContainerStatus for - // the container. - Info PodInfo `json:"info,omitempty" description:"map of container name to container status"` -} - -type PodStatusResult struct { - TypeMeta `json:",inline"` - State PodState `json:"state,omitempty" description:"current state of the pod"` -} - -// PodList is a list of Pods. -type PodList struct { - TypeMeta `json:",inline"` - Items []Pod `json:"items" description:"list of pods"` -} - -// Pod is a collection of containers, used as either input (create, update) or as output (list, get). -type Pod struct { - TypeMeta `json:",inline"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services"` - DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of the pod"` - CurrentState PodState `json:"currentState,omitempty" description:"current state of the pod; populated by the system, read-only"` - // ServiceAccount is the name of the ServiceAccount to use to run this pod - ServiceAccount string `json:"serviceAccount,omitempty" description:"the name of the ServiceAccount to use to run this pod"` - // NodeSelector is a selector which must be true for the pod to fit on a node - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"selector which must match a node's labels for the pod to be scheduled on that node"` -} - -// ReplicationControllerState is the state of a replication controller, either input (create, update) or as output (list, get). -type ReplicationControllerState struct { - Replicas int `json:"replicas" description:"number of replicas (desired or observed, as appropriate)"` - ReplicaSelector map[string]string `json:"replicaSelector,omitempty" description:"label keys and values that must match in order to be controlled by this replication controller"` - PodTemplate PodTemplate `json:"podTemplate,omitempty" description:"template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas"` -} - -// ReplicationControllerList is a collection of replication controllers. -type ReplicationControllerList struct { - TypeMeta `json:",inline"` - Items []ReplicationController `json:"items" description:"list of replication controllers"` -} - -// ReplicationController represents the configuration of a replication controller. -type ReplicationController struct { - TypeMeta `json:",inline"` - DesiredState ReplicationControllerState `json:"desiredState,omitempty" description:"specification of the desired state of the replication controller"` - CurrentState ReplicationControllerState `json:"currentState,omitempty" description:"current state of the replication controller; populated by the system, read-only"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize replication controllers"` -} - -// PodTemplate holds the information used for creating pods. -type PodTemplate struct { - DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of pods created from this template"` - ServiceAccount string `json:"serviceAccount,omitempty" description:"the name of the ServiceAccount to use to run this pod"` - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"a selector which must be true for the pod to fit on a node"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services"` - Annotations map[string]string `json:"annotations,omitempty" description:"map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template"` -} - -// Session Affinity Type string -type ServiceAffinity string - -const ( - // ServiceAffinityClientIP is the Client IP based. - ServiceAffinityClientIP ServiceAffinity = "ClientIP" - - // ServiceAffinityNone - no session affinity. - ServiceAffinityNone ServiceAffinity = "None" -) - -// Service Type string describes ingress methods for a service -type ServiceType string - -const ( - // ServiceTypeClusterIP means a service will only be accessible inside the - // cluster, via the portal IP. - ServiceTypeClusterIP ServiceType = "ClusterIP" - - // ServiceTypeNodePort means a service will be exposed on one port of - // every node, in addition to 'ClusterIP' type. - ServiceTypeNodePort ServiceType = "NodePort" - - // ServiceTypeLoadBalancer means a service will be exposed via an - // external load balancer (if the cloud provider supports it), in addition - // to 'NodePort' type. - ServiceTypeLoadBalancer ServiceType = "LoadBalancer" -) - -const ( - // PortalIPNone - do not assign a portal IP - // no proxying required and no environment variables should be created for pods - PortalIPNone = "None" -) - -// ServiceList holds a list of services. -type ServiceList struct { - TypeMeta `json:",inline"` - Items []Service `json:"items" description:"list of services"` -} - -// Service is a named abstraction of software service (for example, mysql) consisting of local port -// (for example 3306) that the proxy listens on, and the selector that determines which pods -// will answer requests sent through the proxy. -type Service struct { - TypeMeta `json:",inline"` - - // Required. - Port int `json:"port" description:"port exposed by the service"` - // Optional: The name of the first port. - PortName string `json:"portName,omitempty" description:"the name of the first port; optional"` - // Optional: Defaults to "TCP". - Protocol Protocol `json:"protocol,omitempty" description:"protocol for port; must be UDP or TCP; TCP if unspecified"` - // ContainerPort is the name or number of the port on the container to direct traffic to. - // This is useful if the containers the service points to have multiple open ports. - // Optional: If unspecified, the first port on the container will be used. - ContainerPort util.IntOrString `json:"containerPort,omitempty" 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"` - - // This service's labels. - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize services"` - - // This service will route traffic to pods having labels matching this selector. If null, no endpoints will be automatically created. If empty, all pods will be selected. - Selector map[string]string `json:"selector" description:"label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified"` - - // An external load balancer should be set up via the cloud-provider - CreateExternalLoadBalancer bool `json:"createExternalLoadBalancer,omitempty" description:"set up a cloud-provider-specific load balancer on an external IP"` - - // Type determines how the service will be exposed. Valid options: ClusterIP, NodePort, LoadBalancer - Type ServiceType `json:"type,omitempty" description:"type of this service; must be ClusterIP, NodePort, or LoadBalancer; defaults to ClusterIP"` - - // Deprecated. PublicIPs are used by external load balancers, or can be set by - // users to handle external traffic that arrives at a node. - PublicIPs []string `json:"publicIPs,omitempty" description:"deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service"` - - // PortalIP is usually assigned by the master. If specified by the user - // we will try to respect it or else fail the request. This field can - // not be changed by updates. - // Valid values are None, empty string (""), or a valid IP address - // None can be specified for headless services when proxying is not required - PortalIP string `json:"portalIP,omitempty" 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"` - - // DEPRECATED: has no implementation. - ProxyPort int `json:"proxyPort,omitempty" description:"if non-zero, a pre-allocated host port used for this service by the proxy on each node; assigned by the master and ignored on input"` - - // Optional: Supports "ClientIP" and "None". Used to maintain session affinity. - SessionAffinity ServiceAffinity `json:"sessionAffinity,omitempty" description:"enable client IP based session affinity; must be ClientIP or None; defaults to None"` - - // Optional: Ports to expose 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. - 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"` - - // LoadBalancer contains the current status of the load-balancer, - // if one is present. - LoadBalancerStatus LoadBalancerStatus `json:"loadBalancerStatus,omitempty" description:"status of load-balancer"` -} - -// LoadBalancerStatus represents the status of a load-balancer -type LoadBalancerStatus struct { - // Ingress is a list containing ingress points for the load-balancer; - // traffic intended for the service should be sent to these ingress points. - Ingress []LoadBalancerIngress `json:"ingress,omitempty" description:"load-balancer ingress points"` -} - -// LoadBalancerIngress represents the status of a load-balancer ingress point: -// traffic intended for the service should be sent to an ingress point. -type LoadBalancerIngress struct { - // IP is set for load-balancer ingress points that are IP based - // (typically GCE or OpenStack load-balancers) - IP string `json:"ip,omitempty" description:"IP address of ingress point"` - - // Hostname is set for load-balancer ingress points that are DNS based - // (typically AWS load-balancers) - Hostname string `json:"hostname,omitempty" description:"hostname of ingress point"` -} - -type ServicePort struct { - // Required: The name of this port within the service. This must be a - // DNS_LABEL. All ports within a ServiceSpec must have unique names. - // This maps to the 'Name' field in EndpointPort objects. - Name string `json:"name" description:"the name of this port; optional if only one port is defined"` - - // Optional: The IP protocol for this port. Supports "TCP" and "UDP", - // default is TCP. - Protocol Protocol `json:"protocol" description:"the protocol used by this port; must be UDP or TCP; TCP if unspecified"` - - // Required: The port that will be exposed. - Port int `json:"port" description:"the port number that is exposed"` - - // Optional: The port number on the target pod to direct traffic to. - // This is useful if the containers the service points to have multiple - // open ports. If this is a string, it will be looked up as a named - // port in the target Pod's container ports. If unspecified, the value - // of Port is used (an identity map) - note this is a different default - // than Service.ContainerPort. - ContainerPort util.IntOrString `json:"containerPort" description:"the port to access on the containers belonging to pods targeted by the service; defaults to the service port"` - - // The port on each node on which this service is exposed. - // Default is to auto-allocate a port if the ServiceType of this Service requires one. - NodePort int `json:"nodePort" description:"the port on each node on which this service is exposed"` -} - -// ServiceAccount binds together: -// * a name, understood by users, and perhaps by peripheral systems, for an identity -// * a principal that can be authenticated and authorized -// * a set of secrets -type ServiceAccount struct { - TypeMeta `json:",inline"` - - // Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount - Secrets []ObjectReference `json:"secrets" description:"list of secrets that can be used by pods running as this service account" patchStrategy:"merge" patchMergeKey:"name"` - - // ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images - // in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets - // can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling container images"` -} - -// ServiceAccountList is a list of ServiceAccount objects -type ServiceAccountList struct { - TypeMeta `json:",inline"` - - Items []ServiceAccount `json:"items" description:"list of ServiceAccounts"` -} - -// EndpointObjectReference is a reference to an object exposing the endpoint -type EndpointObjectReference struct { - Endpoint string `json:"endpoint" description:"endpoint exposed by the referenced object"` - ObjectReference `json:"targetRef" description:"reference to the object providing the entry point"` -} - -// Endpoints is a collection of endpoints that implement the actual service, for example: -// Name: "mysql", Endpoints: ["10.10.1.1:1909", "10.10.2.2:8834"] -type Endpoints struct { - TypeMeta `json:",inline"` - - // These fields are retained for backwards compatibility. For - // multi-port services, use the Subsets field instead. Upon a create or - // update operation, the following logic applies: - // * If Subsets is specified, Protocol, Endpoints, and TargetRefs will - // be overwritten by data from Subsets. - // * If Subsets is not specified, Protocol, Endpoints, and TargetRefs - // will be used to generate Subsets. - Protocol Protocol `json:"protocol,omitempty" description:"IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified"` - Endpoints []string `json:"endpoints" description:"first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909"` - // Optional: The kubernetes objects related to the first set of entry points. - TargetRefs []EndpointObjectReference `json:"targetRefs,omitempty" description:"list of references to objects providing the endpoints"` - - // The set of all endpoints is the union of all subsets. If this field - // is not empty it must include the backwards-compatible protocol and - // endpoints. - Subsets []EndpointSubset `json:"subsets" description:"sets of addresses and ports that comprise a service"` -} - -// EndpointSubset is a group of addresses with a common set of ports. The -// expanded set of endpoints is the Cartesian product of Addresses x Ports. -// For example, given: -// { -// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], -// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] -// } -// The resulting set of endpoints can be viewed as: -// a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], -// b: [ 10.10.1.1:309, 10.10.2.2:309 ] -type EndpointSubset struct { - Addresses []EndpointAddress `json:"addresses,omitempty" description:"IP addresses which offer the related ports"` - Ports []EndpointPort `json:"ports,omitempty" description:"port numbers available on the related IP addresses"` -} - -// EndpointAddress is a tuple that describes single IP address. -type EndpointAddress struct { - // The IP of this endpoint. - // TODO: This should allow hostname or IP, see #4447. - IP string `json:"IP" description:"IP address of the endpoint"` - - // Optional: The kubernetes object related to the entry point. - TargetRef *ObjectReference `json:"targetRef,omitempty" description:"reference to object providing the endpoint"` -} - -// EndpointPort is a tuple that describes a single port. -type EndpointPort struct { - // The name of this port (corresponds to ServicePort.Name). Optional - // if only one port is defined. Must be a DNS_LABEL. - Name string `json:"name,omitempty" description:"name of this port"` - - // The port number. - Port int `json:"port" description:"port number of the endpoint"` - - // The IP protocol for this port. - Protocol Protocol `json:"protocol,omitempty" description:"protocol for this port; must be UDP or TCP; TCP if unspecified"` -} - -// EndpointsList is a list of endpoints. -type EndpointsList struct { - TypeMeta `json:",inline"` - Items []Endpoints `json:"items" description:"list of service endpoint lists"` -} - -// NodeSystemInfo is a set of ids/uuids to uniquely identify the node. -type NodeSystemInfo struct { - // MachineID is the machine-id reported by the node - MachineID string `json:"machineID" description:"machine id is the machine-id reported by the node"` - // SystemUUID is the system-uuid reported by the node - SystemUUID string `json:"systemUUID" description:"system uuid is the system-uuid reported by the node"` - // BootID is the boot-id reported by the node - BootID string `json:"bootID" description:"boot id is the boot-id reported by the node"` - // Kernel version reported by the node - KernelVersion string `json:"kernelVersion" description:"Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)"` - // OS image used reported by the node - OsImage string `json:"osImage" description:"OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))"` - // Container runtime version reported by the node - ContainerRuntimeVersion string `json:"containerRuntimeVersion" description:"Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)"` - // Kubelet version reported by the node - KubeletVersion string `json:"kubeletVersion" description:"Kubelet version reported by the node"` - // Kube-proxy version reported by the node - KubeProxyVersion string `json:"kubeProxyVersion" description:"Kube-proxy version reported by the node"` -} - -// NodeStatus is information about the current status of a node. -type NodeStatus struct { - // NodePhase is the current lifecycle phase of the node. - Phase NodePhase `json:"phase,omitempty" description:"node phase is the current lifecycle phase of the node"` - // Conditions is an array of current node conditions. - Conditions []NodeCondition `json:"conditions,omitempty" description:"conditions is an array of current node conditions"` - // Queried from cloud provider, if available. - Addresses []NodeAddress `json:"addresses,omitempty" description:"list of addresses reachable to the node"` - // NodeSystemInfo is a set of ids/uuids to uniquely identify the node - NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty" description:"node identity is a set of ids/uuids to uniquely identify the node"` -} - -// NodeInfo is the information collected on the node. -type NodeInfo struct { - TypeMeta `json:",inline"` - // Capacity represents the available resources. - Capacity ResourceList `json:"capacity,omitempty" description:"resource capacity of a node represented as a map of resource name to quantity of resource"` - // NodeSystemInfo is a set of ids/uuids to uniquely identify the node - NodeSystemInfo `json:",inline,omitempty" description:"node identity is a set of ids/uuids to uniquely identify the node"` -} - -type NodePhase string - -// These are the valid phases of node. -const ( - // NodePending means the node has been created/added by the system, but not configured. - NodePending NodePhase = "Pending" - // NodeRunning means the node has been configured and has Kubernetes components running. - NodeRunning NodePhase = "Running" - // NodeTerminated means the node has been removed from the cluster. - NodeTerminated NodePhase = "Terminated" -) - -type NodeConditionKind string - -// These are valid conditions of node. Currently, we don't have enough information to decide -// node condition. In the future, we will add more. The proposed set of conditions are: -// NodeReachable, NodeLive, NodeReady, NodeSchedulable, NodeRunnable. -const ( - // NodeReachable means the node can be reached (in the sense of HTTP connection) within cluster. - NodeReachable NodeConditionKind = "Reachable" - // NodeReady means kubelet is healthy and ready to accept pods. - NodeReady NodeConditionKind = "Ready" - // NodeSchedulable means the node is ready to accept new pods. - // DEPRECATED: this kind of condition is unused and has no effect even if present. - NodeSchedulable NodeConditionKind = "Schedulable" -) - -type NodeCondition struct { - Kind NodeConditionKind `json:"kind" description:"kind of the condition, current kinds: Reachable, Ready, Schedulable"` - Status ConditionStatus `json:"status" description:"status of the condition, one of Full, None, Unknown"` - LastProbeTime util.Time `json:"lastProbeTime,omitempty" description:"last time the condition was probed"` - LastTransitionTime util.Time `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another"` - Reason string `json:"reason,omitempty" description:"(brief) reason for the condition's last transition"` - Message string `json:"message,omitempty" description:"human readable message indicating details about last transition"` -} - -type NodeAddressType string - -// These are valid address types of node. -const ( - NodeHostName NodeAddressType = "Hostname" - NodeExternalIP NodeAddressType = "ExternalIP" - NodeInternalIP NodeAddressType = "InternalIP" -) - -type NodeAddress struct { - Type NodeAddressType `json:"type" description:"type of the node address, e.g. external ip, internal ip, hostname, etc"` - Address string `json:"address" description:"string representation of the address"` -} - -// NodeResources represents resources on a Kubernetes system node -// see http://docs.k8s.io/resources.md for more details. -type NodeResources struct { - // Capacity represents the available resources. - Capacity ResourceList `json:"capacity,omitempty" description:"resource capacity of a node represented as a map of resource name to quantity of resource"` -} - -type ResourceName string - -const ( - // CPU, in cores. (500m = .5 cores) - ResourceCPU ResourceName = "cpu" - // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) - ResourceMemory ResourceName = "memory" - // Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024) - ResourceStorage ResourceName = "storage" -) - -type ResourceList map[ResourceName]util.IntOrString - -// Minion is a worker node in Kubernetenes. -// The name of the minion according to etcd is in ID. -type Minion struct { - TypeMeta `json:",inline"` - // DEPRECATED: Use Status.Addresses instead. - // Queried from cloud provider, if available. - HostIP string `json:"hostIP,omitempty" description:"IP address of the node"` - // Resources available on the node - NodeResources NodeResources `json:"resources,omitempty" description:"characterization of node resources"` - // Pod IP range assigned to the node - PodCIDR string `json:"podCIDR,omitempty" description:"IP range assigned to the node"` - // Unschedulable controls node schedulability of new pods. By default node is schedulable. - Unschedulable bool `json:"unschedulable,omitempty" description:"disable pod scheduling on the node"` - // Status describes the current status of a node - Status NodeStatus `json:"status,omitempty" description:"current status of node"` - // Labels for the node - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector"` - // External ID of the node - ExternalID string `json:"externalID,omitempty" description:"deprecated. External id of the node assigned by some machine database (e.g. a cloud provider). Defaults to node name when empty."` - // ID of the node assigned by the cloud provider - ProviderID string `json:"providerID,omitempty" description:"ID of the node assigned by the cloud provider in the format: ://"` -} - -// MinionList is a list of minions. -type MinionList struct { - TypeMeta `json:",inline"` - // DEPRECATED: the below Minions is due to a naming mistake and - // will be replaced with Items in the future. - Minions []Minion `json:"minions,omitempty" description:"list of nodes; deprecated"` - Items []Minion `json:"items" description:"list of nodes"` -} - -type FinalizerName string - -// These are internal finalizer values to Kubernetes, must be qualified name unless defined here -const ( - FinalizerKubernetes FinalizerName = "kubernetes" -) - -// NamespaceSpec describes the attributes on a Namespace -type NamespaceSpec struct { - // Finalizers is an opaque list of values that must be empty to permanently remove object from storage - Finalizers []FinalizerName `json:"finalizers,omitempty" description:"an opaque list of values that must be empty to permanently remove object from storage"` -} - -// NamespaceStatus is information about the current status of a Namespace. -type NamespaceStatus struct { - // Phase is the current lifecycle phase of the namespace. - Phase NamespacePhase `json:"phase,omitempty" description:"phase is the current lifecycle phase of the namespace"` -} - -type NamespacePhase string - -// These are the valid phases of a namespace. -const ( - // NamespaceActive means the namespace is available for use in the system - NamespaceActive NamespacePhase = "Active" - // NamespaceTerminating means the namespace is undergoing graceful termination - NamespaceTerminating NamespacePhase = "Terminating" -) - -// A namespace provides a scope for Names. -// Use of multiple namespaces is optional -type Namespace struct { - TypeMeta `json:",inline"` - - // Labels - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize namespaces"` - - // Spec defines the behavior of the Namespace. - Spec NamespaceSpec `json:"spec,omitempty" description:"spec defines the behavior of the Namespace"` - - // Status describes the current status of a Namespace - Status NamespaceStatus `json:"status,omitempty" description:"status describes the current status of a Namespace; read-only"` -} - -// NamespaceList is a list of Namespaces. -type NamespaceList struct { - TypeMeta `json:",inline"` - - // Items is the list of Namespace objects in the list - Items []Namespace `json:"items" description:"items is the list of Namespace objects in the list"` -} - -// Binding is written by a scheduler to cause a pod to be bound to a host. -type Binding struct { - TypeMeta `json:",inline"` - PodID string `json:"podID" description:"name of the pod to bind"` - Host string `json:"host" description:"host to which to bind the specified pod"` -} - -// DeleteOptions may be provided when deleting an API object -type DeleteOptions struct { - TypeMeta `json:",inline"` - - // Optional duration in seconds before the object should be deleted. Value must be non-negative integer. - // The value zero indicates delete immediately. If this value is nil, the default grace period for the - // specified type will be used. - GracePeriodSeconds *int64 `json:"gracePeriodSeconds" description:"the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately"` -} - -// ListOptions is the query options to a standard REST list call -type ListOptions struct { - TypeMeta `json:",inline"` - - // A selector based on labels - LabelSelector string `json:"labels" description:"a selector to restrict the list of returned objects by their labels; defaults to everything"` - // A selector based on fields - FieldSelector string `json:"fields" description:"a selector to restrict the list of returned objects by their fields; defaults to everything"` - // If true, watch for changes to the selected resources - Watch bool `json:"watch" description:"watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion"` - // The desired resource version to watch - ResourceVersion string `json:"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"` -} - -// PodLogOptions is the query options for a Pod's logs REST call -type PodLogOptions struct { - TypeMeta `json:",inline"` - - // Container for which to return logs - Container string `json:"container,omitempty" description:"the container for which to stream logs; defaults to only container if there is one container in the pod"` - - // If true, follow the logs for the pod - Follow bool `json:"follow,omitempty" description:"follow the log stream of the pod; defaults to false"` - - // If true, return previous terminated container logs - Previous bool `json:"previous,omitempty" description:"return previous terminated container logs; defaults to false"` -} - -// PodExecOptions is the query options to a Pod's remote exec call -type PodExecOptions struct { - TypeMeta `json:",inline"` - - // Stdin if true indicates that stdin is to be redirected for the exec call - Stdin bool `json:"stdin,omitempty" description:"redirect the standard input stream of the pod for this call; defaults to false"` - - // Stdout if true indicates that stdout is to be redirected for the exec call - Stdout bool `json:"stdout,omitempty" description:"redirect the standard output stream of the pod for this call; defaults to true"` - - // Stderr if true indicates that stderr is to be redirected for the exec call - Stderr bool `json:"stderr,omitempty" description:"redirect the standard error stream of the pod for this call; defaults to true"` - - // TTY if true indicates that a tty will be allocated for the exec call - TTY bool `json:"tty,omitempty" description:"allocate a terminal for this exec call; defaults to false"` - - // Container in which to execute the command. - Container string `json:"container,omitempty" description:"the container in which to execute the command. Defaults to only container if there is only one container in the pod."` - - // Command is the remote command to execute; argv array; not executed within a shell. - Command []string `json:"command" description:"the command to execute; argv array; not executed within a shell"` -} - -// PodProxyOptions is the query options to a Pod's proxy call -type PodProxyOptions struct { - TypeMeta `json:",inline"` - - // Path is the URL path to use for the current proxy request - Path string `json:"path,omitempty" description:"URL path to use in proxy request to pod"` -} - -// Status is a return value for calls that don't return other objects. -// TODO: this could go in apiserver, but I'm including it here so clients needn't -// import both. -type Status struct { - TypeMeta `json:",inline"` - // One of: "Success" or "Failure". - Status string `json:"status,omitempty" description:"status of the operation; either Success, or Failure"` - // A human-readable description of the status of this operation. - Message string `json:"message,omitempty" description:"human-readable description of the status of this operation"` - // A machine-readable description of why this operation is in the - // "Failure" status. If this value is empty there - // is no information available. A Reason clarifies an HTTP status - // code but does not override it. - Reason StatusReason `json:"reason,omitempty" description:"machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it"` - // Extended data associated with the reason. Each reason may define its - // own extended details. This field is optional and the data returned - // is not guaranteed to conform to any schema except that defined by - // the reason type. - Details *StatusDetails `json:"details,omitempty" description:"extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type"` - // Suggested HTTP return code for this status, 0 if not set. - Code int `json:"code,omitempty" description:"suggested HTTP return code for this status; 0 if not set"` -} - -// StatusDetails is a set of additional properties that MAY be set by the -// server to provide additional information about a response. The Reason -// field of a Status object defines what attributes will be set. Clients -// must ignore fields that do not match the defined type of each attribute, -// and should assume that any attribute may be empty, invalid, or under -// defined. -type StatusDetails struct { - // The ID attribute of the resource associated with the status StatusReason - // (when there is a single ID which can be described). - ID string `json:"id,omitempty" description:"the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)"` - // The kind attribute of the resource associated with the status StatusReason. - // On some operations may differ from the requested resource Kind. - Kind string `json:"kind,omitempty" description:"the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind"` - // The Causes array includes more details associated with the StatusReason - // failure. Not all StatusReasons may provide detailed causes. - Causes []StatusCause `json:"causes,omitempty" description:"the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes"` - // If specified, the time in seconds before the operation should be retried. - RetryAfterSeconds int `json:"retryAfterSeconds,omitempty" description:"the number of seconds before the client should attempt to retry this operation"` -} - -// Values of Status.Status -const ( - StatusSuccess = "Success" - StatusFailure = "Failure" -) - -// StatusReason is an enumeration of possible failure causes. Each StatusReason -// must map to a single HTTP status code, but multiple reasons may map -// to the same HTTP status code. -// TODO: move to apiserver -type StatusReason string - -const ( - // StatusReasonUnknown means the server has declined to indicate a specific reason. - // The details field may contain other information about this error. - // Status code 500. - StatusReasonUnknown StatusReason = "" - - // StatusReasonNotFound means one or more resources required for this operation - // could not be found. - // Details (optional): - // "kind" string - the kind attribute of the missing resource - // on some operations may differ from the requested - // resource. - // "id" string - the identifier of the missing resource - // Status code 404 - StatusReasonNotFound StatusReason = "NotFound" - - // StatusReasonAlreadyExists means the resource you are creating already exists. - // Details (optional): - // "kind" string - the kind attribute of the conflicting resource - // "id" string - the identifier of the conflicting resource - // Status code 409 - StatusReasonAlreadyExists StatusReason = "AlreadyExists" - - // StatusReasonConflict means the requested update operation cannot be completed - // due to a conflict in the operation. The client may need to alter the request. - // Each resource may define custom details that indicate the nature of the - // conflict. - // Status code 409 - StatusReasonConflict StatusReason = "Conflict" - - // StatusReasonServerTimeout means the server can be reached and understood the request, - // but cannot complete the action in a reasonable time. The client should retry the request. - // This is may be due to temporary server load or a transient communication issue with - // another server. Status code 500 is used because the HTTP spec provides no suitable - // server-requested client retry and the 5xx class represents actionable errors. - // Details (optional): - // "kind" string - the kind attribute of the resource being acted on. - // "id" string - the operation that is being attempted. - // Status code 500 - StatusReasonServerTimeout StatusReason = "ServerTimeout" -) - -// StatusCause provides more information about an api.Status failure, including -// cases when multiple errors are encountered. -type StatusCause struct { - // A machine-readable description of the cause of the error. If this value is - // empty there is no information available. - Type CauseType `json:"reason,omitempty" description:"machine-readable description of the cause of the error; if this value is empty there is no information available"` - // A human-readable description of the cause of the error. This field may be - // presented as-is to a reader. - Message string `json:"message,omitempty" description:"human-readable description of the cause of the error; this field may be presented as-is to a reader"` - // The field of the resource that has caused this error, as named by its JSON - // serialization. May include dot and postfix notation for nested attributes. - // Arrays are zero-indexed. Fields may appear more than once in an array of - // causes due to fields having multiple errors. - // Optional. - // - // Examples: - // "name" - the field "name" on the current resource - // "items[0].name" - the field "name" on the first array entry in "items" - Field string `json:"field,omitempty" description:"field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors"` -} - -// CauseType is a machine readable value providing more detail about what -// occured in a status response. An operation may have multiple causes for a -// status (whether Failure or Success). -type CauseType string - -const ( - // CauseTypeFieldValueNotFound is used to report failure to find a requested value - // (e.g. looking up an ID). - CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueRequired is used to report required values that are not - // provided (e.g. empty strings, null values, or empty arrays). - CauseTypeFieldValueRequired CauseType = "FieldValueRequired" - // CauseTypeFieldValueDuplicate is used to report collisions of values that must be - // unique (e.g. unique IDs). - CauseTypeFieldValueDuplicate CauseType = "FieldValueDuplicate" - // CauseTypeFieldValueInvalid is used to report malformed values (e.g. failed regex - // match). - CauseTypeFieldValueInvalid CauseType = "FieldValueInvalid" - // CauseTypeFieldValueNotSupported is used to report valid (as per formatting rules) - // values that can not be handled (e.g. an enumerated string). - CauseTypeFieldValueNotSupported CauseType = "FieldValueNotSupported" -) - -// ObjectReference contains enough information to let you inspect or modify the referred object. -type ObjectReference struct { - Kind string `json:"kind,omitempty" description:"kind of the referent"` - Namespace string `json:"namespace,omitempty" description:"namespace of the referent"` - ID string `json:"name,omitempty" description:"id of the referent"` - UID types.UID `json:"uid,omitempty" description:"uid of the referent"` - APIVersion string `json:"apiVersion,omitempty" description:"API version of the referent"` - ResourceVersion string `json:"resourceVersion,omitempty" description:"specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency"` - - // Optional. If referring to a piece of an object instead of an entire object, this string - // should contain information to identify the sub-object. For example, if the object - // reference is to a container within a pod, this would take on a value like: - // "spec.containers{name}" (where "name" refers to the name of the container that triggered - // the event) or if no container name is specified "spec.containers[2]" (container with - // index 2 in this pod). This syntax is chosen only to have some well-defined way of - // referencing a part of an object. - // TODO: this design is not final and this field is subject to change in the future. - FieldPath string `json:"fieldPath,omitempty" description:"if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]"` -} - -// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. -type LocalObjectReference struct { - //TODO: Add other useful fields. apiVersion, kind, uid? - Name string `json:"name,omitempty" description:"name of the referent"` -} - -type SerializedReference struct { - TypeMeta `json:",inline"` - Reference ObjectReference `json:"reference,omitempty" description:"the reference to an object in the system"` -} - -// Event is a report of an event somewhere in the cluster. -// TODO: Decide whether to store these separately or with the object they apply to. -type Event struct { - TypeMeta `json:",inline"` - - // Required. The object that this event is about. - InvolvedObject ObjectReference `json:"involvedObject,omitempty" description:"object that this event is about"` - - // Should be a short, machine understandable string that describes the current status - // of the referred object. This should not give the reason for being in this state. - // Examples: "Running", "CantStart", "CantSchedule", "Deleted". - // It's OK for components to make up statuses to report here, but the same string should - // always be used for the same status. - // TODO: define a way of making sure these are consistent and don't collide. - // TODO: provide exact specification for format. - // DEPRECATED: Status (a.k.a Condition) value will be ignored. - Status string `json:"status,omitempty" description:"short, machine understandable string that describes the current status of the referred object"` - - // Optional; this should be a short, machine understandable string that gives the reason - // for the transition into the object's current status. For example, if ObjectStatus is - // "CantStart", Reason might be "ImageNotFound". - // TODO: provide exact specification for format. - Reason string `json:"reason,omitempty" description:"short, machine understandable string that gives the reason for the transition into the object's current status"` - - // Optional. A human-readable description of the status of this operation. - // TODO: decide on maximum length. - Message string `json:"message,omitempty" description:"human-readable description of the status of this operation"` - - // Optional. The component reporting this event. Should be a short machine understandable string. - // TODO: provide exact specification for format. - Source string `json:"source,omitempty" description:"component reporting this event; short machine understandable string"` - // Host name on which the event is generated. - Host string `json:"host,omitempty" description:"host name on which this event was generated"` - - // The time at which the client recorded the event. (Time of server receipt is in TypeMeta.) - // Deprecated: Use InitialTimeStamp/LastSeenTimestamp/Count instead. - // For backwards compatability, this will map to IntialTimestamp. - Timestamp util.Time `json:"timestamp,omitempty" description:"time at which the client recorded the event"` - - // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.) - FirstTimestamp util.Time `json:"firstTimestamp,omitempty" description:"the time at which the event was first recorded"` - - // The time at which the most recent occurance of this event was recorded. - LastTimestamp util.Time `json:"lastTimestamp,omitempty" description:"the time at which the most recent occurance of this event was recorded"` - - // The number of times this event has occurred. - Count int `json:"count,omitempty" description:"the number of times this event has occurred"` -} - -// EventList is a list of events. -type EventList struct { - TypeMeta `json:",inline"` - Items []Event `json:"items" description:"list of events"` -} - -// Backported from v1beta3 to replace ContainerManifest - -// DNSPolicy defines how a pod's DNS will be configured. -type DNSPolicy string - -const ( - // DNSClusterFirst indicates that the pod should use cluster DNS - // first, if it is available, then fall back on the default (as - // determined by kubelet) DNS settings. - DNSClusterFirst DNSPolicy = "ClusterFirst" - - // DNSDefault indicates that the pod should use the default (as - // determined by kubelet) DNS settings. - DNSDefault DNSPolicy = "Default" -) - -// PodSpec is a description of a pod -type PodSpec struct { - Volumes []Volume `json:"volumes" description:"list of volumes that can be mounted by containers belonging to the pod"` - // Required: there must be at least one container in a pod. - Containers []Container `json:"containers" description:"list of containers belonging to the pod; containers cannot currently be added or removed; there must be at least one container in a Pod"` - RestartPolicy RestartPolicy `json:"restartPolicy,omitempty" description:"restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways"` - // TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` - // Optional: Set DNS policy. Defaults to "ClusterFirst" - DNSPolicy DNSPolicy `json:"dnsPolicy,omitempty" description:"DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"` - // NodeSelector is a selector which must be true for the pod to fit on a node - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"selector which must match a node's labels for the pod to be scheduled on that node"` - - // Host is a request to schedule this pod onto a specific host. If it is non-empty, - // the the scheduler simply schedules this pod onto that host, assuming that it fits - // resource requirements. - Host string `json:"host,omitempty" description:"host requested for this pod"` - // Uses the host's network namespace. If this option is set, the ports that will be - // used must be specified. - // Optional: Default to false. - HostNetwork bool `json:"hostNetwork,omitempty" description:"host networking requested for this pod"` - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. For example, - // in the case of docker, only DockerConfig type secrets are honored. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling the container images"` -} - -// List holds a list of objects, which may not be known by the server. -type List struct { - TypeMeta `json:",inline"` - Items []runtime.RawExtension `json:"items" description:"list of objects"` -} - -// A type of object that is limited -type LimitType string - -const ( - // Limit that applies to all pods in a namespace - LimitTypePod LimitType = "Pod" - // Limit that applies to all containers in a namespace - LimitTypeContainer LimitType = "Container" -) - -// LimitRangeItem defines a min/max usage limit for any resource that matches on kind -type LimitRangeItem struct { - // Type of resource that this limit applies to - Type LimitType `json:"type,omitempty" description:"type of resource that this limit applies to"` - // Max usage constraints on this kind by resource name - Max ResourceList `json:"max,omitempty" description:"max usage constraints on this kind by resource name"` - // Min usage constraints on this kind by resource name - Min ResourceList `json:"min,omitempty" description:"min usage constraints on this kind by resource name"` - // Default usage constraints on this kind by resource name - Default ResourceList `json:"default,omitempty" description:"default values on this kind by resource name if omitted"` -} - -// LimitRangeSpec defines a min/max usage limit for resources that match on kind -type LimitRangeSpec struct { - // Limits is the list of LimitRangeItem objects that are enforced - Limits []LimitRangeItem `json:"limits" description:"limits is the list of LimitRangeItem objects that are enforced"` -} - -// LimitRange sets resource usage limits for each kind of resource in a Namespace -type LimitRange struct { - TypeMeta `json:",inline"` - - // Spec defines the limits enforced - Spec LimitRangeSpec `json:"spec,omitempty" description:"spec defines the limits enforced"` -} - -// LimitRangeList is a list of LimitRange items. -type LimitRangeList struct { - TypeMeta `json:",inline"` - - // Items is a list of LimitRange objects - Items []LimitRange `json:"items" description:"items is a list of LimitRange objects"` -} - -// The following identify resource constants for Kubernetes object types -const ( - // Pods, number - ResourcePods ResourceName = "pods" - // Services, number - ResourceServices ResourceName = "services" - // ReplicationControllers, number - ResourceReplicationControllers ResourceName = "replicationcontrollers" - // ResourceQuotas, number - ResourceQuotas ResourceName = "resourcequotas" - // ResourceSecrets, number - ResourceSecrets ResourceName = "secrets" - // ResourcePersistentVolumeClaims, number - ResourcePersistentVolumeClaims ResourceName = "persistentvolumeclaims" -) - -// ResourceQuotaSpec defines the desired hard limits to enforce for Quota -type ResourceQuotaSpec struct { - // Hard is the set of desired hard limits for each named resource - Hard ResourceList `json:"hard,omitempty" description:"hard is the set of desired hard limits for each named resource"` -} - -// ResourceQuotaStatus defines the enforced hard limits and observed use -type ResourceQuotaStatus struct { - // Hard is the set of enforced hard limits for each named resource - Hard ResourceList `json:"hard,omitempty" description:"hard is the set of enforced hard limits for each named resource"` - // Used is the current observed total usage of the resource in the namespace - Used ResourceList `json:"used,omitempty" description:"used is the current observed total usage of the resource in the namespace"` -} - -// ResourceQuota sets aggregate quota restrictions enforced per namespace -type ResourceQuota struct { - TypeMeta `json:",inline"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize resource quotas"` - - // Spec defines the desired quota - Spec ResourceQuotaSpec `json:"spec,omitempty" description:"spec defines the desired quota"` - - // Status defines the actual enforced quota and its current usage - Status ResourceQuotaStatus `json:"status,omitempty" description:"status defines the actual enforced quota and current usage"` -} - -// ResourceQuotaList is a list of ResourceQuota items -type ResourceQuotaList struct { - TypeMeta `json:",inline"` - - // Items is a list of ResourceQuota objects - Items []ResourceQuota `json:"items" description:"items is a list of ResourceQuota objects"` -} - -// NFSVolumeSource represents an NFS Mount that lasts the lifetime of a pod -type NFSVolumeSource struct { - // Server is the hostname or IP address of the NFS server - Server string `json:"server" description:"the hostname or IP address of the NFS server"` - - // Path is the exported NFS share - Path string `json:"path" description:"the path that is exported by the NFS server"` - - // Optional: Defaults to false (read/write). ReadOnly here will force - // the NFS export to be mounted as read-only permissions - ReadOnly bool `json:"readOnly,omitempty" description:"forces the NFS export to be mounted with read-only permissions"` -} - -// Secret holds secret data of a certain type. The total bytes of the values in -// the Data field must be less than MaxSecretSize bytes. -type Secret struct { - TypeMeta `json:",inline"` - - // Data contains the secret data. Each key must be a valid DNS_SUBDOMAIN - // or leading dot followed by valid DNS_SUBDOMAIN. - // The serialized form of the secret data is a base64 encoded string, - // representing the arbitrary (possibly non-string) data value here. - Data map[string][]byte `json:"data,omitempty" description:"data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4"` - - // Used to facilitate programmatic handling of secret data. - Type SecretType `json:"type,omitempty" description:"type facilitates programmatic handling of secret data"` -} - -const MaxSecretSize = 1 * 1024 * 1024 - -type SecretType string - -const ( - // SecretTypeOpaque is the default; arbitrary user-defined data - SecretTypeOpaque SecretType = "Opaque" - - // SecretTypeServiceAccountToken contains a token that identifies a service account to the API - // - // Required fields: - // - Secret.Annotations["kubernetes.io/service-account.name"] - the name of the ServiceAccount the token identifies - // - Secret.Annotations["kubernetes.io/service-account.uid"] - the UID of the ServiceAccount the token identifies - // - Secret.Data["token"] - a token that identifies the service account to the API - SecretTypeServiceAccountToken SecretType = "kubernetes.io/service-account-token" - - // ServiceAccountNameKey is the key of the required annotation for SecretTypeServiceAccountToken secrets - ServiceAccountNameKey = "kubernetes.io/service-account.name" - // ServiceAccountUIDKey is the key of the required annotation for SecretTypeServiceAccountToken secrets - ServiceAccountUIDKey = "kubernetes.io/service-account.uid" - // ServiceAccountTokenKey is the key of the required data for SecretTypeServiceAccountToken secrets - ServiceAccountTokenKey = "token" - // ServiceAccountKubeconfigKey is the key of the optional kubeconfig data for SecretTypeServiceAccountToken secrets - ServiceAccountKubeconfigKey = "kubernetes.kubeconfig" - - // SecretTypeDockercfg contains a dockercfg file that follows the same format rules as ~/.dockercfg - // - // Required fields: - // - Secret.Data[".dockercfg"] - a serialized ~/.dockercfg file - SecretTypeDockercfg SecretType = "kubernetes.io/dockercfg" - - // DockerConfigKey is the key of the required data for SecretTypeDockercfg secrets - DockerConfigKey = ".dockercfg" -) - -type SecretList struct { - TypeMeta `json:",inline"` - - Items []Secret `json:"items" description:"items is a list of secret objects"` -} - -// GlusterfsVolumeSource represents a Glusterfs Mount that lasts the lifetime of a pod -type GlusterfsVolumeSource struct { - // Required: EndpointsName is the endpoint name that details Glusterfs topology - EndpointsName string `json:"endpoints" description:"gluster hosts endpoints name"` - - // Required: Path is the Glusterfs volume path - Path string `json:"path" description:"path to gluster volume"` - - // Optional: Defaults to false (read/write). ReadOnly here will force - // the Glusterfs volume to be mounted with read-only permissions - ReadOnly bool `json:"readOnly,omitempty" description:"Glusterfs volume to be mounted with read-only permissions"` -} - -// Type and constants for component health validation. -type ComponentConditionType string - -// These are the valid conditions for the component. -const ( - ComponentHealthy ComponentConditionType = "Healthy" -) - -type ComponentCondition struct { - Type ComponentConditionType `json:"type" description:"type of component condition, currently only Healthy"` - Status ConditionStatus `json:"status" description:"current status of this component condition, one of Full, None, Unknown"` - Message string `json:"message,omitempty" description:"health check message received from the component"` - Error string `json:"error,omitempty" description:"error code from health check attempt (if any)"` -} - -// ComponentStatus (and ComponentStatusList) holds the cluster validation info. -type ComponentStatus struct { - TypeMeta `json:",inline"` - - Name string `json:"name,omitempty" description:"name of the component"` - Conditions []ComponentCondition `json:"conditions,omitempty" description:"list of component conditions observed"` -} - -type ComponentStatusList struct { - TypeMeta `json:",inline"` - - Items []ComponentStatus `json:"items" description:"list of component status objects"` -} - -// SecurityContext holds security configuration that will be applied to a container. SecurityContext -// contains duplication of some existing fields from the Container resource. These duplicate fields -// will be populated based on the Container configuration if they are not set. Defining them on -// both the Container AND the SecurityContext will result in an error. -type SecurityContext struct { - // Capabilities are the capabilities to add/drop when running the container - // Must match Container.Capabilities or be unset. Will be defaulted to Container.Capabilities if left unset - Capabilities *Capabilities `json:"capabilities,omitempty" description:"the linux capabilites that should be added or removed"` - - // Run the container in privileged mode - // Must match Container.Privileged or be unset. Will be defaulted to Container.Privileged if left unset - Privileged *bool `json:"privileged,omitempty" description:"run the container in privileged mode"` - - // SELinuxOptions are the labels to be applied to the container - // and volumes - SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" description:"options that control the SELinux labels applied"` - - // RunAsUser is the UID to run the entrypoint of the container process. - RunAsUser *int64 `json:"runAsUser,omitempty" description:"the user id that runs the first process in the container"` -} - -// SELinuxOptions are the labels to be applied to the container. -type SELinuxOptions struct { - // SELinux user label - User string `json:"user,omitempty" description:"the user label to apply to the container"` - - // SELinux role label - Role string `json:"role,omitempty" description:"the role label to apply to the container"` - - // SELinux type label - Type string `json:"type,omitempty" description:"the type label to apply to the container"` - - // SELinux level label. - Level string `json:"level,omitempty" description:"the level label to apply to the container"` -} - -// RangeAllocation is not a public type -type RangeAllocation struct { - TypeMeta `json:",inline"` - - Range string `json:"range" description:"a range string that identifies the range represented by 'data'; required"` - Data []byte `json:"data" description:"a bit array containing all allocated addresses in the previous segment"` -} diff --git a/pkg/api/v1beta2/conversion.go b/pkg/api/v1beta2/conversion.go deleted file mode 100644 index 626fd061f9b..00000000000 --- a/pkg/api/v1beta2/conversion.go +++ /dev/null @@ -1,1692 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "fmt" - "net" - "reflect" - "strconv" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource" - "github.com/GoogleCloudPlatform/kubernetes/pkg/conversion" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -func addConversionFuncs() { - // Our TypeMeta was split into two different structs. - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.ObjectMeta{}, "ObjectMeta") - api.Scheme.AddStructFieldConversion(TypeMeta{}, "TypeMeta", api.ListMeta{}, "ListMeta") - - api.Scheme.AddStructFieldConversion(api.TypeMeta{}, "TypeMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.ObjectMeta{}, "ObjectMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.ListMeta{}, "ListMeta", TypeMeta{}, "TypeMeta") - api.Scheme.AddStructFieldConversion(api.Endpoints{}, "Endpoints", Endpoints{}, "Endpoints") - - // TODO: scope this to a specific type once that becomes available and remove the Event conversion functions below - // api.Scheme.AddStructFieldConversion(string(""), "Status", string(""), "Condition") - // api.Scheme.AddStructFieldConversion(string(""), "Condition", string(""), "Status") - - err := api.Scheme.AddConversionFuncs( - // TypeMeta must be split into two objects - func(in *api.TypeMeta, out *TypeMeta, s conversion.Scope) error { - out.Kind = in.Kind - out.APIVersion = in.APIVersion - return nil - }, - func(in *TypeMeta, out *api.TypeMeta, s conversion.Scope) error { - out.Kind = in.Kind - out.APIVersion = in.APIVersion - return nil - }, - - // ListMeta must be converted to TypeMeta - func(in *api.ListMeta, out *TypeMeta, s conversion.Scope) error { - out.SelfLink = in.SelfLink - if len(in.ResourceVersion) > 0 { - v, err := strconv.ParseUint(in.ResourceVersion, 10, 64) - if err != nil { - return err - } - out.ResourceVersion = v - } - return nil - }, - func(in *TypeMeta, out *api.ListMeta, s conversion.Scope) error { - out.SelfLink = in.SelfLink - if in.ResourceVersion != 0 { - out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10) - } else { - out.ResourceVersion = "" - } - return nil - }, - - // ObjectMeta must be converted to TypeMeta - func(in *api.ObjectMeta, out *TypeMeta, s conversion.Scope) error { - out.Namespace = in.Namespace - out.ID = in.Name - out.GenerateName = in.GenerateName - out.UID = in.UID - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = in.DeletionTimestamp - out.SelfLink = in.SelfLink - if len(in.ResourceVersion) > 0 { - v, err := strconv.ParseUint(in.ResourceVersion, 10, 64) - if err != nil { - return err - } - out.ResourceVersion = v - } - return s.Convert(&in.Annotations, &out.Annotations, 0) - }, - func(in *TypeMeta, out *api.ObjectMeta, s conversion.Scope) error { - out.Namespace = in.Namespace - out.Name = in.ID - out.GenerateName = in.GenerateName - out.UID = in.UID - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = in.DeletionTimestamp - out.SelfLink = in.SelfLink - if in.ResourceVersion != 0 { - out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10) - } else { - out.ResourceVersion = "" - } - return s.Convert(&in.Annotations, &out.Annotations, 0) - }, - - // Convert all to the new PodPhase constants - func(in *api.PodPhase, out *PodStatus, s conversion.Scope) error { - switch *in { - case "": - *out = "" - case api.PodPending: - *out = PodWaiting - case api.PodRunning: - *out = PodRunning - case api.PodSucceeded: - *out = PodSucceeded - case api.PodFailed: - *out = PodTerminated - case api.PodUnknown: - *out = PodUnknown - default: - return &api.ConversionError{ - In: in, - Out: out, - Message: "The string provided is not a valid PodPhase constant value", - } - } - - return nil - }, - - func(in *PodStatus, out *api.PodPhase, s conversion.Scope) error { - switch *in { - case "": - *out = "" - case PodWaiting: - *out = api.PodPending - case PodRunning: - *out = api.PodRunning - case PodTerminated: - // Older API versions did not contain enough info to map to PodSucceeded - *out = api.PodFailed - case PodSucceeded: - *out = api.PodSucceeded - case PodUnknown: - *out = api.PodUnknown - default: - return &api.ConversionError{ - In: in, - Out: out, - Message: "The string provided is not a valid PodPhase constant value", - } - } - return nil - }, - - // Convert all the standard objects - func(in *api.Pod, out *Pod, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - // TODO: Change this to use in.ObjectMeta.Labels. - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { - return err - } - out.DesiredState.Host = in.Spec.NodeName - out.CurrentState.Host = in.Spec.NodeName - out.ServiceAccount = in.Spec.ServiceAccount - if err := s.Convert(&in.Status, &out.CurrentState, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { - return err - } - return nil - }, - func(in *Pod, out *api.Pod, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { - return err - } - out.Spec.ServiceAccount = in.ServiceAccount - out.Spec.NodeName = in.DesiredState.Host - if err := s.Convert(&in.CurrentState, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ReplicationController, out *ReplicationController, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if err := s.Convert(&in.Spec, &out.DesiredState, 0); err != nil { - return err - } - out.CurrentState.Replicas = in.Status.Replicas - return nil - }, - func(in *ReplicationController, out *api.ReplicationController, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if err := s.Convert(&in.DesiredState, &out.Spec, 0); err != nil { - return err - } - out.Status.Replicas = in.CurrentState.Replicas - return nil - }, - - func(in *api.ReplicationControllerSpec, out *ReplicationControllerState, s conversion.Scope) error { - out.Replicas = in.Replicas - if err := s.Convert(&in.Selector, &out.ReplicaSelector, 0); err != nil { - return err - } - //if in.TemplateRef != nil && in.Template == nil { - // return &api.ConversionError{ - // In: in, - // Out: out, - // Message: "objects with a template ref cannot be converted to older objects, must populate template", - // } - //} - if in.Template != nil { - if err := s.Convert(in.Template, &out.PodTemplate, 0); err != nil { - return err - } - } - return nil - }, - func(in *ReplicationControllerState, out *api.ReplicationControllerSpec, s conversion.Scope) error { - out.Replicas = in.Replicas - if err := s.Convert(&in.ReplicaSelector, &out.Selector, 0); err != nil { - return err - } - out.Template = &api.PodTemplateSpec{} - if err := s.Convert(&in.PodTemplate, out.Template, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodTemplateSpec, out *PodTemplate, s conversion.Scope) error { - if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { - return err - } - out.DesiredState.Host = in.Spec.NodeName - out.ServiceAccount = in.Spec.ServiceAccount - if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Annotations, &out.Annotations, 0); err != nil { - return err - } - return nil - }, - func(in *PodTemplate, out *api.PodTemplateSpec, s conversion.Scope) error { - if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { - return err - } - out.Spec.NodeName = in.DesiredState.Host - out.Spec.ServiceAccount = in.ServiceAccount - if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Annotations, &out.ObjectMeta.Annotations, 0); err != nil { - return err - } - return nil - }, - // Converts internal Container to v1beta2.Container. - // Fields 'CPU' and 'Memory' are not present in the internal Container object. - // Hence the need for a custom conversion function. - func(in *api.Container, out *Container, s conversion.Scope) error { - if err := s.Convert(&in.Name, &out.Name, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.Command, &out.Entrypoint, 0); err != nil { - return err - } - if err := s.Convert(&in.Args, &out.Command, 0); err != nil { - return err - } - if err := s.Convert(&in.WorkingDir, &out.WorkingDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Ports, &out.Ports, 0); err != nil { - return err - } - if err := s.Convert(&in.Env, &out.Env, 0); err != nil { - return err - } - if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil { - return err - } - if err := s.Convert(in.Resources.Limits.Cpu(), &out.CPU, 0); err != nil { - return err - } - if err := s.Convert(in.Resources.Limits.Memory(), &out.Memory, 0); err != nil { - return err - } - if err := s.Convert(&in.VolumeMounts, &out.VolumeMounts, 0); err != nil { - return err - } - if err := s.Convert(&in.LivenessProbe, &out.LivenessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.ReadinessProbe, &out.ReadinessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.Lifecycle, &out.Lifecycle, 0); err != nil { - return err - } - if err := s.Convert(&in.TerminationMessagePath, &out.TerminationMessagePath, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullPolicy, &out.ImagePullPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.SecurityContext, &out.SecurityContext, 0); err != nil { - return err - } - // now that we've converted set the container field from security context - if out.SecurityContext != nil && out.SecurityContext.Privileged != nil { - out.Privileged = *out.SecurityContext.Privileged - } - // now that we've converted set the container field from security context - if out.SecurityContext != nil && out.SecurityContext.Capabilities != nil { - out.Capabilities = *out.SecurityContext.Capabilities - } - return nil - }, - // Internal API does not support CPU to be specified via an explicit field. - // Hence it must be stored in Container.Resources. - func(in *int, out *api.ResourceList, s conversion.Scope) error { - if *in == 0 { - return nil - } - quantity := resource.Quantity{} - if err := s.Convert(in, &quantity, 0); err != nil { - return err - } - (*out)[api.ResourceCPU] = quantity - - return nil - }, - // Internal API does not support Memory to be specified via an explicit field. - // Hence it must be stored in Container.Resources. - func(in *int64, out *api.ResourceList, s conversion.Scope) error { - if *in == 0 { - return nil - } - quantity := resource.Quantity{} - if err := s.Convert(in, &quantity, 0); err != nil { - return err - } - (*out)[api.ResourceMemory] = quantity - - return nil - }, - // Converts v1beta2.Container to internal api.Container. - // Fields 'CPU' and 'Memory' are not present in the internal api.Container object. - // Hence the need for a custom conversion function. - func(in *Container, out *api.Container, s conversion.Scope) error { - if err := s.Convert(&in.Name, &out.Name, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.Command, &out.Args, 0); err != nil { - return err - } - if err := s.Convert(&in.Entrypoint, &out.Command, 0); err != nil { - return err - } - if err := s.Convert(&in.WorkingDir, &out.WorkingDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Ports, &out.Ports, 0); err != nil { - return err - } - if err := s.Convert(&in.Env, &out.Env, 0); err != nil { - return err - } - if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil { - return err - } - if err := s.Convert(&in.CPU, &out.Resources.Limits, 0); err != nil { - return err - } - if err := s.Convert(&in.Memory, &out.Resources.Limits, 0); err != nil { - return err - } - if err := s.Convert(&in.VolumeMounts, &out.VolumeMounts, 0); err != nil { - return err - } - if err := s.Convert(&in.LivenessProbe, &out.LivenessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.ReadinessProbe, &out.ReadinessProbe, 0); err != nil { - return err - } - if err := s.Convert(&in.Lifecycle, &out.Lifecycle, 0); err != nil { - return err - } - if err := s.Convert(&in.TerminationMessagePath, &out.TerminationMessagePath, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullPolicy, &out.ImagePullPolicy, 0); err != nil { - return err - } - if in.SecurityContext != nil { - if in.SecurityContext.Capabilities != nil { - if !reflect.DeepEqual(in.SecurityContext.Capabilities.Add, in.Capabilities.Add) || - !reflect.DeepEqual(in.SecurityContext.Capabilities.Drop, in.Capabilities.Drop) { - return fmt.Errorf("container capability settings do not match security context settings, cannot convert") - } - } - if in.SecurityContext.Privileged != nil { - if in.Privileged != *in.SecurityContext.Privileged { - return fmt.Errorf("container privileged settings do not match security context settings, cannot convert") - } - } - } - if err := s.Convert(&in.SecurityContext, &out.SecurityContext, 0); err != nil { - return err - } - return nil - }, - func(in *api.PodSpec, out *ContainerManifest, s conversion.Scope) error { - if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil { - return err - } - if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullSecrets, &out.ImagePullSecrets, 0); err != nil { - return err - } - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } - out.DNSPolicy = DNSPolicy(in.DNSPolicy) - out.Version = "v1beta2" - out.HostNetwork = in.HostNetwork - return nil - }, - func(in *ContainerManifest, out *api.PodSpec, s conversion.Scope) error { - if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil { - return err - } - if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil { - return err - } - if err := s.Convert(&in.ImagePullSecrets, &out.ImagePullSecrets, 0); err != nil { - return err - } - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } - out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) - out.HostNetwork = in.HostNetwork - return nil - }, - - func(in *api.PodStatus, out *PodState, s conversion.Scope) error { - if err := s.Convert(&in.Phase, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerStatuses, &out.Info, 0); err != nil { - return err - } - if err := s.Convert(&in.Conditions, &out.Conditions, 0); err != nil { - return err - } - out.Message = in.Message - out.HostIP = in.HostIP - out.PodIP = in.PodIP - return nil - }, - func(in *PodState, out *api.PodStatus, s conversion.Scope) error { - if err := s.Convert(&in.Status, &out.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Info, &out.ContainerStatuses, 0); err != nil { - return err - } - if err := s.Convert(&in.Conditions, &out.Conditions, 0); err != nil { - return err - } - out.Message = in.Message - out.HostIP = in.HostIP - out.PodIP = in.PodIP - return nil - }, - - func(in *[]api.ContainerStatus, out *PodInfo, s conversion.Scope) error { - *out = make(map[string]ContainerStatus) - for _, st := range *in { - v := ContainerStatus{} - if err := s.Convert(&st, &v, 0); err != nil { - return err - } - (*out)[st.Name] = v - } - return nil - }, - func(in *PodInfo, out *[]api.ContainerStatus, s conversion.Scope) error { - for k, v := range *in { - st := api.ContainerStatus{} - if err := s.Convert(&v, &st, 0); err != nil { - return err - } - st.Name = k - *out = append(*out, st) - } - return nil - }, - - func(in *api.ContainerStatus, out *ContainerStatus, s conversion.Scope) error { - if err := s.Convert(&in.State, &out.State, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTerminationState, &out.LastTerminationState, 0); err != nil { - return err - } - if err := s.Convert(&in.Ready, &out.Ready, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartCount, &out.RestartCount, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.ImageID, &out.ImageID, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerID, &out.ContainerID, 0); err != nil { - return err - } - return nil - }, - func(in *ContainerStatus, out *api.ContainerStatus, s conversion.Scope) error { - if err := s.Convert(&in.State, &out.State, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTerminationState, &out.LastTerminationState, 0); err != nil { - return err - } - if err := s.Convert(&in.Ready, &out.Ready, 0); err != nil { - return err - } - if err := s.Convert(&in.RestartCount, &out.RestartCount, 0); err != nil { - return err - } - if err := s.Convert(&in.Image, &out.Image, 0); err != nil { - return err - } - if err := s.Convert(&in.ImageID, &out.ImageID, 0); err != nil { - return err - } - if err := s.Convert(&in.ContainerID, &out.ContainerID, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodStatusResult, out *PodStatusResult, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.State, 0); err != nil { - return err - } - return nil - }, - func(in *PodStatusResult, out *api.PodStatusResult, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.State, &out.Status, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodSpec, out *PodState, s conversion.Scope) error { - if err := s.Convert(&in, &out.Manifest, 0); err != nil { - return err - } - out.Host = in.NodeName - return nil - }, - func(in *PodState, out *api.PodSpec, s conversion.Scope) error { - if err := s.Convert(&in.Manifest, &out, 0); err != nil { - return err - } - out.NodeName = in.Host - return nil - }, - func(in *api.Service, out *Service, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - // Produce legacy fields. - out.Protocol = ProtocolTCP - if len(in.Spec.Ports) > 0 { - out.PortName = in.Spec.Ports[0].Name - out.Port = in.Spec.Ports[0].Port - out.Protocol = Protocol(in.Spec.Ports[0].Protocol) - out.ContainerPort = in.Spec.Ports[0].TargetPort - } - // Copy modern fields. - for i := range in.Spec.Ports { - out.Ports = append(out.Ports, ServicePort{ - Name: in.Spec.Ports[i].Name, - Port: in.Spec.Ports[i].Port, - Protocol: Protocol(in.Spec.Ports[i].Protocol), - ContainerPort: in.Spec.Ports[i].TargetPort, - NodePort: in.Spec.Ports[i].NodePort, - }) - } - - if err := s.Convert(&in.Spec.Selector, &out.Selector, 0); err != nil { - return err - } - out.PublicIPs = in.Spec.DeprecatedPublicIPs - out.PortalIP = in.Spec.ClusterIP - if err := s.Convert(&in.Spec.SessionAffinity, &out.SessionAffinity, 0); err != nil { - return err - } - - if err := s.Convert(&in.Status.LoadBalancer, &out.LoadBalancerStatus, 0); err != nil { - return err - } - - if err := s.Convert(&in.Spec.Type, &out.Type, 0); err != nil { - return err - } - out.CreateExternalLoadBalancer = in.Spec.Type == api.ServiceTypeLoadBalancer - - return nil - }, - func(in *Service, out *api.Service, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - - if len(in.Ports) == 0 && in.Port != 0 { - // Use legacy fields to produce modern fields. - out.Spec.Ports = append(out.Spec.Ports, api.ServicePort{ - Name: in.PortName, - Port: in.Port, - Protocol: api.Protocol(in.Protocol), - TargetPort: in.ContainerPort, - }) - } else { - // Use modern fields, ignore legacy. - for i := range in.Ports { - out.Spec.Ports = append(out.Spec.Ports, api.ServicePort{ - Name: in.Ports[i].Name, - Port: in.Ports[i].Port, - Protocol: api.Protocol(in.Ports[i].Protocol), - TargetPort: in.Ports[i].ContainerPort, - NodePort: in.Ports[i].NodePort, - }) - } - } - - if err := s.Convert(&in.Selector, &out.Spec.Selector, 0); err != nil { - return err - } - out.Spec.DeprecatedPublicIPs = in.PublicIPs - out.Spec.ClusterIP = in.PortalIP - if err := s.Convert(&in.SessionAffinity, &out.Spec.SessionAffinity, 0); err != nil { - return err - } - - if err := s.Convert(&in.LoadBalancerStatus, &out.Status.LoadBalancer, 0); err != nil { - return err - } - - typeIn := in.Type - if typeIn == "" { - if in.CreateExternalLoadBalancer { - typeIn = ServiceTypeLoadBalancer - } else { - typeIn = ServiceTypeClusterIP - } - } - if err := s.Convert(&typeIn, &out.Spec.Type, 0); err != nil { - return err - } - - return nil - }, - - func(in *api.Node, out *Minion, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Phase, &out.Status.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Conditions, &out.Status.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Addresses, &out.Status.Addresses, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.NodeInfo, &out.Status.NodeInfo, 0); err != nil { - return err - } - - for _, address := range in.Status.Addresses { - if address.Type == api.NodeLegacyHostIP { - out.HostIP = address.Address - } - } - out.PodCIDR = in.Spec.PodCIDR - out.ExternalID = in.Spec.ExternalID - out.ProviderID = in.Spec.ProviderID - out.Unschedulable = in.Spec.Unschedulable - return s.Convert(&in.Status.Capacity, &out.NodeResources.Capacity, 0) - }, - func(in *Minion, out *api.Node, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Phase, &out.Status.Phase, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Conditions, &out.Status.Conditions, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.Addresses, &out.Status.Addresses, 0); err != nil { - return err - } - if err := s.Convert(&in.Status.NodeInfo, &out.Status.NodeInfo, 0); err != nil { - return err - } - - if in.HostIP != "" { - api.AddToNodeAddresses(&out.Status.Addresses, - api.NodeAddress{Type: api.NodeLegacyHostIP, Address: in.HostIP}) - } - out.Spec.PodCIDR = in.PodCIDR - out.Spec.ExternalID = in.ExternalID - out.Spec.ProviderID = in.ProviderID - out.Spec.Unschedulable = in.Unschedulable - return s.Convert(&in.NodeResources.Capacity, &out.Status.Capacity, 0) - }, - - func(in *api.LimitRange, out *LimitRange, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - return nil - }, - func(in *LimitRange, out *api.LimitRange, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - return nil - }, - - func(in *Namespace, out *api.Namespace, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - return nil - }, - - func(in *api.LimitRangeSpec, out *LimitRangeSpec, s conversion.Scope) error { - *out = LimitRangeSpec{} - out.Limits = make([]LimitRangeItem, len(in.Limits), len(in.Limits)) - for i := range in.Limits { - if err := s.Convert(&in.Limits[i], &out.Limits[i], 0); err != nil { - return err - } - } - return nil - }, - func(in *LimitRangeSpec, out *api.LimitRangeSpec, s conversion.Scope) error { - *out = api.LimitRangeSpec{} - out.Limits = make([]api.LimitRangeItem, len(in.Limits), len(in.Limits)) - for i := range in.Limits { - if err := s.Convert(&in.Limits[i], &out.Limits[i], 0); err != nil { - return err - } - } - return nil - }, - - func(in *api.LimitRangeItem, out *LimitRangeItem, s conversion.Scope) error { - *out = LimitRangeItem{} - out.Type = LimitType(in.Type) - if err := s.Convert(&in.Max, &out.Max, 0); err != nil { - return err - } - if err := s.Convert(&in.Min, &out.Min, 0); err != nil { - return err - } - if err := s.Convert(&in.Default, &out.Default, 0); err != nil { - return err - } - return nil - }, - func(in *LimitRangeItem, out *api.LimitRangeItem, s conversion.Scope) error { - *out = api.LimitRangeItem{} - out.Type = api.LimitType(in.Type) - if err := s.Convert(&in.Max, &out.Max, 0); err != nil { - return err - } - if err := s.Convert(&in.Min, &out.Min, 0); err != nil { - return err - } - if err := s.Convert(&in.Default, &out.Default, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuota, out *ResourceQuota, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuota, out *api.ResourceQuota, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Spec, &out.Spec, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuotaSpec, out *ResourceQuotaSpec, s conversion.Scope) error { - *out = ResourceQuotaSpec{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuotaSpec, out *api.ResourceQuotaSpec, s conversion.Scope) error { - *out = api.ResourceQuotaSpec{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - return nil - }, - - func(in *api.ResourceQuotaStatus, out *ResourceQuotaStatus, s conversion.Scope) error { - *out = ResourceQuotaStatus{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - if err := s.Convert(&in.Used, &out.Used, 0); err != nil { - return err - } - return nil - }, - func(in *ResourceQuotaStatus, out *api.ResourceQuotaStatus, s conversion.Scope) error { - *out = api.ResourceQuotaStatus{} - if err := s.Convert(&in.Hard, &out.Hard, 0); err != nil { - return err - } - if err := s.Convert(&in.Used, &out.Used, 0); err != nil { - return err - } - return nil - }, - - // Object ID <-> Name - // TODO: amend the conversion package to allow overriding specific fields. - func(in *ObjectReference, out *api.ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.Name = in.ID - out.UID = in.UID - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil - }, - func(in *api.ObjectReference, out *ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.ID = in.Name - out.UID = in.UID - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil - }, - - // Event Status <-> Condition - // Event Source <-> Source.Component - // Event Host <-> Source.Host - // TODO: remove this when it becomes possible to specify a field name conversion on a specific type - func(in *api.Event, out *Event, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - out.Source = in.Source.Component - out.Host = in.Source.Host - out.Timestamp = in.FirstTimestamp - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0) - }, - func(in *Event, out *api.Event, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - out.Source.Component = in.Source - out.Source.Host = in.Host - if in.FirstTimestamp.IsZero() { - // Assume this is an old event that does not specify FirstTimestamp/LastTimestamp/Count - out.FirstTimestamp = in.Timestamp - out.LastTimestamp = in.Timestamp - out.Count = 1 - } else { - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - } - return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0) - }, - - // This is triggered for the Memory field of Container. - func(in *int64, out *resource.Quantity, s conversion.Scope) error { - out.Set(*in) - out.Format = resource.BinarySI - return nil - }, - func(in *resource.Quantity, out *int64, s conversion.Scope) error { - *out = in.Value() - return nil - }, - - // This is triggered by the CPU field of Container. - // Note that if we add other int/Quantity conversions my - // simple hack (int64=Value(), int=MilliValue()) here won't work. - func(in *int, out *resource.Quantity, s conversion.Scope) error { - out.SetMilli(int64(*in)) - out.Format = resource.DecimalSI - return nil - }, - func(in *resource.Quantity, out *int, s conversion.Scope) error { - *out = int(in.MilliValue()) - return nil - }, - - // Convert resource lists. - func(in *ResourceList, out *api.ResourceList, s conversion.Scope) error { - *out = api.ResourceList{} - for k, v := range *in { - fv, err := strconv.ParseFloat(v.String(), 64) - if err != nil { - return &api.ConversionError{ - In: in, Out: out, - Message: fmt.Sprintf("value '%v' of '%v': %v", v, k, err), - } - } - if k == ResourceCPU { - (*out)[api.ResourceCPU] = *resource.NewMilliQuantity(int64(fv*1000), resource.DecimalSI) - } else { - (*out)[api.ResourceName(k)] = *resource.NewQuantity(int64(fv), resource.BinarySI) - } - } - return nil - }, - func(in *api.ResourceList, out *ResourceList, s conversion.Scope) error { - *out = ResourceList{} - for k, v := range *in { - if k == api.ResourceCPU { - (*out)[ResourceCPU] = util.NewIntOrStringFromString(fmt.Sprintf("%v", float64(v.MilliValue())/1000)) - } else { - (*out)[ResourceName(k)] = util.NewIntOrStringFromInt(int(v.Value())) - } - } - return nil - }, - - func(in *api.Volume, out *Volume, s conversion.Scope) error { - if err := s.Convert(&in.VolumeSource, &out.Source, 0); err != nil { - return err - } - out.Name = in.Name - return nil - }, - func(in *Volume, out *api.Volume, s conversion.Scope) error { - if err := s.Convert(&in.Source, &out.VolumeSource, 0); err != nil { - return err - } - out.Name = in.Name - return nil - }, - - func(in *api.VolumeSource, out *VolumeSource, s conversion.Scope) error { - if err := s.Convert(&in.EmptyDir, &out.EmptyDir, 0); err != nil { - return err - } - if err := s.Convert(&in.GitRepo, &out.GitRepo, 0); err != nil { - return err - } - if err := s.Convert(&in.ISCSI, &out.ISCSI, 0); err != nil { - return err - } - if err := s.Convert(&in.GCEPersistentDisk, &out.GCEPersistentDisk, 0); err != nil { - return err - } - if err := s.Convert(&in.AWSElasticBlockStore, &out.AWSElasticBlockStore, 0); err != nil { - return err - } - if err := s.Convert(&in.HostPath, &out.HostDir, 0); err != nil { - return err - } - if err := s.Convert(&in.Secret, &out.Secret, 0); err != nil { - return err - } - if err := s.Convert(&in.NFS, &out.NFS, 0); err != nil { - return err - } - if err := s.Convert(&in.Glusterfs, &out.Glusterfs, 0); err != nil { - return err - } - if err := s.Convert(&in.PersistentVolumeClaimVolumeSource, &out.PersistentVolumeClaimVolumeSource, 0); err != nil { - return err - } - if err := s.Convert(&in.RBD, &out.RBD, 0); err != nil { - return err - } - return nil - }, - func(in *VolumeSource, out *api.VolumeSource, s conversion.Scope) error { - if err := s.Convert(&in.EmptyDir, &out.EmptyDir, 0); err != nil { - return err - } - if err := s.Convert(&in.GitRepo, &out.GitRepo, 0); err != nil { - return err - } - if err := s.Convert(&in.GCEPersistentDisk, &out.GCEPersistentDisk, 0); err != nil { - return err - } - if err := s.Convert(&in.AWSElasticBlockStore, &out.AWSElasticBlockStore, 0); err != nil { - return err - } - if err := s.Convert(&in.ISCSI, &out.ISCSI, 0); err != nil { - return err - } - if err := s.Convert(&in.HostDir, &out.HostPath, 0); err != nil { - return err - } - if err := s.Convert(&in.Secret, &out.Secret, 0); err != nil { - return err - } - if err := s.Convert(&in.NFS, &out.NFS, 0); err != nil { - return err - } - if err := s.Convert(&in.PersistentVolumeClaimVolumeSource, &out.PersistentVolumeClaimVolumeSource, 0); err != nil { - return err - } - if err := s.Convert(&in.Glusterfs, &out.Glusterfs, 0); err != nil { - return err - } - if err := s.Convert(&in.RBD, &out.RBD, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PullPolicy, out *PullPolicy, s conversion.Scope) error { - switch *in { - case api.PullAlways: - *out = PullAlways - case api.PullNever: - *out = PullNever - case api.PullIfNotPresent: - *out = PullIfNotPresent - case "": - *out = "" - default: - // Let unknown values through - they will get caught by validation - *out = PullPolicy(*in) - } - return nil - }, - func(in *PullPolicy, out *api.PullPolicy, s conversion.Scope) error { - switch *in { - case PullAlways: - *out = api.PullAlways - case PullNever: - *out = api.PullNever - case PullIfNotPresent: - *out = api.PullIfNotPresent - case "": - *out = "" - default: - // Let unknown values through - they will get caught by validation - *out = api.PullPolicy(*in) - } - return nil - }, - - func(in *api.RestartPolicy, out *RestartPolicy, s conversion.Scope) error { - switch *in { - case api.RestartPolicyAlways: - *out = RestartPolicy{Always: &RestartPolicyAlways{}} - case api.RestartPolicyNever: - *out = RestartPolicy{Never: &RestartPolicyNever{}} - case api.RestartPolicyOnFailure: - *out = RestartPolicy{OnFailure: &RestartPolicyOnFailure{}} - default: - *out = RestartPolicy{} - } - return nil - }, - func(in *RestartPolicy, out *api.RestartPolicy, s conversion.Scope) error { - switch { - case in.Always != nil: - *out = api.RestartPolicyAlways - case in.Never != nil: - *out = api.RestartPolicyNever - case in.OnFailure != nil: - *out = api.RestartPolicyOnFailure - default: - *out = "" - } - return nil - }, - - func(in *api.Probe, out *LivenessProbe, s conversion.Scope) error { - if err := s.Convert(&in.Exec, &out.Exec, 0); err != nil { - return err - } - if err := s.Convert(&in.HTTPGet, &out.HTTPGet, 0); err != nil { - return err - } - if err := s.Convert(&in.TCPSocket, &out.TCPSocket, 0); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - return nil - }, - func(in *LivenessProbe, out *api.Probe, s conversion.Scope) error { - if err := s.Convert(&in.Exec, &out.Exec, 0); err != nil { - return err - } - if err := s.Convert(&in.HTTPGet, &out.HTTPGet, 0); err != nil { - return err - } - if err := s.Convert(&in.TCPSocket, &out.TCPSocket, 0); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - return nil - }, - - func(in *api.Endpoints, out *Endpoints, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Subsets, &out.Subsets, 0); err != nil { - return err - } - // Produce back-compat fields. - firstPortName := "" - if len(in.Subsets) > 0 { - if len(in.Subsets[0].Ports) > 0 { - if err := s.Convert(&in.Subsets[0].Ports[0].Protocol, &out.Protocol, 0); err != nil { - return err - } - firstPortName = in.Subsets[0].Ports[0].Name - } - } else { - out.Protocol = ProtocolTCP - } - for i := range in.Subsets { - ss := &in.Subsets[i] - for j := range ss.Ports { - ssp := &ss.Ports[j] - if ssp.Name != firstPortName { - continue - } - for k := range ss.Addresses { - ssa := &ss.Addresses[k] - hostPort := net.JoinHostPort(ssa.IP, strconv.Itoa(ssp.Port)) - out.Endpoints = append(out.Endpoints, hostPort) - if ssa.TargetRef != nil { - target := EndpointObjectReference{ - Endpoint: hostPort, - } - if err := s.Convert(ssa.TargetRef, &target.ObjectReference, 0); err != nil { - return err - } - out.TargetRefs = append(out.TargetRefs, target) - } - } - } - } - return nil - }, - func(in *Endpoints, out *api.Endpoints, s conversion.Scope) error { - if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil { - return err - } - if err := s.Convert(&in.Subsets, &out.Subsets, 0); err != nil { - return err - } - // Back-compat fields are handled in the defaulting phase. - return nil - }, - - func(in *api.NodeCondition, out *NodeCondition, s conversion.Scope) error { - if err := s.Convert(&in.Type, &out.Kind, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.LastHeartbeatTime, &out.LastProbeTime, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTransitionTime, &out.LastTransitionTime, 0); err != nil { - return err - } - if err := s.Convert(&in.Reason, &out.Reason, 0); err != nil { - return err - } - if err := s.Convert(&in.Message, &out.Message, 0); err != nil { - return err - } - return nil - }, - func(in *NodeCondition, out *api.NodeCondition, s conversion.Scope) error { - if err := s.Convert(&in.Kind, &out.Type, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - if err := s.Convert(&in.LastProbeTime, &out.LastHeartbeatTime, 0); err != nil { - return err - } - if err := s.Convert(&in.LastTransitionTime, &out.LastTransitionTime, 0); err != nil { - return err - } - if err := s.Convert(&in.Reason, &out.Reason, 0); err != nil { - return err - } - if err := s.Convert(&in.Message, &out.Message, 0); err != nil { - return err - } - return nil - }, - - func(in *api.NodeConditionType, out *NodeConditionKind, s conversion.Scope) error { - switch *in { - case api.NodeReady: - *out = NodeReady - break - case "": - *out = "" - default: - *out = NodeConditionKind(*in) - break - } - return nil - }, - func(in *NodeConditionKind, out *api.NodeConditionType, s conversion.Scope) error { - switch *in { - case NodeReady: - *out = api.NodeReady - break - case "": - *out = "" - default: - *out = api.NodeConditionType(*in) - break - } - return nil - }, - - func(in *api.ConditionStatus, out *ConditionStatus, s conversion.Scope) error { - switch *in { - case api.ConditionTrue: - *out = ConditionFull - break - case api.ConditionFalse: - *out = ConditionNone - break - default: - *out = ConditionStatus(*in) - break - } - return nil - }, - func(in *ConditionStatus, out *api.ConditionStatus, s conversion.Scope) error { - switch *in { - case ConditionFull: - *out = api.ConditionTrue - break - case ConditionNone: - *out = api.ConditionFalse - break - default: - *out = api.ConditionStatus(*in) - break - } - return nil - }, - - func(in *api.PodCondition, out *PodCondition, s conversion.Scope) error { - if err := s.Convert(&in.Type, &out.Kind, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - return nil - }, - func(in *PodCondition, out *api.PodCondition, s conversion.Scope) error { - if err := s.Convert(&in.Kind, &out.Type, 0); err != nil { - return err - } - if err := s.Convert(&in.Status, &out.Status, 0); err != nil { - return err - } - return nil - }, - - func(in *api.PodConditionType, out *PodConditionKind, s conversion.Scope) error { - switch *in { - case api.PodReady: - *out = PodReady - break - case "": - *out = "" - default: - *out = PodConditionKind(*in) - break - } - return nil - }, - func(in *PodConditionKind, out *api.PodConditionType, s conversion.Scope) error { - switch *in { - case PodReady: - *out = api.PodReady - break - case "": - *out = "" - default: - *out = api.PodConditionType(*in) - break - } - return nil - }, - - func(in *Binding, out *api.Binding, s conversion.Scope) error { - if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil { - return err - } - out.Target = api.ObjectReference{ - Name: in.Host, - } - out.Name = in.PodID - return nil - }, - func(in *api.Binding, out *Binding, s conversion.Scope) error { - if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil { - return err - } - out.Host = in.Target.Name - out.PodID = in.Name - return nil - }, - func(in *api.SecretVolumeSource, out *SecretVolumeSource, s conversion.Scope) error { - out.Target.ID = in.SecretName - return nil - }, - func(in *SecretVolumeSource, out *api.SecretVolumeSource, s conversion.Scope) error { - out.SecretName = in.Target.ID - return nil - }, - func(in *api.ContainerState, out *ContainerState, s conversion.Scope) error { - if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil { - return err - } - if err := s.Convert(&in.Running, &out.Running, 0); err != nil { - return err - } - if err := s.Convert(&in.Terminated, &out.Termination, 0); err != nil { - return err - } - return nil - }, - func(in *ContainerState, out *api.ContainerState, s conversion.Scope) error { - if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil { - return err - } - if err := s.Convert(&in.Running, &out.Running, 0); err != nil { - return err - } - if err := s.Convert(&in.Termination, &out.Terminated, 0); err != nil { - return err - } - return nil - }, - ) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - - // Add field conversion funcs. - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "Pod", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "DesiredState.Host": - return "spec.host", value, nil - case "DesiredState.Status": - podStatus := PodStatus(value) - var internalValue api.PodPhase - api.Scheme.Convert(&podStatus, &internalValue) - return "status.phase", string(internalValue), nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "Node", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "unschedulable": - return "spec.unschedulable", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // if one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "ReplicationController", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - case "currentState.replicas": - return "status.replicas", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "Event", - func(label, value string) (string, string, error) { - switch label { - case "involvedObject.kind", - "involvedObject.namespace", - "involvedObject.uid", - "involvedObject.apiVersion", - "involvedObject.resourceVersion", - "involvedObject.fieldPath", - "reason", - "source": - return label, value, nil - case "involvedObject.id": - return "involvedObject.name", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "Namespace", - func(label, value string) (string, string, error) { - switch label { - case "status.phase": - return label, value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "Secret", - func(label, value string) (string, string, error) { - switch label { - case "type": - return label, value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } - err = api.Scheme.AddFieldLabelConversionFunc("v1beta2", "ServiceAccount", - func(label, value string) (string, string, error) { - switch label { - case "name": - return "metadata.name", value, nil - default: - return "", "", fmt.Errorf("field label not supported: %s", label) - } - }) - if err != nil { - // If one of the conversion functions is malformed, detect it immediately. - panic(err) - } -} diff --git a/pkg/api/v1beta2/conversion_test.go b/pkg/api/v1beta2/conversion_test.go deleted file mode 100644 index a154546647e..00000000000 --- a/pkg/api/v1beta2/conversion_test.go +++ /dev/null @@ -1,626 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2_test - -import ( - "encoding/json" - "reflect" - "testing" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource" - versioned "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -func TestServiceEmptySelector(t *testing.T) { - // Nil map should be preserved - svc := &versioned.Service{Selector: nil} - data, err := api.Scheme.EncodeToVersion(svc, "v1beta2") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - obj, err := api.Scheme.Decode(data) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - selector := obj.(*api.Service).Spec.Selector - if selector != nil { - t.Errorf("unexpected selector: %#v", obj) - } - - // Empty map should be preserved - svc2 := &versioned.Service{Selector: map[string]string{}} - data, err = api.Scheme.EncodeToVersion(svc2, "v1beta2") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - obj, err = api.Scheme.Decode(data) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - selector = obj.(*api.Service).Spec.Selector - if selector == nil || len(selector) != 0 { - t.Errorf("unexpected selector: %#v", obj) - } -} - -func TestServicePorts(t *testing.T) { - testCases := []struct { - given versioned.Service - expected api.Service - roundtrip versioned.Service - }{ - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "legacy-with-defaults", - }, - Port: 111, - Protocol: versioned.ProtocolTCP, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Port: 111, - Protocol: api.ProtocolTCP, - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Port: 111, - Protocol: versioned.ProtocolTCP, - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "legacy-full", - }, - PortName: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolTCP, - TargetPort: util.NewIntOrStringFromString("p"), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "both", - }, - PortName: "p", - Port: 111, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromString("p"), - Ports: []versioned.ServicePort{{ - Name: "q", - Port: 222, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "q", - Port: 222, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "q", - Port: 222, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "one", - }, - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }}, - }, - }, - { - given: versioned.Service{ - TypeMeta: versioned.TypeMeta{ - ID: "two", - }, - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromInt(76), - }}, - }, - expected: api.Service{ - Spec: api.ServiceSpec{Ports: []api.ServicePort{{ - Name: "p", - Port: 111, - Protocol: api.ProtocolUDP, - TargetPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: api.ProtocolTCP, - TargetPort: util.NewIntOrStringFromInt(76), - }}}, - }, - roundtrip: versioned.Service{ - Ports: []versioned.ServicePort{{ - Name: "p", - Port: 111, - Protocol: versioned.ProtocolUDP, - ContainerPort: util.NewIntOrStringFromInt(93), - }, { - Name: "q", - Port: 222, - Protocol: versioned.ProtocolTCP, - ContainerPort: util.NewIntOrStringFromInt(76), - }}, - }, - }, - } - - for i, tc := range testCases { - // Convert versioned -> internal. - got := api.Service{} - if err := api.Scheme.Convert(&tc.given, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !reflect.DeepEqual(got.Spec.Ports, tc.expected.Spec.Ports) { - t.Errorf("[Case: %d] Expected %v, got %v", i, tc.expected.Spec.Ports, got.Spec.Ports) - } - - // Convert internal -> versioned. - got2 := versioned.Service{} - if err := api.Scheme.Convert(&got, &got2); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !reflect.DeepEqual(got2.Ports, tc.roundtrip.Ports) { - t.Errorf("[Case: %d] Expected %v, got %v", i, tc.roundtrip.Ports, got2.Ports) - } - } -} - -func TestNodeConversion(t *testing.T) { - version, kind, err := api.Scheme.ObjectVersionAndKind(&versioned.Minion{}) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if version != "v1beta2" || kind != "Minion" { - t.Errorf("unexpected version and kind: %s %s", version, kind) - } - - api.Scheme.Log(t) - obj, err := versioned.Codec.Decode([]byte(`{"kind":"Node","apiVersion":"v1beta2"}`)) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if _, ok := obj.(*api.Node); !ok { - t.Errorf("unexpected type: %#v", obj) - } - - obj, err = versioned.Codec.Decode([]byte(`{"kind":"NodeList","apiVersion":"v1beta2"}`)) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if _, ok := obj.(*api.NodeList); !ok { - t.Errorf("unexpected type: %#v", obj) - } - - obj = &api.Node{} - if err := versioned.Codec.DecodeInto([]byte(`{"kind":"Node","apiVersion":"v1beta2"}`), obj); err != nil { - t.Fatalf("unexpected error: %v", err) - } - - obj = &api.Node{} - data, err := versioned.Codec.Encode(obj) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - m := map[string]interface{}{} - if err := json.Unmarshal(data, &m); err != nil { - t.Fatalf("unexpected error: %v", err) - } - if m["kind"] != "Minion" { - t.Errorf("unexpected encoding: %s - %#v", m["kind"], string(data)) - } -} - -func TestPullPolicyConversion(t *testing.T) { - table := []struct { - versioned versioned.PullPolicy - internal api.PullPolicy - }{ - { - versioned: versioned.PullAlways, - internal: api.PullAlways, - }, { - versioned: versioned.PullNever, - internal: api.PullNever, - }, { - versioned: versioned.PullIfNotPresent, - internal: api.PullIfNotPresent, - }, { - versioned: "", - internal: "", - }, { - versioned: "invalid value", - internal: "invalid value", - }, - } - for _, item := range table { - var got api.PullPolicy - err := api.Scheme.Convert(&item.versioned, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.internal, got; e != a { - t.Errorf("Expected: %q, got %q", e, a) - } - } - for _, item := range table { - var got versioned.PullPolicy - err := api.Scheme.Convert(&item.internal, &got) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - if e, a := item.versioned, got; e != a { - t.Errorf("Expected: %q, got %q", e, a) - } - } -} - -func getResourceRequirements(cpu, memory resource.Quantity) versioned.ResourceRequirements { - res := versioned.ResourceRequirements{} - res.Limits = versioned.ResourceList{} - if cpu.Value() > 0 { - res.Limits[versioned.ResourceCPU] = util.NewIntOrStringFromInt(int(cpu.Value())) - } - if memory.Value() > 0 { - res.Limits[versioned.ResourceMemory] = util.NewIntOrStringFromInt(int(memory.Value())) - } - - return res -} - -func TestContainerConversion(t *testing.T) { - cpuLimit := resource.MustParse("10") - memoryLimit := resource.MustParse("10M") - null := resource.Quantity{} - testCases := []versioned.Container{ - { - Name: "container", - Resources: getResourceRequirements(cpuLimit, memoryLimit), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Resources: getResourceRequirements(null, memoryLimit), - }, - { - Name: "container", - Memory: memoryLimit.Value(), - Resources: getResourceRequirements(cpuLimit, null), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Memory: memoryLimit.Value(), - }, - { - Name: "container", - Memory: memoryLimit.Value(), - Resources: getResourceRequirements(cpuLimit, resource.MustParse("100M")), - }, - { - Name: "container", - CPU: int(cpuLimit.MilliValue()), - Resources: getResourceRequirements(resource.MustParse("500"), memoryLimit), - }, - } - - for i, tc := range testCases { - got := api.Container{} - if err := api.Scheme.Convert(&tc, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if cpu := got.Resources.Limits.Cpu(); cpu.Value() != cpuLimit.Value() { - t.Errorf("[Case: %d] Expected cpu: %v, got: %v", i, cpuLimit, *cpu) - } - if memory := got.Resources.Limits.Memory(); memory.Value() != memoryLimit.Value() { - t.Errorf("[Case: %d] Expected memory: %v, got: %v", i, memoryLimit, *memory) - } - } -} - -func TestEndpointsConversion(t *testing.T) { - testCases := []struct { - given versioned.Endpoints - expected api.Endpoints - }{ - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "empty", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "one legacy", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{"1.2.3.4:88"}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{{ - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolTCP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "several legacy", - }, - Protocol: versioned.ProtocolUDP, - Endpoints: []string{"1.2.3.4:88", "1.2.3.4:89", "1.2.3.4:90"}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{ - { - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 89, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 90, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }, - }}, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "one subset", - }, - Protocol: versioned.ProtocolTCP, - Endpoints: []string{"1.2.3.4:88"}, - Subsets: []versioned.EndpointSubset{{ - Ports: []versioned.EndpointPort{{Name: "", Port: 88, Protocol: versioned.ProtocolTCP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{{ - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolTCP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}}, - }}, - }, - }, - { - given: versioned.Endpoints{ - TypeMeta: versioned.TypeMeta{ - ID: "several subset", - }, - Protocol: versioned.ProtocolUDP, - Endpoints: []string{"1.2.3.4:88", "5.6.7.8:88", "1.2.3.4:89", "5.6.7.8:89"}, - Subsets: []versioned.EndpointSubset{ - { - Ports: []versioned.EndpointPort{{Name: "", Port: 88, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []versioned.EndpointPort{{Name: "", Port: 89, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []versioned.EndpointPort{{Name: "named", Port: 90, Protocol: versioned.ProtocolUDP}}, - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - }, - }, - expected: api.Endpoints{ - Subsets: []api.EndpointSubset{ - { - Ports: []api.EndpointPort{{Name: "", Port: 88, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []api.EndpointPort{{Name: "", Port: 89, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - { - Ports: []api.EndpointPort{{Name: "named", Port: 90, Protocol: api.ProtocolUDP}}, - Addresses: []api.EndpointAddress{{IP: "1.2.3.4"}, {IP: "5.6.7.8"}}, - }, - }}, - }, - } - - for i, tc := range testCases { - // Convert versioned -> internal. - got := api.Endpoints{} - if err := api.Scheme.Convert(&tc.given, &got); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if !api.Semantic.DeepEqual(got.Subsets, tc.expected.Subsets) { - t.Errorf("[Case: %d] Expected %#v, got %#v", i, tc.expected.Subsets, got.Subsets) - } - - // Convert internal -> versioned. - got2 := versioned.Endpoints{} - if err := api.Scheme.Convert(&got, &got2); err != nil { - t.Errorf("[Case: %d] Unexpected error: %v", i, err) - continue - } - if got2.Protocol != tc.given.Protocol || !api.Semantic.DeepEqual(got2.Endpoints, tc.given.Endpoints) { - t.Errorf("[Case: %d] Expected %#v, got %#v", i, tc.given.Endpoints, got2.Endpoints) - } - } -} - -func TestSecretVolumeSourceConversion(t *testing.T) { - given := versioned.SecretVolumeSource{ - Target: versioned.ObjectReference{ - ID: "foo", - }, - } - - expected := api.SecretVolumeSource{ - SecretName: "foo", - } - - got := api.SecretVolumeSource{} - if err := api.Scheme.Convert(&given, &got); err != nil { - t.Errorf("Unexpected error: %v", err) - } - if got.SecretName != expected.SecretName { - t.Errorf("Expected %v; got %v", expected, got) - } - - got2 := versioned.SecretVolumeSource{} - if err := api.Scheme.Convert(&got, &got2); err != nil { - t.Errorf("Unexpected error: %v", err) - } - if got2.Target.ID != given.Target.ID { - t.Errorf("Expected %v; got %v", given, got2) - } -} - -func TestBadSecurityContextConversion(t *testing.T) { - priv := false - testCases := map[string]struct { - c *versioned.Container - err string - }{ - // this use case must use true for the container and false for the sc. Otherwise the defaulter - // will assume privileged was left undefined (since it is the default value) and copy the - // sc setting upwards - "mismatched privileged": { - c: &versioned.Container{ - Privileged: true, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - }, - }, - err: "container privileged settings do not match security context settings, cannot convert", - }, - "mismatched caps add": { - c: &versioned.Container{ - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"bar"}, - }, - }, - }, - err: "container capability settings do not match security context settings, cannot convert", - }, - "mismatched caps drop": { - c: &versioned.Container{ - Capabilities: versioned.Capabilities{ - Drop: []versioned.Capability{"foo"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - err: "container capability settings do not match security context settings, cannot convert", - }, - } - - for k, v := range testCases { - got := api.Container{} - err := api.Scheme.Convert(v.c, &got) - if err == nil { - t.Errorf("expected error for case %s but got none", k) - } else { - if err.Error() != v.err { - t.Errorf("unexpected error for case %s. Expected: %s but got: %s", k, v.err, err.Error()) - } - } - } - -} diff --git a/pkg/api/v1beta2/defaults.go b/pkg/api/v1beta2/defaults.go deleted file mode 100644 index 461eb05b09e..00000000000 --- a/pkg/api/v1beta2/defaults.go +++ /dev/null @@ -1,243 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "net" - "strconv" - "strings" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" - "github.com/golang/glog" -) - -func addDefaultingFuncs() { - api.Scheme.AddDefaultingFuncs( - func(obj *ReplicationController) { - if len(obj.DesiredState.ReplicaSelector) == 0 { - obj.DesiredState.ReplicaSelector = obj.DesiredState.PodTemplate.Labels - } - if len(obj.Labels) == 0 { - obj.Labels = obj.DesiredState.PodTemplate.Labels - } - }, - func(obj *Volume) { - if util.AllPtrFieldsNil(&obj.Source) { - glog.Errorf("Defaulting volume source for %v", obj) - obj.Source = VolumeSource{ - EmptyDir: &EmptyDirVolumeSource{}, - } - } - }, - func(obj *ContainerPort) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - }, - func(obj *Container) { - if obj.ImagePullPolicy == "" { - // TODO(dchen1107): Move ParseImageName code to pkg/util - parts := strings.Split(obj.Image, ":") - // Check image tag - if parts[len(parts)-1] == "latest" { - obj.ImagePullPolicy = PullAlways - } else { - obj.ImagePullPolicy = PullIfNotPresent - } - } - if obj.TerminationMessagePath == "" { - obj.TerminationMessagePath = TerminationMessagePathDefault - } - defaultSecurityContext(obj) - }, - func(obj *RestartPolicy) { - if util.AllPtrFieldsNil(obj) { - obj.Always = &RestartPolicyAlways{} - } - }, - func(obj *Service) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if obj.SessionAffinity == "" { - obj.SessionAffinity = ServiceAffinityNone - } - if obj.Type == "" { - if obj.CreateExternalLoadBalancer { - obj.Type = ServiceTypeLoadBalancer - } else { - obj.Type = ServiceTypeClusterIP - } - } else if obj.Type == ServiceTypeLoadBalancer { - obj.CreateExternalLoadBalancer = true - } - 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) { - if obj.DNSPolicy == "" { - obj.DNSPolicy = DNSClusterFirst - } - if obj.HostNetwork { - defaultHostNetworkPorts(&obj.Containers) - } - }, - func(obj *ContainerManifest) { - if obj.DNSPolicy == "" { - obj.DNSPolicy = DNSClusterFirst - } - if obj.HostNetwork { - defaultHostNetworkPorts(&obj.Containers) - } - }, - func(obj *LivenessProbe) { - if obj.TimeoutSeconds == 0 { - obj.TimeoutSeconds = 1 - } - }, - func(obj *Secret) { - if obj.Type == "" { - obj.Type = SecretTypeOpaque - } - }, - func(obj *PersistentVolume) { - if obj.Status.Phase == "" { - obj.Status.Phase = VolumePending - } - }, - func(obj *PersistentVolumeClaim) { - if obj.Status.Phase == "" { - obj.Status.Phase = ClaimPending - } - }, - func(obj *Endpoints) { - if obj.Protocol == "" { - obj.Protocol = ProtocolTCP - } - if len(obj.Subsets) == 0 && len(obj.Endpoints) > 0 { - // Must be a legacy-style object - populate - // Subsets from the older fields. Do this the - // simplest way, which is dumb (but valid). - for i := range obj.Endpoints { - host, portStr, err := net.SplitHostPort(obj.Endpoints[i]) - if err != nil { - glog.Errorf("failed to SplitHostPort(%q)", obj.Endpoints[i]) - } - var tgtRef *ObjectReference - for j := range obj.TargetRefs { - if obj.TargetRefs[j].Endpoint == obj.Endpoints[i] { - tgtRef = &ObjectReference{} - *tgtRef = obj.TargetRefs[j].ObjectReference - } - } - port, err := strconv.Atoi(portStr) - if err != nil { - glog.Errorf("failed to Atoi(%q)", portStr) - } - obj.Subsets = append(obj.Subsets, EndpointSubset{ - Addresses: []EndpointAddress{{IP: host, TargetRef: tgtRef}}, - Ports: []EndpointPort{{Protocol: obj.Protocol, Port: port}}, - }) - } - } - for i := range obj.Subsets { - ss := &obj.Subsets[i] - for i := range ss.Ports { - ep := &ss.Ports[i] - if ep.Protocol == "" { - ep.Protocol = ProtocolTCP - } - } - } - }, - func(obj *HTTPGetAction) { - if obj.Path == "" { - obj.Path = "/" - } - }, - func(obj *NamespaceStatus) { - if obj.Phase == "" { - obj.Phase = NamespaceActive - } - }, - func(obj *Minion) { - if obj.ExternalID == "" { - obj.ExternalID = obj.ID - } - }, - func(obj *ObjectFieldSelector) { - if obj.APIVersion == "" { - obj.APIVersion = "v1beta2" - } - }, - ) -} - -// With host networking default all container ports to host ports. -func defaultHostNetworkPorts(containers *[]Container) { - for i := range *containers { - for j := range (*containers)[i].Ports { - if (*containers)[i].Ports[j].HostPort == 0 { - (*containers)[i].Ports[j].HostPort = (*containers)[i].Ports[j].ContainerPort - } - } - } -} - -// defaultSecurityContext performs the downward and upward merges of a pod definition -func defaultSecurityContext(container *Container) { - if container.SecurityContext == nil { - glog.V(5).Infof("creating security context for container %s", container.Name) - container.SecurityContext = &SecurityContext{} - } - // if there are no capabilities defined on the SecurityContext then copy the container settings - if container.SecurityContext.Capabilities == nil { - container.SecurityContext.Capabilities = &container.Capabilities - } else { - // if there are capabilities defined on the security context and the container setting is - // empty then assume that it was left off the pod definition and ensure that the container - // settings match the security context settings (checked by the convert functions). If - // there are settings in both then don't touch it, the converter will error if they don't - // match - if len(container.Capabilities.Add) == 0 { - container.Capabilities.Add = container.SecurityContext.Capabilities.Add - } - if len(container.Capabilities.Drop) == 0 { - container.Capabilities.Drop = container.SecurityContext.Capabilities.Drop - } - } - // if there are no privileged settings on the security context then copy the container settings - if container.SecurityContext.Privileged == nil { - container.SecurityContext.Privileged = &container.Privileged - } else { - // we don't have a good way to know if container.Privileged was set or just defaulted to false - // so the best we can do here is check if the securityContext is set to true and the - // container is set to false and assume that the Privileged field was left off the container - // definition and not an intentional mismatch - if *container.SecurityContext.Privileged && !container.Privileged { - container.Privileged = *container.SecurityContext.Privileged - } - } -} diff --git a/pkg/api/v1beta2/defaults_test.go b/pkg/api/v1beta2/defaults_test.go deleted file mode 100644 index aaf70963e54..00000000000 --- a/pkg/api/v1beta2/defaults_test.go +++ /dev/null @@ -1,460 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2_test - -import ( - "reflect" - "testing" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - versioned "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := versioned.Codec.Encode(obj) - if err != nil { - t.Errorf("%v\n %#v", err, obj) - return nil - } - obj2, err := api.Codec.Decode(data) - if err != nil { - t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) - return nil - } - obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3) - if err != nil { - t.Errorf("%v\nSource: %#v", err, obj2) - return nil - } - return obj3 -} - -func TestSetDefaultReplicationController(t *testing.T) { - tests := []struct { - rc *versioned.ReplicationController - expectLabels bool - expectSelector bool - }{ - { - rc: &versioned.ReplicationController{ - DesiredState: versioned.ReplicationControllerState{ - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: true, - expectSelector: true, - }, - { - rc: &versioned.ReplicationController{ - Labels: map[string]string{ - "bar": "foo", - }, - DesiredState: versioned.ReplicationControllerState{ - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: false, - expectSelector: true, - }, - { - rc: &versioned.ReplicationController{ - Labels: map[string]string{ - "bar": "foo", - }, - DesiredState: versioned.ReplicationControllerState{ - ReplicaSelector: map[string]string{ - "some": "other", - }, - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: false, - expectSelector: false, - }, - { - rc: &versioned.ReplicationController{ - DesiredState: versioned.ReplicationControllerState{ - ReplicaSelector: map[string]string{ - "some": "other", - }, - PodTemplate: versioned.PodTemplate{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - expectLabels: true, - expectSelector: false, - }, - } - for _, test := range tests { - rc := test.rc - obj2 := roundTrip(t, runtime.Object(rc)) - rc2, ok := obj2.(*versioned.ReplicationController) - if !ok { - t.Errorf("unexpected object: %v", rc2) - t.FailNow() - } - if test.expectSelector != reflect.DeepEqual(rc2.DesiredState.ReplicaSelector, rc2.DesiredState.PodTemplate.Labels) { - if test.expectSelector { - t.Errorf("expected: %v, got: %v", rc2.DesiredState.PodTemplate.Labels, rc2.DesiredState.ReplicaSelector) - } else { - t.Errorf("unexpected equality: %v", rc2.DesiredState.PodTemplate.Labels) - } - } - if test.expectLabels != reflect.DeepEqual(rc2.Labels, rc2.DesiredState.PodTemplate.Labels) { - if test.expectLabels { - t.Errorf("expected: %v, got: %v", rc2.DesiredState.PodTemplate.Labels, rc2.Labels) - } else { - t.Errorf("unexpected equality: %v", rc2.DesiredState.PodTemplate.Labels) - } - } - } -} - -func TestSetDefaultService(t *testing.T) { - svc := &versioned.Service{} - obj2 := roundTrip(t, runtime.Object(svc)) - svc2 := obj2.(*versioned.Service) - if svc2.Protocol != versioned.ProtocolTCP { - t.Errorf("Expected default protocol :%s, got: %s", versioned.ProtocolTCP, svc2.Protocol) - } - if svc2.SessionAffinity != versioned.ServiceAffinityNone { - t.Errorf("Expected default session affinity type:%s, got: %s", versioned.ServiceAffinityNone, svc2.SessionAffinity) - } - if svc2.Type != versioned.ServiceTypeClusterIP { - t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeClusterIP, svc2.Type) - } -} - -func TestSetDefaultServiceWithLoadbalancer(t *testing.T) { - svc := &versioned.Service{} - svc.CreateExternalLoadBalancer = true - obj2 := roundTrip(t, runtime.Object(svc)) - svc2 := obj2.(*versioned.Service) - if svc2.Type != versioned.ServiceTypeLoadBalancer { - t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeLoadBalancer, svc2.Type) - } -} - -func TestSetDefaultPersistentVolume(t *testing.T) { - pv := &versioned.PersistentVolume{} - obj2 := roundTrip(t, runtime.Object(pv)) - pv2 := obj2.(*versioned.PersistentVolume) - - if pv2.Status.Phase != versioned.VolumePending { - t.Errorf("Expected volume phase %v, got %v", versioned.VolumePending, pv2.Status.Phase) - } -} - -func TestSetDefaultPersistentVolumeClaim(t *testing.T) { - pvc := &versioned.PersistentVolumeClaim{} - obj2 := roundTrip(t, runtime.Object(pvc)) - pvc2 := obj2.(*versioned.PersistentVolumeClaim) - - if pvc2.Status.Phase != versioned.ClaimPending { - t.Errorf("Expected claim phase %v, got %v", versioned.ClaimPending, pvc2.Status.Phase) - } -} - -func TestSetDefaultSecret(t *testing.T) { - s := &versioned.Secret{} - obj2 := roundTrip(t, runtime.Object(s)) - s2 := obj2.(*versioned.Secret) - - if s2.Type != versioned.SecretTypeOpaque { - t.Errorf("Expected secret type %v, got %v", versioned.SecretTypeOpaque, s2.Type) - } -} - -func TestSetDefaulEndpointsLegacy(t *testing.T) { - in := &versioned.Endpoints{ - Protocol: "UDP", - Endpoints: []string{"1.2.3.4:93", "5.6.7.8:76"}, - TargetRefs: []versioned.EndpointObjectReference{{Endpoint: "1.2.3.4:93", ObjectReference: versioned.ObjectReference{ID: "foo"}}}, - } - obj := roundTrip(t, runtime.Object(in)) - out := obj.(*versioned.Endpoints) - - if len(out.Subsets) != 2 { - t.Errorf("Expected 2 EndpointSubsets, got %d (%#v)", len(out.Subsets), out.Subsets) - } - expected := []versioned.EndpointSubset{ - { - Addresses: []versioned.EndpointAddress{{IP: "1.2.3.4", TargetRef: &versioned.ObjectReference{ID: "foo"}}}, - Ports: []versioned.EndpointPort{{Protocol: versioned.ProtocolUDP, Port: 93}}, - }, - { - Addresses: []versioned.EndpointAddress{{IP: "5.6.7.8"}}, - Ports: []versioned.EndpointPort{{Protocol: versioned.ProtocolUDP, Port: 76}}, - }, - } - if !reflect.DeepEqual(out.Subsets, expected) { - t.Errorf("Expected %#v, got %#v", expected, out.Subsets) - } -} - -func TestSetDefaulEndpointsProtocol(t *testing.T) { - in := &versioned.Endpoints{Subsets: []versioned.EndpointSubset{ - {Ports: []versioned.EndpointPort{{}, {Protocol: "UDP"}, {}}}, - }} - obj := roundTrip(t, runtime.Object(in)) - out := obj.(*versioned.Endpoints) - - if out.Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Protocol) - } - for i := range out.Subsets { - for j := range out.Subsets[i].Ports { - if in.Subsets[i].Ports[j].Protocol == "" { - if out.Subsets[i].Ports[j].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Subsets[i].Ports[j].Protocol) - } - } else { - if out.Subsets[i].Ports[j].Protocol != in.Subsets[i].Ports[j].Protocol { - t.Errorf("Expected protocol %s, got %s", in.Subsets[i].Ports[j].Protocol, out.Subsets[i].Ports[j].Protocol) - } - } - } - } -} - -func TestSetDefaultNamespace(t *testing.T) { - s := &versioned.Namespace{} - obj2 := roundTrip(t, runtime.Object(s)) - s2 := obj2.(*versioned.Namespace) - - if s2.Status.Phase != versioned.NamespaceActive { - t.Errorf("Expected phase %v, got %v", versioned.NamespaceActive, s2.Status.Phase) - } -} - -func TestSetDefaultContainerManifestHostNetwork(t *testing.T) { - portNum := 8080 - s := versioned.ContainerManifest{} - s.HostNetwork = true - s.Containers = []versioned.Container{ - { - Ports: []versioned.ContainerPort{ - { - ContainerPort: portNum, - }, - }, - }, - } - obj2 := roundTrip(t, runtime.Object(&versioned.ContainerManifestList{ - Items: []versioned.ContainerManifest{s}, - })) - sList2 := obj2.(*versioned.ContainerManifestList) - s2 := sList2.Items[0] - - hostPortNum := s2.Containers[0].Ports[0].HostPort - if hostPortNum != portNum { - t.Errorf("Expected container port to be defaulted, was made %d instead of %d", hostPortNum, portNum) - } -} - -func TestSetDefaultServicePort(t *testing.T) { - // Unchanged if set. - in := &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "UDP", Port: 9376, ContainerPort: util.NewIntOrStringFromInt(118)}}} - out := roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolUDP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != in.Ports[0].ContainerPort { - t.Errorf("Expected port %d, got %d", in.Ports[0].ContainerPort, out.Ports[0].ContainerPort) - } - - // Defaulted. - in = &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "", Port: 9376, ContainerPort: util.NewIntOrStringFromInt(0)}}} - out = roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != util.NewIntOrStringFromInt(in.Ports[0].Port) { - t.Errorf("Expected port %d, got %v", in.Ports[0].Port, out.Ports[0].ContainerPort) - } - - // Defaulted. - in = &versioned.Service{Ports: []versioned.ServicePort{{Protocol: "", Port: 9376, ContainerPort: util.NewIntOrStringFromString("")}}} - out = roundTrip(t, runtime.Object(in)).(*versioned.Service) - if out.Ports[0].Protocol != versioned.ProtocolTCP { - t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Ports[0].Protocol) - } - if out.Ports[0].ContainerPort != util.NewIntOrStringFromInt(in.Ports[0].Port) { - t.Errorf("Expected port %d, got %v", in.Ports[0].Port, out.Ports[0].ContainerPort) - } -} - -func TestSetDefaultMinionExternalID(t *testing.T) { - name := "node0" - m := &versioned.Minion{} - m.ID = name - obj2 := roundTrip(t, runtime.Object(m)) - m2 := obj2.(*versioned.Minion) - if m2.ExternalID != name { - t.Errorf("Expected default External ID: %s, got: %s", name, m2.ExternalID) - } - if m2.ProviderID != "" { - t.Errorf("Expected empty default Cloud Provider ID, got: %s", m2.ProviderID) - } -} - -func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) { - s := versioned.ContainerManifest{ - Containers: []versioned.Container{ - { - Env: []versioned.EnvVar{ - { - ValueFrom: &versioned.EnvVarSource{ - FieldRef: &versioned.ObjectFieldSelector{}, - }, - }, - }, - }, - }, - } - obj2 := roundTrip(t, runtime.Object(&versioned.ContainerManifestList{ - Items: []versioned.ContainerManifest{s}, - })) - sList2 := obj2.(*versioned.ContainerManifestList) - s2 := sList2.Items[0] - - apiVersion := s2.Containers[0].Env[0].ValueFrom.FieldRef.APIVersion - if apiVersion != "v1beta2" { - t.Errorf("Expected default APIVersion v1beta2, got: %v", apiVersion) - } -} - -func TestSetDefaultSecurityContext(t *testing.T) { - priv := false - privTrue := true - testCases := map[string]struct { - c versioned.Container - }{ - "downward defaulting caps": { - c: versioned.Container{ - Privileged: false, - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - }, - }, - }, - "downward defaulting priv": { - c: versioned.Container{ - Privileged: false, - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - }, - "upward defaulting caps": { - c: versioned.Container{ - Privileged: false, - SecurityContext: &versioned.SecurityContext{ - Privileged: &priv, - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"biz"}, - Drop: []versioned.Capability{"baz"}, - }, - }, - }, - }, - "upward defaulting priv": { - c: versioned.Container{ - Capabilities: versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - SecurityContext: &versioned.SecurityContext{ - Privileged: &privTrue, - Capabilities: &versioned.Capabilities{ - Add: []versioned.Capability{"foo"}, - Drop: []versioned.Capability{"bar"}, - }, - }, - }, - }, - } - - pod := &versioned.Pod{ - DesiredState: versioned.PodState{ - Manifest: versioned.ContainerManifest{}, - }, - } - - for k, v := range testCases { - pod.DesiredState.Manifest.Containers = []versioned.Container{v.c} - obj := roundTrip(t, runtime.Object(pod)) - defaultedPod := obj.(*versioned.Pod) - c := defaultedPod.DesiredState.Manifest.Containers[0] - if isEqual, issues := areSecurityContextAndContainerEqual(&c); !isEqual { - t.Errorf("test case %s expected the security context to have the same values as the container but found %#v", k, issues) - } - } -} - -func areSecurityContextAndContainerEqual(c *versioned.Container) (bool, []string) { - issues := make([]string, 0) - equal := true - - if c.SecurityContext == nil || c.SecurityContext.Privileged == nil || c.SecurityContext.Capabilities == nil { - equal = false - issues = append(issues, "Expected non nil settings for SecurityContext") - return equal, issues - } - if *c.SecurityContext.Privileged != c.Privileged { - equal = false - issues = append(issues, "The defaulted SecurityContext.Privileged value did not match the container value") - } - if !reflect.DeepEqual(c.Capabilities.Add, c.Capabilities.Add) { - equal = false - issues = append(issues, "The defaulted SecurityContext.Capabilities.Add did not match the container settings") - } - if !reflect.DeepEqual(c.Capabilities.Drop, c.Capabilities.Drop) { - equal = false - issues = append(issues, "The defaulted SecurityContext.Capabilities.Drop did not match the container settings") - } - return equal, issues -} diff --git a/pkg/api/v1beta2/doc.go b/pkg/api/v1beta2/doc.go deleted file mode 100644 index 441663458b2..00000000000 --- a/pkg/api/v1beta2/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta2 is the v1beta2 version of the API. -package v1beta2 diff --git a/pkg/api/v1beta2/register.go b/pkg/api/v1beta2/register.go deleted file mode 100644 index 595a1fb14f9..00000000000 --- a/pkg/api/v1beta2/register.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "github.com/GoogleCloudPlatform/kubernetes/pkg/api" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/registered" - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" -) - -// Codec encodes internal objects to the v1beta2 scheme -var Codec = runtime.CodecFor(api.Scheme, "v1beta2") - -// Dependency does nothing but give a hook for other packages to force a -// compile-time error when this API version is eventually removed. This is -// useful, for example, to clean up things that are implicitly tied to -// semantics of older APIs. -const Dependency = true - -func init() { - // Check if v1beta2 is in the list of supported API versions. - if !registered.IsRegisteredAPIVersion("v1beta2") { - return - } - - // Register the API. - addKnownTypes() - addConversionFuncs() - addDefaultingFuncs() -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes() { - api.Scheme.AddKnownTypes("v1beta2", - &Pod{}, - &PodStatusResult{}, - &PodList{}, - &ReplicationController{}, - &ReplicationControllerList{}, - &Service{}, - &ServiceList{}, - &Endpoints{}, - &EndpointsList{}, - &Minion{}, - &NodeInfo{}, - &MinionList{}, - &Binding{}, - &Status{}, - &Event{}, - &EventList{}, - &ContainerManifest{}, - &ContainerManifestList{}, - &List{}, - &LimitRange{}, - &LimitRangeList{}, - &ResourceQuota{}, - &ResourceQuotaList{}, - &Namespace{}, - &NamespaceList{}, - &Secret{}, - &SecretList{}, - &ServiceAccount{}, - &ServiceAccountList{}, - &PersistentVolume{}, - &PersistentVolumeList{}, - &PersistentVolumeClaim{}, - &PersistentVolumeClaimList{}, - &DeleteOptions{}, - &ListOptions{}, - &PodLogOptions{}, - &PodExecOptions{}, - &PodProxyOptions{}, - &ComponentStatus{}, - &ComponentStatusList{}, - &SerializedReference{}, - &RangeAllocation{}, - ) - // Future names are supported - api.Scheme.AddKnownTypeWithName("v1beta2", "Node", &Minion{}) - api.Scheme.AddKnownTypeWithName("v1beta2", "NodeList", &MinionList{}) -} - -func (*Pod) IsAnAPIObject() {} -func (*PodStatusResult) IsAnAPIObject() {} -func (*PodList) IsAnAPIObject() {} -func (*ReplicationController) IsAnAPIObject() {} -func (*ReplicationControllerList) IsAnAPIObject() {} -func (*Service) IsAnAPIObject() {} -func (*ServiceList) IsAnAPIObject() {} -func (*Endpoints) IsAnAPIObject() {} -func (*EndpointsList) IsAnAPIObject() {} -func (*Minion) IsAnAPIObject() {} -func (*NodeInfo) IsAnAPIObject() {} -func (*MinionList) IsAnAPIObject() {} -func (*Binding) IsAnAPIObject() {} -func (*Status) IsAnAPIObject() {} -func (*Event) IsAnAPIObject() {} -func (*EventList) IsAnAPIObject() {} -func (*ContainerManifest) IsAnAPIObject() {} -func (*ContainerManifestList) IsAnAPIObject() {} -func (*List) IsAnAPIObject() {} -func (*LimitRange) IsAnAPIObject() {} -func (*LimitRangeList) IsAnAPIObject() {} -func (*ResourceQuota) IsAnAPIObject() {} -func (*ResourceQuotaList) IsAnAPIObject() {} -func (*Namespace) IsAnAPIObject() {} -func (*NamespaceList) IsAnAPIObject() {} -func (*Secret) IsAnAPIObject() {} -func (*SecretList) IsAnAPIObject() {} -func (*ServiceAccount) IsAnAPIObject() {} -func (*ServiceAccountList) IsAnAPIObject() {} -func (*PersistentVolume) IsAnAPIObject() {} -func (*PersistentVolumeList) IsAnAPIObject() {} -func (*PersistentVolumeClaim) IsAnAPIObject() {} -func (*PersistentVolumeClaimList) IsAnAPIObject() {} -func (*DeleteOptions) IsAnAPIObject() {} -func (*ListOptions) IsAnAPIObject() {} -func (*PodLogOptions) IsAnAPIObject() {} -func (*PodExecOptions) IsAnAPIObject() {} -func (*PodProxyOptions) IsAnAPIObject() {} -func (*ComponentStatus) IsAnAPIObject() {} -func (*ComponentStatusList) IsAnAPIObject() {} -func (*SerializedReference) IsAnAPIObject() {} -func (*RangeAllocation) IsAnAPIObject() {} diff --git a/pkg/api/v1beta2/types.go b/pkg/api/v1beta2/types.go deleted file mode 100644 index 1bef33e39ab..00000000000 --- a/pkg/api/v1beta2/types.go +++ /dev/null @@ -1,1939 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" - "github.com/GoogleCloudPlatform/kubernetes/pkg/types" - "github.com/GoogleCloudPlatform/kubernetes/pkg/util" -) - -// Common string formats -// --------------------- -// Many fields in this API have formatting requirements. The commonly used -// formats are defined here. -// -// C_IDENTIFIER: This is a string that conforms to the definition of an "identifier" -// in the C language. This is captured by the following regex: -// [A-Za-z_][A-Za-z0-9_]* -// This defines the format, but not the length restriction, which should be -// specified at the definition of any field of this type. -// -// DNS_LABEL: This is a string, no more than 63 characters long, that conforms -// to the definition of a "label" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])? -// -// DNS_SUBDOMAIN: This is a string, no more than 253 characters long, that conforms -// to the definition of a "subdomain" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* -// or more simply: -// DNS_LABEL(\.DNS_LABEL)* - -// Volume represents a named volume in a pod that may be accessed by any containers in the pod. -// -// http://docs.k8s.io/volumes.md -type Volume struct { - // Required: This must be a DNS_LABEL. Each volume in a pod must have - // a unique name. - Name string `json:"name" description:"volume name; must be a DNS_LABEL and unique within the pod"` - // Source represents the location and type of a volume to mount. - // This is optional for now. If not specified, the Volume is implied to be an EmptyDir. - // This implied behavior is deprecated and will be removed in a future version. - Source VolumeSource `json:"source,omitempty" description:"location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, AWSElasticBlockStore, or GitRepo; default is EmptyDir"` -} - -// VolumeSource represents the source location of a volume to mount. -// Only one of its members may be specified. -type VolumeSource struct { - // HostDir represents a pre-existing directory on the host machine that is directly - // exposed to the container. This is generally used for system agents or other privileged - // things that are allowed to see the host machine. Most containers will NOT need this. - // TODO(jonesdl) We need to restrict who can use host directory mounts and - // who can/can not mount host directories as read/write. - HostDir *HostPathVolumeSource `json:"hostDir,omitempty" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` - // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDirVolumeSource `json:"emptyDir,omitempty" description:"temporary directory that shares a pod's lifetime"` - // A persistent disk that is mounted to the - // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk,omitempty" description:"GCE disk resource attached to the host machine on demand"` - // An AWS persistent disk that is mounted to the - // kubelet's host machine and then exposed to the pod. - AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty" description:"AWS disk resource attached to the host machine on demand"` - // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepoVolumeSource `json:"gitRepo,omitempty" description:"git repository at a particular revision"` - // Secret is a secret to populate the volume with - Secret *SecretVolumeSource `json:"secret,omitempty" description:"secret to populate volume"` - // NFS represents an NFS mount on the host that shares a pod's lifetime - NFS *NFSVolumeSource `json:"nfs,omitempty" description:"NFS volume that will be mounted in the host machine"` - // ISCSI represents an ISCSI Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - ISCSI *ISCSIVolumeSource `json:"iscsi,omitempty" description:"iSCSI disk attached to host machine on demand"` - // Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime - Glusterfs *GlusterfsVolumeSource `json:"glusterfs,omitempty" description:"Glusterfs volume that will be mounted on the host machine "` - // PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace - PersistentVolumeClaimVolumeSource *PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty" description:"a reference to a PersistentVolumeClaim in the same namespace"` - // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime - RBD *RBDVolumeSource `json:"rbd,omitempty" description:"rados block volume that will be mounted on the host machine"` -} - -// Similar to VolumeSource but meant for the administrator who creates PVs. -// Exactly one of its members must be set. -type PersistentVolumeSource struct { - // GCEPersistentDisk represents a GCE Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk,omitempty" description:"GCE disk resource provisioned by an admin"` - // AWSElasticBlockStore represents an AWS Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty" description:"AWS disk resource provisioned by an admin"` - // HostPath represents a directory on the host. - // This is useful for development and testing only. - // on-host storage is not supported in any way. - HostPath *HostPathVolumeSource `json:"hostPath,omitempty" description:"a HostPath provisioned by a developer or tester; for develment use only"` - // Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod - Glusterfs *GlusterfsVolumeSource `json:"glusterfs,omitempty" description:"Glusterfs volume resource provisioned by an admin"` - // NFS represents an NFS mount on the host - NFS *NFSVolumeSource `json:"nfs,omitempty" description:"NFS volume resource provisioned by an admin"` - // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime - RBD *RBDVolumeSource `json:"rbd,omitempty" description:"rados block volume that will be mounted on the host machine"` - // ISCSI represents an ISCSI Disk resource that is attached to a - // kubelet's host machine and then exposed to the pod. - ISCSI *ISCSIVolumeSource `json:"iscsi,omitempty" description:"an iSCSI disk resource provisioned by an admin"` -} - -type PersistentVolumeClaimVolumeSource struct { - // ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume - ClaimName string `json:"claimName" description:"the name of the claim in the same namespace to be mounted as a volume"` - // Optional: Defaults to false (read/write). ReadOnly here - // will force the ReadOnly setting in VolumeMounts - ReadOnly bool `json:"readOnly,omitempty" description:"mount volume as read-only when true; default false"` -} - -type PersistentVolume struct { - TypeMeta `json:",inline"` - - //Spec defines a persistent volume owned by the cluster - Spec PersistentVolumeSpec `json:"spec,omitempty" description:"specification of a persistent volume as provisioned by an administrator"` - - // Status represents the current information about persistent volume. - Status PersistentVolumeStatus `json:"status,omitempty" description:"current status of a persistent volume; populated by the system, read-only"` -} - -type PersistentVolumeSpec struct { - // Resources represents the actual resources of the volume - Capacity ResourceList `json:"capacity,omitempty" description:"a description of the persistent volume's resources and capacity"` - // Source represents the location and type of a volume to mount. - PersistentVolumeSource `json:",inline" description:"the actual volume backing the persistent volume"` - // AccessModes contains all ways the volume can be mounted - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"all ways the volume can be mounted"` - // ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. - // ClaimRef is expected to be non-nil when bound. - // claim.VolumeName is the authoritative bind between PV and PVC. - ClaimRef *ObjectReference `json:"claimRef,omitempty" description:"when bound, a reference to the bound claim"` -} - -type PersistentVolumeStatus struct { - // Phase indicates if a volume is available, bound to a claim, or released by a claim - Phase PersistentVolumePhase `json:"phase,omitempty" description:"the current phase of a persistent volume"` -} - -type PersistentVolumeList struct { - TypeMeta `json:",inline"` - Items []PersistentVolume `json:"items,omitempty" description:"list of persistent volumes"` -} - -// PersistentVolumeClaim is a user's request for and claim to a persistent volume -type PersistentVolumeClaim struct { - TypeMeta `json:",inline"` - - // Spec defines the volume requested by a pod author - Spec PersistentVolumeClaimSpec `json:"spec,omitempty" description:"the desired characteristics of a volume"` - - // Status represents the current information about a claim - Status PersistentVolumeClaimStatus `json:"status,omitempty" description:"the current status of a persistent volume claim; read-only"` -} - -type PersistentVolumeClaimList struct { - TypeMeta `json:",inline"` - Items []PersistentVolumeClaim `json:"items,omitempty" description:"a list of persistent volume claims"` -} - -// PersistentVolumeClaimSpec describes the common attributes of storage devices -// and allows a Source for provider-specific attributes -type PersistentVolumeClaimSpec struct { - // Contains the types of access modes required - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"the desired access modes the volume should have"` - // Resources represents the minimum resources required - Resources ResourceRequirements `json:"resources,omitempty" description:"the desired resources the volume should have"` - // VolumeName is the binding reference to the PersistentVolume backing this claim - VolumeName string `json:"volumeName,omitempty" description:"the binding reference to the persistent volume backing this claim"` -} - -type PersistentVolumeClaimStatus struct { - // Phase represents the current phase of PersistentVolumeClaim - Phase PersistentVolumeClaimPhase `json:"phase,omitempty" description:"the current phase of the claim"` - // AccessModes contains all ways the volume backing the PVC can be mounted - AccessModes []PersistentVolumeAccessMode `json:"accessModes,omitempty" description:"the actual access modes the volume has"` - // Represents the actual resources of the underlying volume - Capacity ResourceList `json:"capacity,omitempty" description:"the actual resources the volume has"` -} - -type PersistentVolumeAccessMode string - -const ( - // can be mounted read/write mode to exactly 1 host - ReadWriteOnce PersistentVolumeAccessMode = "ReadWriteOnce" - // can be mounted in read-only mode to many hosts - ReadOnlyMany PersistentVolumeAccessMode = "ReadOnlyMany" - // can be mounted in read/write mode to many hosts - ReadWriteMany PersistentVolumeAccessMode = "ReadWriteMany" -) - -type PersistentVolumePhase string - -const ( - // used for PersistentVolumes that are not available - VolumePending PersistentVolumePhase = "Pending" - // used for PersistentVolumes that are not yet bound - VolumeAvailable PersistentVolumePhase = "Available" - // used for PersistentVolumes that are bound - VolumeBound PersistentVolumePhase = "Bound" - // used for PersistentVolumes where the bound PersistentVolumeClaim was deleted - // released volumes must be recycled before becoming available again - VolumeReleased PersistentVolumePhase = "Released" -) - -type PersistentVolumeClaimPhase string - -const ( - // used for PersistentVolumeClaims that are not yet bound - ClaimPending PersistentVolumeClaimPhase = "Pending" - // used for PersistentVolumeClaims that are bound - ClaimBound PersistentVolumeClaimPhase = "Bound" -) - -// HostPathVolumeSource represents bare host directory volume. -// -// http://docs.k8s.io/volumes.md#hostdir -type HostPathVolumeSource struct { - Path string `json:"path" description:"path of the directory on the host"` -} - -// Represents an empty directory volume. -// -// http://docs.k8s.io/volumes.md#emptydir -type EmptyDirVolumeSource struct { - // Optional: what type of storage medium should back this directory. - // The default is "" which means to use the node's default medium. - Medium StorageMedium `json:"medium" description:"type of storage used to back the volume; must be an empty string (default) or Memory"` -} - -// StorageMedium defines ways that storage can be allocated to a volume. -type StorageMedium string - -const ( - StorageMediumDefault StorageMedium = "" // use whatever the default is for the node - StorageMediumMemory StorageMedium = "Memory" // use memory (tmpfs) -) - -// SecretVolumeSource adapts a Secret into a VolumeSource -// -// http://docs.k8s.io/design/secrets.md -type SecretVolumeSource struct { - // Reference to a Secret to use. Only the ID field of this reference is used; a - // secret can only be used by pods in its namespace. - Target ObjectReference `json:"target" description:"target is a reference to a secret"` -} - -// Protocol defines network protocols supported for things like conatiner ports. -type Protocol string - -const ( - // ProtocolTCP is the TCP protocol. - ProtocolTCP Protocol = "TCP" - // ProtocolUDP is the UDP protocol. - ProtocolUDP Protocol = "UDP" -) - -// ContainerPort represents a network port in a single container. -type ContainerPort struct { - // Optional: If specified, this must be a DNS_LABEL. Each named port - // in a pod must have a unique name. - Name string `json:"name,omitempty" description:"name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod"` - // Optional: If specified, this must be a valid port number, 0 < x < 65536. - // If HostNetwork is specified, this must match ContainerPort. - HostPort int `json:"hostPort,omitempty" description:"number of port to expose on the host; most containers do not need this"` - // Required: This must be a valid port number, 0 < x < 65536. - ContainerPort int `json:"containerPort" description:"number of port to expose on the pod's IP address"` - // Optional: Defaults to "TCP". - Protocol Protocol `json:"protocol,omitempty" description:"protocol for port; must be UDP or TCP; TCP if unspecified"` - // Optional: What host IP to bind the external port to. - HostIP string `json:"hostIP,omitempty" description:"host IP to bind the port to"` -} - -// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. -// -// A GCE PD must exist and be formatted before mounting to a container. -// The disk must also be in the same GCE project and zone as the kubelet. -// A GCE PD can only be mounted as read/write once. -// -// http://docs.k8s.io/volumes.md#gcepersistentdisk -type GCEPersistentDiskVolumeSource struct { - // Unique name of the PD resource. Used to identify the disk in GCE - PDName string `json:"pdName" description:"unique name of the PD resource in GCE"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - // TODO: why omitempty if required? - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Partition on the disk to mount. - // If omitted, kubelet will attempt to mount the device name. - // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field 0 or empty. - Partition int `json:"partition,omitempty" description:"partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// AWSElasticBlockStoreVolumeSource represents a Persistent Disk resource in AWS. -// -// An AWS PD must exist and be formatted before mounting to a container. -// The disk must also be in the same AWS zone as the kubelet. -// A AWS PD can only be mounted on a single machine. -type AWSElasticBlockStoreVolumeSource struct { - // Unique id of the PD resource. Used to identify the disk in AWS - VolumeID string `json:"volumeID" description:"unique id of the PD resource in AWS"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - // TODO: why omitempty if required? - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Partition on the disk to mount. - // If omitted, kubelet will attempt to mount the device name. - // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field 0 or empty. - Partition int `json:"partition,omitempty" description:"partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. -type GitRepoVolumeSource struct { - // Repository URL - Repository string `json:"repository" description:"repository URL"` - // Commit hash, this is optional - Revision string `json:"revision" description:"commit hash for the specified revision"` -} - -// A ISCSI Disk can only be mounted as read/write once. -type ISCSIVolumeSource struct { - // Required: iSCSI target portal - // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260) - TargetPortal string `json:"targetPortal,omitempty" description:"iSCSI target portal"` - // Required: target iSCSI Qualified Name - IQN string `json:"iqn,omitempty" description:"iSCSI Qualified Name"` - // Required: iSCSI target lun number - Lun int `json:"lun,omitempty" description:"iscsi target lun number"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` -} - -// GlusterfsVolumeSource represents a Glusterfs Mount that lasts the lifetime of a pod -type GlusterfsVolumeSource struct { - // Required: EndpointsName is the endpoint name that details Glusterfs topology - EndpointsName string `json:"endpoints" description:"gluster hosts endpoints name"` - - // Required: Path is the Glusterfs volume path - Path string `json:"path" description:"path to gluster volume"` - - // Optional: Defaults to false (read/write). ReadOnly here will force - // the Glusterfs volume to be mounted with read-only permissions - ReadOnly bool `json:"readOnly,omitempty" description:"glusterfs volume to be mounted with read-only permissions"` -} - -// RBDVolumeSource represents a Rados Block Device Mount that lasts the lifetime of a pod -type RBDVolumeSource struct { - // Required: CephMonitors is a collection of Ceph monitors - CephMonitors []string `json:"monitors" description:"a collection of Ceph monitors"` - // Required: RBDImage is the rados image name - RBDImage string `json:"image" description:"rados image name"` - // Required: Filesystem type to mount. - // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs" - // TODO: how do we prevent errors in the filesystem from compromising the machine - FSType string `json:"fsType,omitempty" description:"file system type to mount, such as ext4, xfs, ntfs"` - // Optional: RadosPool is the rados pool name,default is rbd - RBDPool string `json:"pool" description:"rados pool name; default is rbd; optional"` - // Optional: RBDUser is the rados user name, default is admin - RadosUser string `json:"user" description:"rados user name; default is admin; optional"` - // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring - Keyring string `json:"keyring" description:"keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional"` - // Optional: SecretRef is name of the authentication secret for RBDUser, default is empty. - SecretRef *LocalObjectReference `json:"secretRef" description:"name of a secret to authenticate the RBD user; if provided overrides keyring; optional"` - // Optional: Defaults to false (read/write). ReadOnly here will force - // the ReadOnly setting in VolumeMounts. - ReadOnly bool `json:"readOnly,omitempty" description:"rbd volume to be mounted with read-only permissions"` -} - -// VolumeMount describes a mounting of a Volume within a container. -// -// http://docs.k8s.io/volumes.md -type VolumeMount struct { - // Required: This must match the Name of a Volume [above]. - Name string `json:"name" description:"name of the volume to mount"` - // Optional: Defaults to false (read-write). - ReadOnly bool `json:"readOnly,omitempty" description:"mounted read-only if true, read-write otherwise (false or unspecified)"` - // Required. - MountPath string `json:"mountPath" description:"path within the container at which the volume should be mounted"` -} - -// EnvVar represents an environment variable present in a Container. -type EnvVar struct { - // Required: This must be a C_IDENTIFIER. - Name string `json:"name" description:"name of the environment variable; must be a C_IDENTIFIER"` - // Optional: no more than one of the following may be specified. - // Optional: Defaults to ""; variable references $(VAR_NAME) are expanded - // using the previous defined environment variables in the container and - // any service environment variables. If a variable cannot be resolved, - // the reference in the input string will be unchanged. The $(VAR_NAME) - // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped - // references will never be expanded, regardless of whether the variable - // exists or not. - Value string `json:"value,omitempty" description:"value of the environment variable; defaults to empty string; variable references $(VAR_NAME) are expanded using the previously defined environment varibles in the container and any service environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: Specifies a source the value of this var should come from. - ValueFrom *EnvVarSource `json:"valueFrom,omitempty" description:"source for the environment variable's value; cannot be used if value is not empty"` -} - -// EnvVarSource represents a source for the value of an EnvVar. -type EnvVarSource struct { - // Required: Selects a field of the pod; only name and namespace are supported. - FieldRef *ObjectFieldSelector `json:"fieldRef" description:"selects a field of the pod; only name and namespace are supported"` -} - -// ObjectFieldSelector selects an APIVersioned field of an object. -type ObjectFieldSelector struct { - // Optional: Version of the schema the FieldPath is written in terms of, defaults to "v1beta2" - APIVersion string `json:"apiVersion,omitempty" description:"version of the schema that fieldPath is written in terms of; defaults to v1beta2"` - // Required: Path of the field to select in the specified API version - FieldPath string `json:"fieldPath" description:"path of the field to select in the specified API version"` -} - -// HTTPGetAction describes an action based on HTTP Get requests. -// -// http://docs.k8s.io/container-environment.md#hook-handler-implementations -type HTTPGetAction struct { - // Optional: Path to access on the HTTP server. - Path string `json:"path,omitempty" description:"path to access on the HTTP server"` - // Required: Name or number of the port to access on the container. - Port util.IntOrString `json:"port,omitempty" description:"number or name of the port to access on the container"` - // Optional: Host name to connect to, defaults to the pod IP. - Host string `json:"host,omitempty" description:"hostname to connect to; defaults to pod IP"` -} - -// TCPSocketAction describes an action based on opening a socket -// -// http://docs.k8s.io/container-environment.md#hook-handler-implementations -type TCPSocketAction struct { - // Required: Port to connect to. - Port util.IntOrString `json:"port,omitempty" description:"number of name of the port to access on the container"` -} - -// ExecAction describes a "run in container" action. -// -// http://docs.k8s.io/container-environment.md#hook-handler-implementations -type ExecAction struct { - // Command is the command line to execute inside the container, the working directory for the - // command is root ('/') in the container's filesystem. The command is simply exec'd, it is - // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - // a shell, you need to explicitly call out to that shell. - Command []string `json:"command,omitempty" description:"command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy"` -} - -// LivenessProbe describes a liveness probe to be examined to the container. -// TODO: pass structured data to the actions, and document that data here. -type LivenessProbe struct { - // HTTPGetProbe parameters, required if Type == 'http' - HTTPGet *HTTPGetAction `json:"httpGet,omitempty" description:"parameters for HTTP-based liveness probe"` - // TCPSocketProbe parameter, required if Type == 'tcp' - TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty" description:"parameters for TCP-based liveness probe"` - // ExecProbe parameter, required if Type == 'exec' - Exec *ExecAction `json:"exec,omitempty" description:"parameters for exec-based liveness probe"` - // Length of time before health checking is activated. In seconds. - InitialDelaySeconds int64 `json:"initialDelaySeconds,omitempty" description:"number of seconds after the container has started before liveness probes are initiated"` - // Length of time before health checking times out. In seconds. - TimeoutSeconds int64 `json:"timeoutSeconds,omitempty" description:"number of seconds after which liveness probes timeout; defaults to 1 second"` -} - -// PullPolicy describes a policy for if/when to pull a container image -// -// http://docs.k8s.io/images.md#preloading-images -type PullPolicy string - -const ( - // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. - PullAlways PullPolicy = "PullAlways" - // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present - PullNever PullPolicy = "PullNever" - // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. - PullIfNotPresent PullPolicy = "PullIfNotPresent" -) - -// Capability represent POSIX capabilities type -type Capability string - -// Capabilities represent POSIX capabilities that can be added or removed to a running container. -// -// http://docs.k8s.io/containers.md#capabilities -type Capabilities struct { - // Added capabilities - Add []Capability `json:"add,omitempty" description:"added capabilities"` - // Removed capabilities - Drop []Capability `json:"drop,omitempty" description:"droped capabilities"` -} - -type ResourceRequirements struct { - // Limits describes the maximum amount of compute resources required. - Limits ResourceList `json:"limits,omitempty" description:"Maximum amount of compute resources allowed"` - // Requests describes the minimum amount of compute resources required. - // Note: 'Requests' are honored only for Persistent Volumes as of now. - // TODO: Update the scheduler to use 'Requests' in addition to 'Limits'. If Request is omitted for a container, - // it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value - Requests ResourceList `json:"requests,omitempty" description:"Minimum amount of resources requested; requests are honored only for persistent volumes as of now"` -} - -// Container represents a single container that is expected to be run on the host. -// -// -type Container struct { - // Required: This must be a DNS_LABEL. Each container in a pod must - // have a unique name. - Name string `json:"name" description:"name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated"` - // Required. - Image string `json:"image" description:"Docker image name"` - // Optional: The image's entrypoint is used if this is not provided; cannot be updated. - // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax - // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, - // regardless of whether the variable exists or not. - Entrypoint []string `json:"entrypoint,omitempty" description:"entrypoint array; not executed within a shell; the image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: The image's cmd is used if this is not provided; cannot be updated. - // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax - // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, - // regardless of whether the variable exists or not. - Command []string `json:"command,omitempty" description:"command argv array; not executed within a shell; the image's cmd is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved, the reference in the input string will be unchanged; the $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME) ; escaped references will never be expanded, regardless of whether the variable exists or not"` - // Optional: Docker's default is used if this is not provided. - WorkingDir string `json:"workingDir,omitempty" description:"container's working directory; defaults to image's default; cannot be updated"` - Ports []ContainerPort `json:"ports,omitempty" description:"list of ports to expose from the container; cannot be updated"` - Env []EnvVar `json:"env,omitempty" description:"list of environment variables to set in the container; cannot be updated"` - Resources ResourceRequirements `json:"resources,omitempty" description:"Compute Resources required by this container; cannot be updated"` - // Optional: Defaults to unlimited. - CPU int `json:"cpu,omitempty" description:"CPU share in thousandths of a core; cannot be updated"` - // Optional: Defaults to unlimited. - Memory int64 `json:"memory,omitempty" description:"memory limit in bytes; defaults to unlimited; cannot be updated"` - VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" description:"pod volumes to mount into the container's filesystem; cannot be updated"` - LivenessProbe *LivenessProbe `json:"livenessProbe,omitempty" description:"periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated"` - ReadinessProbe *LivenessProbe `json:"readinessProbe,omitempty" description:"periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated"` - Lifecycle *Lifecycle `json:"lifecycle,omitempty" description:"actions that the management system should take in response to container lifecycle events; cannot be updated"` - // Optional: Defaults to /dev/termination-log - TerminationMessagePath string `json:"terminationMessagePath,omitempty" description:"path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated"` - // Deprecated - see SecurityContext. Optional: Default to false. - Privileged bool `json:"privileged,omitempty" description:"whether or not the container is granted privileged status; defaults to false; cannot be updated; deprecated; See SecurityContext"` - // Optional: Policy for pulling images for this container - ImagePullPolicy PullPolicy `json:"imagePullPolicy" description:"image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated"` - // Deprecated - see SecurityContext. Optional: Capabilities for container. - Capabilities Capabilities `json:"capabilities,omitempty" description:"capabilities for container; cannot be updated; deprecated; See SecurityContext"` - // Optional: SecurityContext defines the security options the pod should be run with - SecurityContext *SecurityContext `json:"securityContext,omitempty" description:"security options the pod should run with"` -} - -const ( - // TerminationMessagePathDefault means the default path to capture the application termination message running in a container - TerminationMessagePathDefault string = "/dev/termination-log" -) - -// Handler defines a specific action that should be taken -// TODO: pass structured data to these actions, and document that data here. -// -// http://docs.k8s.io/container-environment.md#hook-handler-implementations -type Handler struct { - // One and only one of the following should be specified. - // Exec specifies the action to take. - Exec *ExecAction `json:"exec,omitempty" description:"exec-based handler"` - // HTTPGet specifies the http request to perform. - HTTPGet *HTTPGetAction `json:"httpGet,omitempty" description:"HTTP-based handler"` - // TCPSocket specifies an action involving a TCP port. - // TODO: implement a realistic TCP lifecycle hook - TCPSocket *TCPSocketAction `json:"tcpSocket,omitempty" description:"TCP-based handler; TCP hooks not yet supported"` -} - -// Lifecycle describes actions that the management system should take in response to container lifecycle -// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks -// until the action is complete, unless the container process fails, in which case the handler is aborted. -// -// http://docs.k8s.io/container-environment.md#hook-details -type Lifecycle struct { - // PostStart is called immediately after a container is created. If the handler fails, the container - // is terminated and restarted. - PostStart *Handler `json:"postStart,omitempty" description:"called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes"` - // PreStop is called immediately before a container is terminated. The reason for termination is - // passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. - PreStop *Handler `json:"preStop,omitempty" description:"called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes"` -} - -// The below types are used by kube_client and api_server. - -// TypeMeta is shared by all objects sent to, or returned from the client. -type TypeMeta struct { - Kind string `json:"kind,omitempty" description:"kind of object, in CamelCase; cannot be updated"` - ID string `json:"id,omitempty" description:"name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated"` - UID types.UID `json:"uid,omitempty" description:"unique UUID across space and time; populated by the system, read-only"` - CreationTimestamp util.Time `json:"creationTimestamp,omitempty" description:"RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"` - SelfLink string `json:"selfLink,omitempty" description:"URL for the object; populated by the system, read-only"` - ResourceVersion uint64 `json:"resourceVersion,omitempty" 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: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency"` - APIVersion string `json:"apiVersion,omitempty" description:"version of the schema the object should have"` - Namespace string `json:"namespace,omitempty" description:"namespace to which the object belongs; must be a DNS_LABEL; 'default' by default; cannot be updated"` - - // DeletionTimestamp is the time after which this resource will be deleted. This - // field is set by the server when a graceful deletion is requested by the user, and is not - // directly settable by a client. The resource will be deleted (no longer visible from - // resource lists, and not reachable by name) after the time in this field. Once set, this - // value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. Once the resource is deleted in the API, the Kubelet - // will send a hard termination signal to the container. - DeletionTimestamp *util.Time `json:"deletionTimestamp,omitempty" 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"` - - // GenerateName indicates that the name should be made unique by the server prior to persisting - // it. A non-empty value for the field indicates the name will be made unique (and the name - // returned to the client will be different than the name passed). The value of this field will - // be combined with a unique suffix on the server if the Name field has not been provided. - // The provided value must be valid within the rules for Name, and may be truncated by the length - // of the suffix required to make the value unique on the server. - // - // If this field is specified, and Name is not present, the server will NOT return a 409 if the - // generated name exists - instead, it will either return 201 Created or 500 with Reason - // ServerTimeout indicating a unique name could not be found in the time allotted, and the client - // should retry (optionally after the time indicated in the Retry-After header). - GenerateName string `json:"generateName,omitempty" 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"` - - // Annotations are unstructured key value data stored with a resource that may be set by - // external tooling. They are not queryable and should be preserved when modifying - // objects. - Annotations map[string]string `json:"annotations,omitempty" description:"map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object"` -} - -type ConditionStatus string - -// These are valid condition statuses. "ConditionFull" means a resource is in the condition; -// "ConditionNone" means a resource is not in the condition; "ConditionUnknown" means kubernetes -// can't decide if a resource is in the condition or not. In the future, we could add other -// intermediate conditions, e.g. ConditionDegraded. -const ( - ConditionFull ConditionStatus = "Full" - ConditionNone ConditionStatus = "None" - ConditionUnknown ConditionStatus = "Unknown" -) - -// PodStatus represents a status of a pod. -// -// http://docs.k8s.io/pod-states.md -type PodStatus string - -// These are the valid statuses of pods. -const ( - // PodWaiting means that we're waiting for the pod to begin running. - PodWaiting PodStatus = "Waiting" - // PodRunning means that the pod is up and running. - PodRunning PodStatus = "Running" - // PodTerminated means that the pod has stopped. - PodTerminated PodStatus = "Terminated" - // PodUnknown means that we failed to obtain info about the pod. - PodUnknown PodStatus = "Unknown" - // PodSucceeded means that the pod has stopped without error(s) - PodSucceeded PodStatus = "Succeeded" -) - -type ContainerStateWaiting struct { - // Reason could be pulling image, - Reason string `json:"reason,omitempty" description:"(brief) reason the container is not yet running, such as pulling its image"` -} - -type ContainerStateRunning struct { - StartedAt util.Time `json:"startedAt,omitempty" description:"time at which the container was last (re-)started"` -} - -type ContainerStateTerminated struct { - ExitCode int `json:"exitCode" description:"exit status from the last termination of the container"` - Signal int `json:"signal,omitempty" description:"signal from the last termination of the container"` - Reason string `json:"reason,omitempty" description:"(brief) reason from the last termination of the container"` - Message string `json:"message,omitempty" description:"message regarding the last termination of the container"` - StartedAt util.Time `json:"startedAt,omitempty" description:"time at which previous execution of the container started"` - FinishedAt util.Time `json:"finishedAt,omitempty" description:"time at which the container last terminated"` - ContainerID string `json:"containerID,omitempty" description:"container's ID in the format 'docker://'"` -} - -// ContainerState holds a possible state of container. -// Only one of its members may be specified. -// If none of them is specified, the default one is ContainerStateWaiting. -type ContainerState struct { - Waiting *ContainerStateWaiting `json:"waiting,omitempty" description:"details about a waiting container"` - Running *ContainerStateRunning `json:"running,omitempty" description:"details about a running container"` - Termination *ContainerStateTerminated `json:"termination,omitempty" description:"details about a terminated container"` -} - -type ContainerStatus struct { - // TODO(dchen1107): Should we rename PodStatus to a more generic name or have a separate states - // defined for container? - State ContainerState `json:"state,omitempty" description:"details about the container's current condition"` - LastTerminationState ContainerState `json:"lastState,omitempty" description:"details about the container's last termination condition"` - Ready bool `json:"ready" description:"specifies whether the container has passed its readiness probe"` - // Note that this is calculated from dead containers. But those containers are subject to - // garbage collection. This value will get capped at 5 by GC. - RestartCount int `json:"restartCount" description:"the number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed"` - // TODO(dchen1107): Need to decide how to reprensent this in v1beta3 - Image string `json:"image" description:"image of the container"` - ImageID string `json:"imageID" description:"ID of the container's image"` - ContainerID string `json:"containerID,omitempty" description:"container's ID in the format 'docker://'"` -} - -// PodConditionKind is a valid value for PodCondition.Kind -type PodConditionKind string - -// These are valid conditions of pod. -const ( - // PodReady means the pod is able to service requests and should be added to the - // load balancing pools of all matching services. - PodReady PodConditionKind = "Ready" -) - -// TODO: add LastTransitionTime, Reason, Message to match NodeCondition api. -type PodCondition struct { - // Kind is the kind of the condition - Kind PodConditionKind `json:"kind" description:"kind of the condition, currently only Ready"` - // Status is the status of the condition - Status ConditionStatus `json:"status" description:"status of the condition, one of Full, None, Unknown"` -} - -// PodInfo contains one entry for every container with available info. -type PodInfo map[string]ContainerStatus - -// PodContainerInfo is a wrapper for PodInfo that can be encode/decoded -type PodContainerInfo struct { - TypeMeta `json:",inline"` - ContainerInfo PodInfo `json:"containerInfo" description:"information about each container in this pod"` -} - -type RestartPolicyAlways struct{} - -// TODO(dchen1107): Define what kinds of failures should restart. -// TODO(dchen1107): Decide whether to support policy knobs, and, if so, which ones. -type RestartPolicyOnFailure struct{} - -type RestartPolicyNever struct{} - -type RestartPolicy struct { - // Only one of the following restart policies may be specified. - // If none of the following policies is specified, the default one - // is RestartPolicyAlways. - Always *RestartPolicyAlways `json:"always,omitempty" description:"always restart the container after termination"` - OnFailure *RestartPolicyOnFailure `json:"onFailure,omitempty" description:"restart the container if it fails for any reason, but not if it succeeds (exit 0)"` - Never *RestartPolicyNever `json:"never,omitempty" description:"never restart the container"` -} - -// PodState is the state of a pod, used as either input (desired state) or output (current state). -type PodState struct { - Manifest ContainerManifest `json:"manifest,omitempty" description:"manifest of containers and volumes comprising the pod"` - Status PodStatus `json:"status,omitempty" description:"current condition of the pod, Waiting, Running, or Terminated"` - Conditions []PodCondition `json:"Condition,omitempty" description:"current service state of pod"` - // A human readable message indicating details about why the pod is in this state. - Message string `json:"message,omitempty" description:"human readable message indicating details about why the pod is in this condition"` - Host string `json:"host,omitempty" description:"host to which the pod is assigned; empty if not yet scheduled; cannot be updated"` - HostIP string `json:"hostIP,omitempty" description:"IP address of the host to which the pod is assigned; empty if not yet scheduled"` - PodIP string `json:"podIP,omitempty" description:"IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"` - - // The key of this map is the *name* of the container within the manifest; it has one - // entry per container in the manifest. The value of this map is ContainerStatus for - // the container. - Info PodInfo `json:"info,omitempty" description:"map of container name to container status"` -} - -type PodStatusResult struct { - TypeMeta `json:",inline"` - State PodState `json:"state,omitempty" description:"current state of the pod"` -} - -// PodList is a list of Pods. -type PodList struct { - TypeMeta `json:",inline"` - Items []Pod `json:"items" description:"list of pods"` -} - -// Pod is a collection of containers, used as either input (create, update) or as output (list, get). -// -// http://docs.k8s.io/pods.md -type Pod struct { - TypeMeta `json:",inline"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services"` - DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of the pod"` - CurrentState PodState `json:"currentState,omitempty" description:"current state of the pod; populated by the system, read-only"` - // ServiceAccount is the name of the ServiceAccount to use to run this pod - ServiceAccount string `json:"serviceAccount,omitempty" description:"the name of the ServiceAccount to use to run this pod"` - // NodeSelector is a selector which must be true for the pod to fit on a node - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"selector which must match a node's labels for the pod to be scheduled on that node"` -} - -// ReplicationControllerState is the state of a replication controller, either input (create, update) or as output (list, get). -type ReplicationControllerState struct { - Replicas int `json:"replicas" description:"number of replicas (desired or observed, as appropriate)"` - ReplicaSelector map[string]string `json:"replicaSelector,omitempty" description:"label keys and values that must match in order to be controlled by this replication controller"` - PodTemplate PodTemplate `json:"podTemplate,omitempty" description:"template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas"` -} - -// ReplicationControllerList is a collection of replication controllers. -type ReplicationControllerList struct { - TypeMeta `json:",inline"` - Items []ReplicationController `json:"items" description:"list of replication controllers"` -} - -// ReplicationController represents the configuration of a replication controller. -// -// http://docs.k8s.io/replication-controller.md -type ReplicationController struct { - TypeMeta `json:",inline"` - DesiredState ReplicationControllerState `json:"desiredState,omitempty" description:"specification of the desired state of the replication controller"` - CurrentState ReplicationControllerState `json:"currentState,omitempty" description:"current state of the replication controller; populated by the system, read-only"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize replication controllers"` -} - -// PodTemplate holds the information used for creating pods. -// -// http://docs.k8s.io/replication-controller.md#pod-template -type PodTemplate struct { - DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of pods created from this template"` - ServiceAccount string `json:"serviceAccount,omitempty" description:"the name of the ServiceAccount to use to run this pod"` - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"a selector which must be true for the pod to fit on a node"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services"` - Annotations map[string]string `json:"annotations,omitempty" description:"map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template"` -} - -// Session Affinity Type string -type ServiceAffinity string - -const ( - // ServiceAffinityClientIP is the Client IP based. - ServiceAffinityClientIP ServiceAffinity = "ClientIP" - - // ServiceAffinityNone - no session affinity. - ServiceAffinityNone ServiceAffinity = "None" -) - -// Service Type string describes ingress methods for a service -type ServiceType string - -const ( - // ServiceTypeClusterIP means a service will only be accessible inside the - // cluster, via the portal IP. - ServiceTypeClusterIP ServiceType = "ClusterIP" - - // ServiceTypeNodePort means a service will be exposed on one port of - // every node, in addition to 'ClusterIP' type. - ServiceTypeNodePort ServiceType = "NodePort" - - // ServiceTypeLoadBalancer means a service will be exposed via an - // external load balancer (if the cloud provider supports it), in addition - // to 'NodePort' type. - ServiceTypeLoadBalancer ServiceType = "LoadBalancer" -) - -const ( - // PortalIPNone - do not assign a portal IP - // no proxying required and no environment variables should be created for pods - PortalIPNone = "None" -) - -// ServiceList holds a list of services. -type ServiceList struct { - TypeMeta `json:",inline"` - Items []Service `json:"items" description:"list of services"` -} - -// Service is a named abstraction of software service (for example, mysql) consisting of local port -// (for example 3306) that the proxy listens on, and the selector that determines which pods -// will answer requests sent through the proxy. -// -// http://docs.k8s.io/services.md -type Service struct { - TypeMeta `json:",inline"` - - // Required. - Port int `json:"port" description:"port exposed by the service"` - // Optional: The name of the first port. - PortName string `json:"portName,omitempty" description:"the name of the first port; optional"` - // Optional: Defaults to "TCP". - Protocol Protocol `json:"protocol,omitempty" description:"protocol for port; must be UDP or TCP; TCP if unspecified"` - // ContainerPort is the name or number of the port on the container to direct traffic to. - // This is useful if the containers the service points to have multiple open ports. - // Optional: If unspecified, the first port on the container will be used. - ContainerPort util.IntOrString `json:"containerPort,omitempty" 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"` - - // This service's labels. - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize services"` - - // This service will route traffic to pods having labels matching this selector. If null, no endpoints will be automatically created. If empty, all pods will be selected. - Selector map[string]string `json:"selector" description:"label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified"` - - // An external load balancer should be set up via the cloud-provider - CreateExternalLoadBalancer bool `json:"createExternalLoadBalancer,omitempty" description:"set up a cloud-provider-specific load balancer on an external IP"` - - // Type determines how the service will be exposed. Valid options: ClusterIP, NodePort, LoadBalancer - Type ServiceType `json:"type,omitempty" description:"type of this service; must be ClusterIP, NodePort, or LoadBalancer; defaults to ClusterIP"` - - // Deprecated. PublicIPs are used by external load balancers, or can be set by - // users to handle external traffic that arrives at a node. - PublicIPs []string `json:"publicIPs,omitempty" description:"deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service"` - - // PortalIP is usually assigned by the master. If specified by the user - // we will try to respect it or else fail the request. This field can - // not be changed by updates. - // Valid values are None, empty string (""), or a valid IP address - // None can be specified for headless services when proxying is not required - PortalIP string `json:"portalIP,omitempty" 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"` - - // DEPRECATED: has no implementation. - ProxyPort int `json:"proxyPort,omitempty" description:"if non-zero, a pre-allocated host port used for this service by the proxy on each node; assigned by the master and ignored on input"` - - // Optional: Supports "ClientIP" and "None". Used to maintain session affinity. - SessionAffinity ServiceAffinity `json:"sessionAffinity,omitempty" description:"enable client IP based session affinity; must be ClientIP or None; defaults to None"` - - // Optional: Ports to expose 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. - 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"` - - // LoadBalancer contains the current status of the load-balancer, - // if one is present. - LoadBalancerStatus LoadBalancerStatus `json:"loadBalancerStatus,omitempty" description:"status of load-balancer"` -} - -// LoadBalancerStatus represents the status of a load-balancer -type LoadBalancerStatus struct { - // Ingress is a list containing ingress points for the load-balancer; - // traffic intended for the service should be sent to these ingress points. - Ingress []LoadBalancerIngress `json:"ingress,omitempty" description:"load-balancer ingress points"` -} - -// LoadBalancerIngress represents the status of a load-balancer ingress point: -// traffic intended for the service should be sent to an ingress point. -type LoadBalancerIngress struct { - // IP is set for load-balancer ingress points that are IP based - // (typically GCE or OpenStack load-balancers) - IP string `json:"ip,omitempty" description:"IP address of ingress point"` - - // Hostname is set for load-balancer ingress points that are DNS based - // (typically AWS load-balancers) - Hostname string `json:"hostname,omitempty" description:"hostname of ingress point"` -} - -type ServicePort struct { - // Required: The name of this port within the service. This must be a - // DNS_LABEL. All ports within a ServiceSpec must have unique names. - // This maps to the 'Name' field in EndpointPort objects. - Name string `json:"name" description:"the name of this port; optional if only one port is defined"` - - // Optional: The IP protocol for this port. Supports "TCP" and "UDP", - // default is TCP. - Protocol Protocol `json:"protocol" description:"the protocol used by this port; must be UDP or TCP; TCP if unspecified"` - - // Required: The port that will be exposed. - Port int `json:"port" description:"the port number that is exposed"` - - // Optional: The port number on the target pod to direct traffic to. - // This is useful if the containers the service points to have multiple - // open ports. If this is a string, it will be looked up as a named - // port in the target Pod's container ports. If unspecified, the value - // of Port is used (an identity map) - note this is a different default - // than Service.ContainerPort. - ContainerPort util.IntOrString `json:"containerPort" description:"the port to access on the containers belonging to pods targeted by the service; defaults to the service port"` - - // The port on each node on which this service is exposed. - // Default is to auto-allocate a port if the ServiceType of this Service requires one. - NodePort int `json:"nodePort" description:"the port on each node on which this service is exposed"` -} - -// ServiceAccount binds together: -// * a name, understood by users, and perhaps by peripheral systems, for an identity -// * a principal that can be authenticated and authorized -// * a set of secrets -type ServiceAccount struct { - TypeMeta `json:",inline"` - - // Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount - Secrets []ObjectReference `json:"secrets" description:"list of secrets that can be used by pods running as this service account" patchStrategy:"merge" patchMergeKey:"name"` - - // ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images - // in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets - // can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling container images"` -} - -// ServiceAccountList is a list of ServiceAccount objects -type ServiceAccountList struct { - TypeMeta `json:",inline"` - - Items []ServiceAccount `json:"items" description:"list of ServiceAccounts"` -} - -// EndpointObjectReference is a reference to an object exposing the endpoint -type EndpointObjectReference struct { - Endpoint string `json:"endpoint" description:"endpoint exposed by the referenced object"` - ObjectReference `json:"targetRef" description:"reference to the object providing the entry point"` -} - -// Endpoints is a collection of endpoints that implement the actual service, for example: -// Name: "mysql", Endpoints: ["10.10.1.1:1909", "10.10.2.2:8834"] -type Endpoints struct { - TypeMeta `json:",inline"` - - // These fields are retained for backwards compatibility. For - // multi-port services, use the Subsets field instead. Upon a create or - // update operation, the following logic applies: - // * If Subsets is specified, Protocol, Endpoints, and TargetRefs will - // be overwritten by data from Subsets. - // * If Subsets is not specified, Protocol, Endpoints, and TargetRefs - // will be used to generate Subsets. - Protocol Protocol `json:"protocol,omitempty" description:"IP protocol for the first set of endpoint ports; must be UDP or TCP; TCP if unspecified"` - Endpoints []string `json:"endpoints" description:"first set of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909"` - // Optional: The kubernetes objects related to the first set of entry points. - TargetRefs []EndpointObjectReference `json:"targetRefs,omitempty" description:"list of references to objects providing the endpoints"` - - // The set of all endpoints is the union of all subsets. If this field - // is not empty it must include the backwards-compatible protocol and - // endpoints. - Subsets []EndpointSubset `json:"subsets" description:"sets of addresses and ports that comprise a service"` -} - -// EndpointSubset is a group of addresses with a common set of ports. The -// expanded set of endpoints is the Cartesian product of Addresses x Ports. -// For example, given: -// { -// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], -// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] -// } -// The resulting set of endpoints can be viewed as: -// a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], -// b: [ 10.10.1.1:309, 10.10.2.2:309 ] -type EndpointSubset struct { - Addresses []EndpointAddress `json:"addresses,omitempty" description:"IP addresses which offer the related ports"` - Ports []EndpointPort `json:"ports,omitempty" description:"port numbers available on the related IP addresses"` -} - -// EndpointAddress is a tuple that describes single IP address. -type EndpointAddress struct { - // The IP of this endpoint. - // TODO: This should allow hostname or IP, see #4447. - IP string `json:"IP" description:"IP address of the endpoint"` - - // Optional: The kubernetes object related to the entry point. - TargetRef *ObjectReference `json:"targetRef,omitempty" description:"reference to object providing the endpoint"` -} - -// EndpointPort is a tuple that describes a single port. -type EndpointPort struct { - // The name of this port (corresponds to ServicePort.Name). Optional - // if only one port is defined. Must be a DNS_LABEL. - Name string `json:"name,omitempty" description:"name of this port"` - - // The port number. - Port int `json:"port" description:"port number of the endpoint"` - - // The IP protocol for this port. - Protocol Protocol `json:"protocol,omitempty" description:"protocol for this port; must be UDP or TCP; TCP if unspecified"` -} - -// EndpointsList is a list of endpoints. -type EndpointsList struct { - TypeMeta `json:",inline"` - Items []Endpoints `json:"items" description:"list of service endpoint lists"` -} - -// NodeSystemInfo is a set of ids/uuids to uniquely identify the node. -type NodeSystemInfo struct { - // MachineID is the machine-id reported by the node - MachineID string `json:"machineID" description:"machine id is the machine-id reported by the node"` - // SystemUUID is the system-uuid reported by the node - SystemUUID string `json:"systemUUID" description:"system uuid is the system-uuid reported by the node"` - // BootID is the boot-id reported by the node - BootID string `json:"bootID" description:"boot id is the boot-id reported by the node"` - // Kernel version reported by the node - KernelVersion string `json:"kernelVersion" description:"Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)"` - // OS image used reported by the node - OsImage string `json:"osImage" description:"OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))"` - // Container runtime version reported by the node - ContainerRuntimeVersion string `json:"containerRuntimeVersion" description:"Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)"` - // Kubelet version reported by the node - KubeletVersion string `json:"kubeletVersion" description:"Kubelet version reported by the node"` - // Kube-proxy version reported by the node - KubeProxyVersion string `json:"kubeProxyVersion" description:"Kube-proxy version reported by the node"` -} - -// NodeStatus is information about the current status of a node. -// -// http://docs.k8s.io/node.md#node-status -type NodeStatus struct { - // NodePhase is the current lifecycle phase of the node. - Phase NodePhase `json:"phase,omitempty" description:"node phase is the current lifecycle phase of the node"` - // Conditions is an array of current node conditions. - Conditions []NodeCondition `json:"conditions,omitempty" description:"conditions is an array of current node conditions"` - // Queried from cloud provider, if available. - Addresses []NodeAddress `json:"addresses,omitempty" description:"list of addresses reachable to the node"` - // NodeSystemInfo is a set of ids/uuids to uniquely identify the node - NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty" description:"node identity is a set of ids/uuids to uniquely identify the node"` -} - -// NodeInfo is the information collected on the node. -type NodeInfo struct { - TypeMeta `json:",inline"` - // Capacity represents the available resources. - Capacity ResourceList `json:"capacity,omitempty" description:"resource capacity of a node represented as a map of resource name to quantity of resource"` - // NodeSystemInfo is a set of ids/uuids to uniquely identify the node - NodeSystemInfo `json:",inline,omitempty" description:"node identity is a set of ids/uuids to uniquely identify the node"` -} - -// Described the current lifecycle phase of a node. -// -// http://docs.k8s.io/node.md#node-phase -type NodePhase string - -// These are the valid phases of node. -const ( - // NodePending means the node has been created/added by the system, but not configured. - NodePending NodePhase = "Pending" - // NodeRunning means the node has been configured and has Kubernetes components running. - NodeRunning NodePhase = "Running" - // NodeTerminated means the node has been removed from the cluster. - NodeTerminated NodePhase = "Terminated" -) - -// Describes the condition of a running node. -// -// http://docs.k8s.io/node.md#node-condition -type NodeConditionKind string - -// These are valid conditions of node. Currently, we don't have enough information to decide -// node condition. In the future, we will add more. The proposed set of conditions are: -// NodeReachable, NodeLive, NodeReady, NodeSchedulable, NodeRunnable. -const ( - // NodeReachable means the node can be reached (in the sense of HTTP connection) within cluster. - NodeReachable NodeConditionKind = "Reachable" - // NodeReady means kubelet is healthy and ready to accept pods. - NodeReady NodeConditionKind = "Ready" - // NodeSchedulable means the node is ready to accept new pods. - // DEPRECATED: this kind of condition is unused and has no effect even if present. - NodeSchedulable NodeConditionKind = "Schedulable" -) - -// Described the conditions of a running node. -// -// http://docs.k8s.io/node.md#node-condition -type NodeCondition struct { - Kind NodeConditionKind `json:"kind" description:"kind of the condition, current kinds: Reachable, Ready, Schedulable"` - Status ConditionStatus `json:"status" description:"status of the condition, one of Full, None, Unknown"` - LastProbeTime util.Time `json:"lastProbeTime,omitempty" description:"last time the condition was probed"` - LastTransitionTime util.Time `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another"` - Reason string `json:"reason,omitempty" description:"(brief) reason for the condition's last transition"` - Message string `json:"message,omitempty" description:"human readable message indicating details about last transition"` -} - -type NodeAddressType string - -// These are valid address types of node. -const ( - NodeHostName NodeAddressType = "Hostname" - NodeExternalIP NodeAddressType = "ExternalIP" - NodeInternalIP NodeAddressType = "InternalIP" -) - -type NodeAddress struct { - Type NodeAddressType `json:"type" description:"type of the node address, e.g. external ip, internal ip, hostname, etc"` - Address string `json:"address" description:"string representation of the address"` -} - -// NodeResources represents resources on a Kubernetes system node -// -// http://docs.k8s.io/resources.md -type NodeResources struct { - // Capacity represents the available resources. - Capacity ResourceList `json:"capacity,omitempty" description:"resource capacity of a node represented as a map of resource name to quantity of resource"` -} - -type ResourceName string - -const ( - // CPU, in cores. (500m = .5 cores) - ResourceCPU ResourceName = "cpu" - // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) - ResourceMemory ResourceName = "memory" - // Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024) - ResourceStorage ResourceName = "storage" -) - -type ResourceList map[ResourceName]util.IntOrString - -// Minion is a worker node in Kubernetenes. -// The name of the minion according to etcd is in ID. -// -// http://docs.k8s.io/node.md#node-condition -type Minion struct { - TypeMeta `json:",inline"` - // DEPRECATED: Use Status.Addresses instead. - // Queried from cloud provider, if available. - HostIP string `json:"hostIP,omitempty" description:"IP address of the node"` - // Resources available on the node - NodeResources NodeResources `json:"resources,omitempty" description:"characterization of node resources"` - // Pod IP range assigned to the node - PodCIDR string `json:"podCIDR,omitempty" description:"IP range assigned to the node"` - // Unschedulable controls node schedulability of new pods. By default node is schedulable. - Unschedulable bool `json:"unschedulable,omitempty" description:"disable pod scheduling on the node"` - // Status describes the current status of a node - Status NodeStatus `json:"status,omitempty" description:"current status of node"` - // Labels for the node - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector"` - // External ID of the node - ExternalID string `json:"externalID,omitempty" description:"deprecated. External id of the node assigned by some machine database (e.g. a cloud provider). Defaults to node name when empty."` - // ID of the node assigned by the cloud provider - ProviderID string `json:"providerID,omitempty" description:"ID of the node assigned by the cloud provider in the format: ://"` -} - -// MinionList is a list of minions. -type MinionList struct { - TypeMeta `json:",inline"` - Items []Minion `json:"items" description:"list of nodes"` -} - -type FinalizerName string - -// These are internal finalizer values to Kubernetes, must be qualified name unless defined here -const ( - FinalizerKubernetes FinalizerName = "kubernetes" -) - -// NamespaceSpec describes the attributes on a Namespace -type NamespaceSpec struct { - // Finalizers is an opaque list of values that must be empty to permanently remove object from storage - Finalizers []FinalizerName `json:"finalizers,omitempty" description:"an opaque list of values that must be empty to permanently remove object from storage"` -} - -// NamespaceStatus is information about the current status of a Namespace. -type NamespaceStatus struct { - // Phase is the current lifecycle phase of the namespace. - Phase NamespacePhase `json:"phase,omitempty" description:"phase is the current lifecycle phase of the namespace"` -} - -type NamespacePhase string - -// These are the valid phases of a namespace. -const ( - // NamespaceActive means the namespace is available for use in the system - NamespaceActive NamespacePhase = "Active" - // NamespaceTerminating means the namespace is undergoing graceful termination - NamespaceTerminating NamespacePhase = "Terminating" -) - -// A namespace provides a scope for Names. -// Use of multiple namespaces is optional. -// -// http://docs.k8s.io/namespaces.md -type Namespace struct { - TypeMeta `json:",inline"` - - // Labels - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize namespaces"` - - // Spec defines the behavior of the Namespace. - Spec NamespaceSpec `json:"spec,omitempty" description:"spec defines the behavior of the Namespace"` - - // Status describes the current status of a Namespace - Status NamespaceStatus `json:"status,omitempty" description:"status describes the current status of a Namespace; read-only"` -} - -// NamespaceList is a list of Namespaces. -type NamespaceList struct { - TypeMeta `json:",inline"` - - // Items is the list of Namespace objects in the list - Items []Namespace `json:"items" description:"items is the list of Namespace objects in the list"` -} - -// Binding is written by a scheduler to cause a pod to be bound to a host. -type Binding struct { - TypeMeta `json:",inline"` - PodID string `json:"podID" description:"name of the pod to bind"` - Host string `json:"host" description:"host to which to bind the specified pod"` -} - -// DeleteOptions may be provided when deleting an API object -type DeleteOptions struct { - TypeMeta `json:",inline"` - - // Optional duration in seconds before the object should be deleted. Value must be non-negative integer. - // The value zero indicates delete immediately. If this value is nil, the default grace period for the - // specified type will be used. - GracePeriodSeconds *int64 `json:"gracePeriodSeconds" description:"the duration in seconds to wait before deleting this object; defaults to a per object value if not specified; zero means delete immediately"` -} - -// ListOptions is the query options to a standard REST list call -type ListOptions struct { - TypeMeta `json:",inline"` - - // A selector based on labels - LabelSelector string `json:"labels" description:"a selector to restrict the list of returned objects by their labels; defaults to everything"` - // A selector based on fields - FieldSelector string `json:"fields" description:"a selector to restrict the list of returned objects by their fields; defaults to everything"` - // If true, watch for changes to the selected resources - Watch bool `json:"watch" description:"watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion"` - // The desired resource version to watch - ResourceVersion string `json:"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"` -} - -// PodLogOptions is the query options for a Pod's logs REST call -type PodLogOptions struct { - TypeMeta `json:",inline"` - - // Container for which to return logs - Container string `json:"container,omitempty" description:"the container for which to stream logs; defaults to only container if there is one container in the pod"` - - // If true, follow the logs for the pod - Follow bool `json:"follow,omitempty" description:"follow the log stream of the pod; defaults to false"` - - // If true, return previous terminated container logs - Previous bool `json:"previous,omitempty" description:"return previous terminated container logs; defaults to false"` -} - -// PodExecOptions is the query options to a Pod's remote exec call -type PodExecOptions struct { - TypeMeta `json:",inline"` - - // Stdin if true indicates that stdin is to be redirected for the exec call - Stdin bool `json:"stdin,omitempty" description:"redirect the standard input stream of the pod for this call; defaults to false"` - - // Stdout if true indicates that stdout is to be redirected for the exec call - Stdout bool `json:"stdout,omitempty" description:"redirect the standard output stream of the pod for this call; defaults to true"` - - // Stderr if true indicates that stderr is to be redirected for the exec call - Stderr bool `json:"stderr,omitempty" description:"redirect the standard error stream of the pod for this call; defaults to true"` - - // TTY if true indicates that a tty will be allocated for the exec call - TTY bool `json:"tty,omitempty" description:"allocate a terminal for this exec call; defaults to false"` - - // Container in which to execute the command. - Container string `json:"container,omitempty" description:"the container in which to execute the command. Defaults to only container if there is only one container in the pod."` - - // Command is the remote command to execute; argv array; not executed within a shell. - Command []string `json:"command" description:"the command to execute; argv array; not executed within a shell"` -} - -// PodProxyOptions is the query options to a Pod's proxy call -type PodProxyOptions struct { - TypeMeta `json:",inline"` - - // Path is the URL path to use for the current proxy request - Path string `json:"path,omitempty" description:"URL path to use in proxy request to pod"` -} - -// Status is a return value for calls that don't return other objects. -// TODO: this could go in apiserver, but I'm including it here so clients needn't -// import both. -type Status struct { - TypeMeta `json:",inline"` - // One of: "Success" or "Failure" - Status string `json:"status,omitempty" description:"status of the operation; either Success or Failure"` - // A human-readable description of the status of this operation. - Message string `json:"message,omitempty" description:"human-readable description of the status of this operation"` - // A machine-readable description of why this operation is in the - // "Failure" status. If this value is empty there - // is no information available. A Reason clarifies an HTTP status - // code but does not override it. - Reason StatusReason `json:"reason,omitempty" description:"machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it"` - // Extended data associated with the reason. Each reason may define its - // own extended details. This field is optional and the data returned - // is not guaranteed to conform to any schema except that defined by - // the reason type. - Details *StatusDetails `json:"details,omitempty" description:"extended data associated with the reason; each reason may define its own extended details; this field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type"` - // Suggested HTTP return code for this status, 0 if not set. - Code int `json:"code,omitempty" description:"suggested HTTP return code for this status; 0 if not set"` -} - -// StatusDetails is a set of additional properties that MAY be set by the -// server to provide additional information about a response. The Reason -// field of a Status object defines what attributes will be set. Clients -// must ignore fields that do not match the defined type of each attribute, -// and should assume that any attribute may be empty, invalid, or under -// defined. -type StatusDetails struct { - // The ID attribute of the resource associated with the status StatusReason - // (when there is a single ID which can be described). - ID string `json:"id,omitempty" description:"the ID attribute of the resource associated with the status StatusReason (when there is a single ID which can be described)"` - // The kind attribute of the resource associated with the status StatusReason. - // On some operations may differ from the requested resource Kind. - Kind string `json:"kind,omitempty" description:"the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind"` - // The Causes array includes more details associated with the StatusReason - // failure. Not all StatusReasons may provide detailed causes. - Causes []StatusCause `json:"causes,omitempty" description:"the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes"` - // If specified, the time in seconds before the operation should be retried. - RetryAfterSeconds int `json:"retryAfterSeconds,omitempty" description:"the number of seconds before the client should attempt to retry this operation"` -} - -// Values of Status.Status -const ( - StatusSuccess = "Success" - StatusFailure = "Failure" -) - -// StatusReason is an enumeration of possible failure causes. Each StatusReason -// must map to a single HTTP status code, but multiple reasons may map -// to the same HTTP status code. -// TODO: move to apiserver -type StatusReason string - -const ( - // StatusReasonUnknown means the server has declined to indicate a specific reason. - // The details field may contain other information about this error. - // Status code 500. - StatusReasonUnknown StatusReason = "" - - // StatusReasonNotFound means one or more resources required for this operation - // could not be found. - // Details (optional): - // "kind" string - the kind attribute of the missing resource - // on some operations may differ from the requested - // resource. - // "id" string - the identifier of the missing resource - // Status code 404 - StatusReasonNotFound StatusReason = "NotFound" - - // StatusReasonAlreadyExists means the resource you are creating already exists. - // Details (optional): - // "kind" string - the kind attribute of the conflicting resource - // "id" string - the identifier of the conflicting resource - // Status code 409 - StatusReasonAlreadyExists StatusReason = "AlreadyExists" - - // StatusReasonConflict means the requested update operation cannot be completed - // due to a conflict in the operation. The client may need to alter the request. - // Each resource may define custom details that indicate the nature of the - // conflict. - // Status code 409 - StatusReasonConflict StatusReason = "Conflict" - - // StatusReasonInvalid means the requested create or update operation cannot be - // completed due to invalid data provided as part of the request. The client may - // need to alter the request. When set, the client may use the StatusDetails - // message field as a summary of the issues encountered. - // Details (optional): - // "kind" string - the kind attribute of the invalid resource - // "id" string - the identifier of the invalid resource - // "causes" - one or more StatusCause entries indicating the data in the - // provided resource that was invalid. The code, message, and - // field attributes will be set. - // Status code 422 - StatusReasonInvalid StatusReason = "Invalid" - - // StatusReasonServerTimeout means the server can be reached and understood the request, - // but cannot complete the action in a reasonable time. The client should retry the request. - // This is may be due to temporary server load or a transient communication issue with - // another server. Status code 500 is used because the HTTP spec provides no suitable - // server-requested client retry and the 5xx class represents actionable errors. - // Details (optional): - // "kind" string - the kind attribute of the resource being acted on. - // "id" string - the operation that is being attempted. - // Status code 500 - StatusReasonServerTimeout StatusReason = "ServerTimeout" -) - -// StatusCause provides more information about an api.Status failure, including -// cases when multiple errors are encountered. -type StatusCause struct { - // A machine-readable description of the cause of the error. If this value is - // empty there is no information available. - Type CauseType `json:"reason,omitempty" description:"machine-readable description of the cause of the error; if this value is empty there is no information available"` - // A human-readable description of the cause of the error. This field may be - // presented as-is to a reader. - Message string `json:"message,omitempty" description:"human-readable description of the cause of the error; this field may be presented as-is to a reader"` - // The field of the resource that has caused this error, as named by its JSON - // serialization. May include dot and postfix notation for nested attributes. - // Arrays are zero-indexed. Fields may appear more than once in an array of - // causes due to fields having multiple errors. - // Optional. - // - // Examples: - // "name" - the field "name" on the current resource - // "items[0].name" - the field "name" on the first array entry in "items" - Field string `json:"field,omitempty" description:"field of the resource that has caused this error, as named by its JSON serialization; may include dot and postfix notation for nested attributes; arrays are zero-indexed; fields may appear more than once in an array of causes due to fields having multiple errors"` -} - -// CauseType is a machine readable value providing more detail about what -// occured in a status response. An operation may have multiple causes for a -// status (whether Failure or Success). -type CauseType string - -const ( - // CauseTypeFieldValueNotFound is used to report failure to find a requested value - // (e.g. looking up an ID). - CauseTypeFieldValueNotFound CauseType = "FieldValueNotFound" - // CauseTypeFieldValueRequired is used to report required values that are not - // provided (e.g. empty strings, null values, or empty arrays). - CauseTypeFieldValueRequired CauseType = "FieldValueRequired" - // CauseTypeFieldValueDuplicate is used to report collisions of values that must be - // unique (e.g. unique IDs). - CauseTypeFieldValueDuplicate CauseType = "FieldValueDuplicate" - // CauseTypeFieldValueInvalid is used to report malformed values (e.g. failed regex - // match). - CauseTypeFieldValueInvalid CauseType = "FieldValueInvalid" - // CauseTypeFieldValueNotSupported is used to report valid (as per formatting rules) - // values that can not be handled (e.g. an enumerated string). - CauseTypeFieldValueNotSupported CauseType = "FieldValueNotSupported" -) - -// ObjectReference contains enough information to let you inspect or modify the referred object. -type ObjectReference struct { - Kind string `json:"kind,omitempty" description:"kind of the referent"` - Namespace string `json:"namespace,omitempty" description:"namespace of the referent"` - ID string `json:"name,omitempty" description:"id of the referent"` - UID types.UID `json:"uid,omitempty" description:"uid of the referent"` - APIVersion string `json:"apiVersion,omitempty" description:"API version of the referent"` - ResourceVersion string `json:"resourceVersion,omitempty" description:"specific resourceVersion to which this reference is made, if any: http://docs.k8s.io/api-conventions.md#concurrency-control-and-consistency"` - - // Optional. If referring to a piece of an object instead of an entire object, this string - // should contain information to identify the sub-object. For example, if the object - // reference is to a container within a pod, this would take on a value like: - // "spec.containers{name}" (where "name" refers to the name of the container that triggered - // the event) or if no container name is specified "spec.containers[2]" (container with - // index 2 in this pod). This syntax is chosen only to have some well-defined way of - // referencing a part of an object. - // TODO: this design is not final and this field is subject to change in the future. - FieldPath string `json:"fieldPath,omitempty" description:"if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]"` -} - -// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. -type LocalObjectReference struct { - //TODO: Add other useful fields. apiVersion, kind, uid? - Name string `json:"name,omitempty" description:"name of the referent"` -} - -type SerializedReference struct { - TypeMeta `json:",inline"` - Reference ObjectReference `json:"reference,omitempty" description:"the reference to an object in the system"` -} - -// Event is a report of an event somewhere in the cluster. -// TODO: Decide whether to store these separately or with the object they apply to. -// -// http://docs.k8s.io/pod-states.md#events -type Event struct { - TypeMeta `json:",inline"` - - // Required. The object that this event is about. - InvolvedObject ObjectReference `json:"involvedObject,omitempty" description:"object that this event is about"` - - // Should be a short, machine understandable string that describes the current status - // of the referred object. This should not give the reason for being in this state. - // Examples: "Running", "CantStart", "CantSchedule", "Deleted". - // It's OK for components to make up statuses to report here, but the same string should - // always be used for the same status. - // TODO: define a way of making sure these are consistent and don't collide. - // TODO: provide exact specification for format. - // DEPRECATED: Status (a.k.a Condition) value will be ignored. - Status string `json:"status,omitempty" description:"short, machine understandable string that describes the current status of the referred object"` - - // Optional; this should be a short, machine understandable string that gives the reason - // for the transition into the object's current status. For example, if ObjectStatus is - // "CantStart", Reason might be "ImageNotFound". - // TODO: provide exact specification for format. - Reason string `json:"reason,omitempty" description:"short, machine understandable string that gives the reason for the transition into the object's current status"` - - // Optional. A human-readable description of the status of this operation. - // TODO: decide on maximum length. - Message string `json:"message,omitempty" description:"human-readable description of the status of this operation"` - - // Optional. The component reporting this event. Should be a short machine understandable string. - // TODO: provide exact specification for format. - Source string `json:"source,omitempty" description:"component reporting this event; short machine understandable string"` - - // Host name on which the event is generated. - Host string `json:"host,omitempty" description:"host name on which this event was generated"` - - // The time at which the client recorded the event. (Time of server receipt is in TypeMeta.) - // Deprecated: Use InitialTimeStamp/LastSeenTimestamp/Count instead. - // For backwards compatability, this will map to IntialTimestamp. - Timestamp util.Time `json:"timestamp,omitempty" description:"time at which the client recorded the event"` - - // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.) - FirstTimestamp util.Time `json:"firstTimestamp,omitempty" description:"the time at which the event was first recorded"` - - // The time at which the most recent occurance of this event was recorded. - LastTimestamp util.Time `json:"lastTimestamp,omitempty" description:"the time at which the most recent occurance of this event was recorded"` - - // The number of times this event has occurred. - Count int `json:"count,omitempty" description:"the number of times this event has occurred"` -} - -// EventList is a list of events. -type EventList struct { - TypeMeta `json:",inline"` - Items []Event `json:"items" description:"list of events"` -} - -// ContainerManifest corresponds to the Container Manifest format, documented at: -// https://developers.google.com/compute/docs/containers/container_vms#container_manifest -// This is used as the representation of Kubernetes workloads. -// DEPRECATED: Replaced with Pod -type ContainerManifest struct { - // Required: This must be a supported version string, such as "v1beta1". - Version string `json:"version" description:"manifest version; must be v1beta1"` - // Required: This must be a DNS_SUBDOMAIN. - // TODO: ID on Manifest is deprecated and will be removed in the future. - ID string `json:"id" description:"manifest name; must be a DNS_SUBDOMAIN; cannot be updated"` - // TODO: UUID on Manifext is deprecated in the future once we are done - // with the API refactory. It is required for now to determine the instance - // of a Pod. - UUID types.UID `json:"uuid,omitempty" description:"manifest UUID; cannot be updated"` - Volumes []Volume `json:"volumes" description:"list of volumes that can be mounted by containers belonging to the pod"` - Containers []Container `json:"containers" description:"list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed"` - RestartPolicy RestartPolicy `json:"restartPolicy,omitempty" description:"restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways"` - // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. - // Value must be non-negative integer. The value zero indicates delete immediately. - // If this value is nil, the default grace period will be used instead. - // The grace period is the duration in seconds after the processes running in the pod are sent - // a termination signal and the time when the processes are forcibly halted with a kill signal. - // Set this value longer than the expected cleanup time for your process. - TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" description:"optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set, the default grace period will be used instead; the grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal; set this value longer than the expected cleanup time for your process"` - ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" description:"optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers; value must be a positive integer` - // Optional: Set DNS policy. Defaults to "ClusterFirst" - DNSPolicy DNSPolicy `json:"dnsPolicy,omitempty" description:"DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"` - // Uses the host's network namespace. If this option is set, the ports that will be - // used must be specified. - // Optional: Default to false. - HostNetwork bool `json:"hostNetwork,omitempty" description:"host networking requested for this pod"` - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. For example, - // in the case of docker, only DockerConfig type secrets are honored. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling the container images"` -} - -// ContainerManifestList is used to communicate container manifests to kubelet. -// DEPRECATED: Replaced with PodList -type ContainerManifestList struct { - TypeMeta `json:",inline"` - Items []ContainerManifest `json:"items" description:"list of pod container manifests"` -} - -// Backported from v1beta3 to replace ContainerManifest - -// DNSPolicy defines how a pod's DNS will be configured. -type DNSPolicy string - -const ( - // DNSClusterFirst indicates that the pod should use cluster DNS - // first, if it is available, then fall back on the default (as - // determined by kubelet) DNS settings. - DNSClusterFirst DNSPolicy = "ClusterFirst" - - // DNSDefault indicates that the pod should use the default (as - // determined by kubelet) DNS settings. - DNSDefault DNSPolicy = "Default" -) - -// PodSpec is a description of a pod -type PodSpec struct { - Volumes []Volume `json:"volumes" description:"list of volumes that can be mounted by containers belonging to the pod"` - // Required: there must be at least one container in a pod. - Containers []Container `json:"containers" description:"list of containers belonging to the pod; containers cannot currently be added or removed; there must be at least one container in a Pod"` - RestartPolicy RestartPolicy `json:"restartPolicy,omitempty" description:"restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever; defaults to RestartPolicyAlways"` - // Optional: Set DNS policy. Defaults to "ClusterFirst" - DNSPolicy DNSPolicy `json:"dnsPolicy,omitempty" description:"DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"` - // NodeSelector is a selector which must be true for the pod to fit on a node - NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"selector which must match a node's labels for the pod to be scheduled on that node"` - - // Host is a request to schedule this pod onto a specific host. If it is non-empty, - // the the scheduler simply schedules this pod onto that host, assuming that it fits - // resource requirements. - Host string `json:"host,omitempty" description:"host requested for this pod"` - // Uses the host's network namespace. If this option is set, the ports that will be - // used must be specified. - // Optional: Default to false. - HostNetwork bool `json:"hostNetwork,omitempty" description:"host networking requested for this pod"` - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. For example, - // in the case of docker, only DockerConfig type secrets are honored. - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty" description:"list of references to secrets in the same namespace available for pulling the container images"` -} - -// List holds a list of objects, which may not be known by the server. -type List struct { - TypeMeta `json:",inline"` - Items []runtime.RawExtension `json:"items" description:"list of objects"` -} - -// A type of object that is limited -type LimitType string - -const ( - // Limit that applies to all pods in a namespace - LimitTypePod LimitType = "Pod" - // Limit that applies to all containers in a namespace - LimitTypeContainer LimitType = "Container" -) - -// LimitRangeItem defines a min/max usage limit for any resource that matches on kind -type LimitRangeItem struct { - // Type of resource that this limit applies to - Type LimitType `json:"type,omitempty" description:"type of resource that this limit applies to"` - // Max usage constraints on this kind by resource name - Max ResourceList `json:"max,omitempty" description:"max usage constraints on this kind by resource name"` - // Min usage constraints on this kind by resource name - Min ResourceList `json:"min,omitempty" description:"min usage constraints on this kind by resource name"` - // Default usage constraints on this kind by resource name - Default ResourceList `json:"default,omitempty" description:"default values on this kind by resource name if omitted"` -} - -// LimitRangeSpec defines a min/max usage limit for resources that match on kind -type LimitRangeSpec struct { - // Limits is the list of LimitRangeItem objects that are enforced - Limits []LimitRangeItem `json:"limits" description:"limits is the list of LimitRangeItem objects that are enforced"` -} - -// LimitRange sets resource usage limits for each kind of resource in a Namespace -type LimitRange struct { - TypeMeta `json:",inline"` - - // Spec defines the limits enforced - Spec LimitRangeSpec `json:"spec,omitempty" description:"spec defines the limits enforced"` -} - -// LimitRangeList is a list of LimitRange items. -type LimitRangeList struct { - TypeMeta `json:",inline"` - - // Items is a list of LimitRange objects - Items []LimitRange `json:"items" description:"items is a list of LimitRange objects"` -} - -// The following identify resource constants for Kubernetes object types -const ( - // Pods, number - ResourcePods ResourceName = "pods" - // Services, number - ResourceServices ResourceName = "services" - // ReplicationControllers, number - ResourceReplicationControllers ResourceName = "replicationcontrollers" - // ResourceQuotas, number - ResourceQuotas ResourceName = "resourcequotas" - // ResourceSecrets, number - ResourceSecrets ResourceName = "secrets" - // ResourcePersistentVolumeClaims, number - ResourcePersistentVolumeClaims ResourceName = "persistentvolumeclaims" -) - -// ResourceQuotaSpec defines the desired hard limits to enforce for Quota -type ResourceQuotaSpec struct { - // Hard is the set of desired hard limits for each named resource - Hard ResourceList `json:"hard,omitempty" description:"hard is the set of desired hard limits for each named resource"` -} - -// ResourceQuotaStatus defines the enforced hard limits and observed use -type ResourceQuotaStatus struct { - // Hard is the set of enforced hard limits for each named resource - Hard ResourceList `json:"hard,omitempty" description:"hard is the set of enforced hard limits for each named resource"` - // Used is the current observed total usage of the resource in the namespace - Used ResourceList `json:"used,omitempty" description:"used is the current observed total usage of the resource in the namespace"` -} - -// ResourceQuota sets aggregate quota restrictions enforced per namespace -type ResourceQuota struct { - TypeMeta `json:",inline"` - Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize resource quotas"` - // Spec defines the desired quota - Spec ResourceQuotaSpec `json:"spec,omitempty" description:"spec defines the desired quota"` - - // Status defines the actual enforced quota and its current usage - Status ResourceQuotaStatus `json:"status,omitempty" description:"status defines the actual enforced quota and current usage"` -} - -// ResourceQuotaList is a list of ResourceQuota items -type ResourceQuotaList struct { - TypeMeta `json:",inline"` - - // Items is a list of ResourceQuota objects - Items []ResourceQuota `json:"items" description:"items is a list of ResourceQuota objects"` -} - -// NFSVolumeSource represents an NFS mount that lasts the lifetime of a pod -type NFSVolumeSource struct { - // Server is the hostname or IP address of the NFS server - Server string `json:"server" description:"the hostname or IP address of the NFS server"` - - // Path is the exported NFS share - Path string `json:"path" description:"the path that is exported by the NFS server"` - - // Optional: Defaults to false (read/write). ReadOnly here will force - // the NFS export to be mounted with read-only permissions - ReadOnly bool `json:"readOnly,omitempty" description:"forces the NFS export to be mounted with read-only permissions"` -} - -// Secret holds secret data of a certain type. The total bytes of the values in -// the Data field must be less than MaxSecretSize bytes. -// -// http://docs.k8s.io/design/secrets.md -type Secret struct { - TypeMeta `json:",inline"` - - // Data contains the secret data. Each key must be a valid DNS_SUBDOMAIN - // or leading dot followed by valid DNS_SUBDOMAIN. - // The serialized form of the secret data is a base64 encoded string, - // representing the arbitrary (possibly non-string) data value here. - Data map[string][]byte `json:"data,omitempty" description:"data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4"` - - // Used to facilitate programmatic handling of secret data. - Type SecretType `json:"type,omitempty" description:"type facilitates programmatic handling of secret data"` -} - -const MaxSecretSize = 1 * 1024 * 1024 - -type SecretType string - -const ( - // SecretTypeOpaque is the default; arbitrary user-defined data - SecretTypeOpaque SecretType = "Opaque" - - // SecretTypeServiceAccountToken contains a token that identifies a service account to the API - // - // Required fields: - // - Secret.Annotations["kubernetes.io/service-account.name"] - the name of the ServiceAccount the token identifies - // - Secret.Annotations["kubernetes.io/service-account.uid"] - the UID of the ServiceAccount the token identifies - // - Secret.Data["token"] - a token that identifies the service account to the API - SecretTypeServiceAccountToken SecretType = "kubernetes.io/service-account-token" - - // ServiceAccountNameKey is the key of the required annotation for SecretTypeServiceAccountToken secrets - ServiceAccountNameKey = "kubernetes.io/service-account.name" - // ServiceAccountUIDKey is the key of the required annotation for SecretTypeServiceAccountToken secrets - ServiceAccountUIDKey = "kubernetes.io/service-account.uid" - // ServiceAccountTokenKey is the key of the required data for SecretTypeServiceAccountToken secrets - ServiceAccountTokenKey = "token" - // ServiceAccountKubeconfigKey is the key of the optional kubeconfig data for SecretTypeServiceAccountToken secrets - ServiceAccountKubeconfigKey = "kubernetes.kubeconfig" - - // SecretTypeDockercfg contains a dockercfg file that follows the same format rules as ~/.dockercfg - // - // Required fields: - // - Secret.Data[".dockercfg"] - a serialized ~/.dockercfg file - SecretTypeDockercfg SecretType = "kubernetes.io/dockercfg" - - // DockerConfigKey is the key of the required data for SecretTypeDockercfg secrets - DockerConfigKey = ".dockercfg" -) - -type SecretList struct { - TypeMeta `json:",inline"` - - Items []Secret `json:"items" description:"items is a list of secret objects"` -} - -// Type and constants for component health validation. -type ComponentConditionType string - -// These are the valid conditions for the component. -const ( - ComponentHealthy ComponentConditionType = "Healthy" -) - -type ComponentCondition struct { - Type ComponentConditionType `json:"type" description:"type of component condition, currently only Healthy"` - Status ConditionStatus `json:"status" description:"current status of this component condition, one of Full, None, Unknown"` - Message string `json:"message,omitempty" description:"health check message received from the component"` - Error string `json:"error,omitempty" description:"error code from health check attempt (if any)"` -} - -// ComponentStatus (and ComponentStatusList) holds the cluster validation info. -type ComponentStatus struct { - TypeMeta `json:",inline"` - - Name string `json:"name,omitempty" description:"name of the component"` - Conditions []ComponentCondition `json:"conditions,omitempty" description:"list of component conditions observed"` -} - -type ComponentStatusList struct { - TypeMeta `json:",inline"` - - Items []ComponentStatus `json:"items" description:"list of component status objects"` -} - -// SecurityContext holds security configuration that will be applied to a container. SecurityContext -// contains duplication of some existing fields from the Container resource. These duplicate fields -// will be populated based on the Container configuration if they are not set. Defining them on -// both the Container AND the SecurityContext will result in an error. -type SecurityContext struct { - // Capabilities are the capabilities to add/drop when running the container - // Must match Container.Capabilities or be unset. Will be defaulted to Container.Capabilities if left unset - Capabilities *Capabilities `json:"capabilities,omitempty" description:"the linux capabilites that should be added or removed"` - - // Run the container in privileged mode - // Must match Container.Privileged or be unset. Will be defaulted to Container.Privileged if left unset - Privileged *bool `json:"privileged,omitempty" description:"run the container in privileged mode"` - - // SELinuxOptions are the labels to be applied to the container - // and volumes - SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" description:"options that control the SELinux labels applied"` - - // RunAsUser is the UID to run the entrypoint of the container process. - RunAsUser *int64 `json:"runAsUser,omitempty" description:"the user id that runs the first process in the container"` -} - -// SELinuxOptions are the labels to be applied to the container. -type SELinuxOptions struct { - // SELinux user label - User string `json:"user,omitempty" description:"the user label to apply to the container"` - - // SELinux role label - Role string `json:"role,omitempty" description:"the role label to apply to the container"` - - // SELinux type label - Type string `json:"type,omitempty" description:"the type label to apply to the container"` - - // SELinux level label. - Level string `json:"level,omitempty" description:"the level label to apply to the container"` -} - -// RangeAllocation is not a public type -type RangeAllocation struct { - TypeMeta `json:",inline"` - - Range string `json:"range" description:"a range string that identifies the range represented by 'data'; required"` - Data []byte `json:"data" description:"a bit array containing all allocated addresses in the previous segment"` -} diff --git a/pkg/apiserver/apiserver_test.go b/pkg/apiserver/apiserver_test.go index 18766e540fe..1ff5cfd7f5e 100644 --- a/pkg/apiserver/apiserver_test.go +++ b/pkg/apiserver/apiserver_test.go @@ -37,8 +37,6 @@ import ( apierrs "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/rest" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" "github.com/GoogleCloudPlatform/kubernetes/pkg/fields" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" @@ -55,20 +53,13 @@ func convert(obj runtime.Object) (runtime.Object, error) { return obj, nil } -// This creates a fake API version, similar to api/latest.go for a v1beta1 equivalent api. It is distinct -// from the Kubernetes API versions to allow clients to properly distinguish the two. +// This creates fake API versions, similar to api/latest.go. const testVersion = "version" +const newVersion = "version2" -// The equivalent of the Kubernetes v1beta3 API. -const testVersion2 = "version2" - -var versions = []string{testVersion, testVersion2} -var legacyCodec = runtime.CodecFor(api.Scheme, testVersion) -var codec = runtime.CodecFor(api.Scheme, testVersion2) - -// these codecs reflect ListOptions/DeleteOptions coming from the serverAPIversion -var versionServerCodec = runtime.CodecFor(api.Scheme, "v1beta1") -var version2ServerCodec = runtime.CodecFor(api.Scheme, "v1beta3") +var versions = []string{testVersion, newVersion} +var codec = runtime.CodecFor(api.Scheme, testVersion) +var newCodec = runtime.CodecFor(api.Scheme, newVersion) var accessor = meta.NewAccessor() var versioner runtime.ResourceVersioner = accessor @@ -81,13 +72,13 @@ func interfacesFor(version string) (*meta.VersionInterfaces, error) { switch version { case testVersion: return &meta.VersionInterfaces{ - Codec: legacyCodec, + Codec: codec, ObjectConvertor: api.Scheme, MetadataAccessor: accessor, }, nil - case testVersion2: + case newVersion: return &meta.VersionInterfaces{ - Codec: codec, + Codec: newCodec, ObjectConvertor: api.Scheme, MetadataAccessor: accessor, }, nil @@ -109,26 +100,44 @@ func newMapper() *meta.DefaultRESTMapper { ) } +func addTestTypes() { + type ListOptions struct { + runtime.Object + api.TypeMeta `json:",inline"` + LabelSelector string `json:"labels,omitempty"` + FieldSelector string `json:"fields,omitempty"` + Watch bool `json:"watch,omitempty"` + ResourceVersion string `json:"resourceVersion,omitempty"` + } + api.Scheme.AddKnownTypes(testVersion, &Simple{}, &SimpleList{}, &api.Status{}, &ListOptions{}, &api.DeleteOptions{}, &SimpleGetOptions{}, &SimpleRoot{}) +} + +func addNewTestTypes() { + type ListOptions struct { + runtime.Object + api.TypeMeta `json:",inline"` + LabelSelector string `json:"labelSelector,omitempty"` + FieldSelector string `json:"fieldSelector,omitempty"` + Watch bool `json:"watch,omitempty"` + ResourceVersion string `json:"resourceVersion,omitempty"` + } + api.Scheme.AddKnownTypes(newVersion, &Simple{}, &SimpleList{}, &api.Status{}, &ListOptions{}, &api.DeleteOptions{}, &SimpleGetOptions{}, &SimpleRoot{}) +} + func init() { // Certain API objects are returned regardless of the contents of storage: // api.Status is returned in errors // "internal" version api.Scheme.AddKnownTypes("", &Simple{}, &SimpleList{}, &api.Status{}, &api.ListOptions{}, &SimpleGetOptions{}, &SimpleRoot{}) - // "version" version - // TODO: Use versioned api objects? - api.Scheme.AddKnownTypes(testVersion, &Simple{}, &SimpleList{}, &v1beta1.Status{}, &SimpleGetOptions{}, &SimpleRoot{}) - // "version2" version - // TODO: Use versioned api objects? - api.Scheme.AddKnownTypes(testVersion2, &Simple{}, &SimpleList{}, &v1beta3.Status{}, &SimpleGetOptions{}, &SimpleRoot{}) - - // Register SimpleGetOptions with the server versions to convert query params to it - api.Scheme.AddKnownTypes("v1beta1", &SimpleGetOptions{}) - api.Scheme.AddKnownTypes("v1beta3", &SimpleGetOptions{}) + addTestTypes() + addNewTestTypes() nsMapper := newMapper() legacyNsMapper := newMapper() - // enumerate all supported versions, get the kinds, and register with the mapper how to address our resources + + // enumerate all supported versions, get the kinds, and register with + // the mapper how to address our resources for _, version := range versions { for kind := range api.Scheme.KnownTypes(version) { mixedCase := true @@ -149,13 +158,12 @@ func init() { admissionControl = admit.NewAlwaysAdmit() requestContextMapper = api.NewRequestContextMapper() - //mapper.(*meta.DefaultRESTMapper).Add(meta.RESTScopeNamespaceLegacy, "Simple", testVersion, false) api.Scheme.AddFieldLabelConversionFunc(testVersion, "Simple", func(label, value string) (string, string, error) { return label, value, nil }, ) - api.Scheme.AddFieldLabelConversionFunc(testVersion2, "Simple", + api.Scheme.AddFieldLabelConversionFunc(newVersion, "Simple", func(label, value string) (string, string, error) { return label, value, nil }, @@ -210,13 +218,13 @@ func handleInternal(legacy bool, storage map[string]rest.Storage, admissionContr } if legacy { group.Version = testVersion - group.ServerVersion = "v1beta1" - group.Codec = legacyCodec + group.ServerVersion = testVersion + group.Codec = codec group.Mapper = legacyNamespaceMapper } else { - group.Version = testVersion2 - group.ServerVersion = "v1beta3" - group.Codec = codec + group.Version = newVersion + group.ServerVersion = newVersion + group.Codec = newCodec group.Mapper = namespaceMapper } @@ -757,7 +765,7 @@ func TestList(t *testing.T) { selfLink: "/api/version/simple?namespace=", legacy: true, }, - // list items in a namespace, v1beta3+ + // list items in a namespace in the path { url: "/api/version2/namespaces/default/simple", namespace: "default", @@ -1378,7 +1386,7 @@ func TestDeleteWithOptions(t *testing.T) { item := &api.DeleteOptions{ GracePeriodSeconds: &grace, } - body, err := versionServerCodec.Encode(item) + body, err := codec.Encode(item) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -1439,7 +1447,7 @@ func TestLegacyDeleteIgnoresOptions(t *testing.T) { defer server.Close() item := api.NewDeleteOptions(300) - body, err := versionServerCodec.Encode(item) + body, err := codec.Encode(item) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -1888,9 +1896,9 @@ func TestParentResourceIsRequired(t *testing.T) { Context: requestContextMapper, Mapper: namespaceMapper, - Version: testVersion2, - ServerVersion: "v1beta3", - Codec: codec, + Version: newVersion, + ServerVersion: newVersion, + Codec: newCodec, } container := restful.NewContainer() if err := group.InstallREST(container); err == nil { @@ -1916,9 +1924,9 @@ func TestParentResourceIsRequired(t *testing.T) { Context: requestContextMapper, Mapper: namespaceMapper, - Version: testVersion2, - ServerVersion: "v1beta3", - Codec: codec, + Version: newVersion, + ServerVersion: newVersion, + Codec: newCodec, } container = restful.NewContainer() if err := group.InstallREST(container); err != nil { diff --git a/pkg/apiserver/watch_test.go b/pkg/apiserver/watch_test.go index 501f829219d..6143ed92c1c 100644 --- a/pkg/apiserver/watch_test.go +++ b/pkg/apiserver/watch_test.go @@ -303,7 +303,7 @@ func TestWatchHTTPTimeout(t *testing.T) { // Setup a new watchserver watchServer := &WatchServer{ watcher, - version2ServerCodec, + newCodec, func(obj runtime.Object) {}, &fakeTimeoutFactory{timeoutCh, done}, } @@ -315,13 +315,13 @@ func TestWatchHTTPTimeout(t *testing.T) { // Setup a client dest, _ := url.Parse(s.URL) - dest.Path = "/api/version/watch/resource" - dest.RawQuery = "" + dest.Path = "/api/" + newVersion + "/simple" + dest.RawQuery = "watch=true" req, _ := http.NewRequest("GET", dest.String(), nil) client := http.Client{} resp, err := client.Do(req) - watcher.Add(&api.Pod{TypeMeta: api.TypeMeta{APIVersion: "v1beta3"}}) + watcher.Add(&Simple{TypeMeta: api.TypeMeta{APIVersion: newVersion}}) // Make sure we can actually watch an endpoint decoder := json.NewDecoder(resp.Body) diff --git a/pkg/kubectl/cmd/exec_test.go b/pkg/kubectl/cmd/exec_test.go index 05e5f9ecb78..ad75b6cce38 100644 --- a/pkg/kubectl/cmd/exec_test.go +++ b/pkg/kubectl/cmd/exec_test.go @@ -106,14 +106,6 @@ func TestExec(t *testing.T) { pod *api.Pod execErr bool }{ - { - name: "v1beta1 - pod exec", - version: "v1beta1", - podPath: "/api/v1beta1/pods/foo", - execPath: "/api/v1beta1/pods/foo/exec", - nsInQuery: true, - pod: execPod(), - }, { name: "v1beta3 - pod exec", version: "v1beta3", diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index 8ea6e6dbca0..d68b4d2a095 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -155,10 +155,10 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { obj2 string }{ "handles specific version": { - output: "v1beta3", - list: "v1beta3", + output: "v1", + list: "v1", obj1: "unlikelyversion", - obj2: "v1beta3", + obj2: "v1", }, "handles second specific version": { output: "unlikelyversion", @@ -167,14 +167,14 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { obj2: "v1beta3", // version of the API response }, "handles common version": { - output: "v1beta1", - list: "v1beta1", + output: "v1beta3", + list: "v1beta3", obj1: "unlikelyversion", // because test scheme defaults to unlikelyversion - obj2: "v1beta1", + obj2: "v1beta3", }, } for k, test := range testCases { - apiCodec := runtime.CodecFor(api.Scheme, "v1beta1") + apiCodec := runtime.CodecFor(api.Scheme, "v1beta3") regularClient := &client.FakeRESTClient{ Codec: apiCodec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { diff --git a/pkg/kubectl/cmd/log_test.go b/pkg/kubectl/cmd/log_test.go index c2860c9e76f..d4e88e205d4 100644 --- a/pkg/kubectl/cmd/log_test.go +++ b/pkg/kubectl/cmd/log_test.go @@ -156,14 +156,6 @@ func TestLog(t *testing.T) { nsInQuery bool pod *api.Pod }{ - { - name: "v1beta1 - pod log", - version: "v1beta1", - podPath: "/api/v1beta1/pods/foo", - logPath: "/api/v1beta1/pods/foo/log", - nsInQuery: true, - pod: testPod(), - }, { name: "v1beta3 - pod log", version: "v1beta3", diff --git a/pkg/kubectl/cmd/portforward_test.go b/pkg/kubectl/cmd/portforward_test.go index 757a388310d..fadcf94c5d7 100644 --- a/pkg/kubectl/cmd/portforward_test.go +++ b/pkg/kubectl/cmd/portforward_test.go @@ -45,14 +45,6 @@ func TestPortForward(t *testing.T) { pod *api.Pod pfErr bool }{ - { - name: "v1beta1 - pod portforward", - version: "v1beta1", - podPath: "/api/v1beta1/pods/foo", - pfPath: "/api/v1beta1/pods/foo/portforward", - nsInQuery: true, - pod: execPod(), - }, { name: "v1beta3 - pod portforward", version: "v1beta3", diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index 44b1e36c5c0..232eefea14a 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -43,7 +43,7 @@ func TestMerge(t *testing.T) { Name: "foo", }, }, - fragment: `{ "apiVersion": "v1beta1" }`, + fragment: `{ "apiVersion": "v1beta3" }`, expected: &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", @@ -94,25 +94,6 @@ func TestMerge(t *testing.T) { }, }, }, */ - { - kind: "Pod", - obj: &api.Pod{ - ObjectMeta: api.ObjectMeta{ - Name: "foo", - }, - }, - fragment: `{ "apiVersion": "v1beta1", "id": "baz", "desiredState": { "host": "bar" } }`, - expected: &api.Pod{ - ObjectMeta: api.ObjectMeta{ - Name: "baz", - }, - Spec: api.PodSpec{ - NodeName: "bar", - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - }, - }, - }, { kind: "Pod", obj: &api.Pod{ @@ -148,24 +129,6 @@ func TestMerge(t *testing.T) { expected: &api.Pod{}, expectErr: true, }, - { - kind: "Pod", - obj: &api.Pod{ - ObjectMeta: api.ObjectMeta{ - Name: "foo", - }, - }, - fragment: `{ "apiVersion": "v1beta1", "id": null}`, - expected: &api.Pod{ - ObjectMeta: api.ObjectMeta{ - Name: "", - }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - }, - }, - }, { kind: "Service", obj: &api.Service{}, @@ -177,11 +140,17 @@ func TestMerge(t *testing.T) { obj: &api.Service{ Spec: api.ServiceSpec{}, }, - fragment: `{ "apiVersion": "v1beta1", "port": 0 }`, + fragment: `{ "apiVersion": "v1beta3", "spec": { "ports": [ { "port": 0 } ] } }`, expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", Type: api.ServiceTypeClusterIP, + Ports: []api.ServicePort{ + { + Protocol: api.ProtocolTCP, + Port: 0, + }, + }, }, }, }, @@ -194,7 +163,7 @@ func TestMerge(t *testing.T) { }, }, }, - fragment: `{ "apiVersion": "v1beta1", "selector": { "version": "v2" } }`, + fragment: `{ "apiVersion": "v1beta3", "spec": { "selector": { "version": "v2" } } }`, expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", diff --git a/pkg/kubelet/config/common.go b/pkg/kubelet/config/common.go index 936944af44c..b757bba3aa7 100644 --- a/pkg/kubelet/config/common.go +++ b/pkg/kubelet/config/common.go @@ -24,14 +24,12 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet" "github.com/GoogleCloudPlatform/kubernetes/pkg/types" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" utilyaml "github.com/GoogleCloudPlatform/kubernetes/pkg/util/yaml" - "github.com/ghodss/yaml" "github.com/golang/glog" ) @@ -144,68 +142,3 @@ func tryDecodePodList(data []byte, defaultFn defaultFunc) (parsed bool, pods api } return true, *newPods, err } - -func tryDecodeSingleManifest(data []byte, defaultFn defaultFunc) (parsed bool, manifest v1beta1.ContainerManifest, pod *api.Pod, err error) { - // TODO: should be api.Scheme.Decode - // This is awful. DecodeInto() expects to find an APIObject, which - // Manifest is not. We keep reading manifest for now for compat, but - // we will eventually change it to read Pod (at which point this all - // becomes nicer). Until then, we assert that the ContainerManifest - // structure on disk is always v1beta1. Read that, convert it to a - // "current" ContainerManifest (should be ~identical), then convert - // that to a Pod (which is a well-understood conversion). This - // avoids writing a v1beta1.ContainerManifest -> api.Pod - // conversion which would be identical to the api.ContainerManifest -> - // api.Pod conversion. - pod = new(api.Pod) - if err = yaml.Unmarshal(data, &manifest); err != nil { - return false, manifest, pod, err - } - newManifest := api.ContainerManifest{} - if err = api.Scheme.Convert(&manifest, &newManifest); err != nil { - return false, manifest, pod, err - } - if errs := validation.ValidateManifest(&newManifest); len(errs) > 0 { - err = fmt.Errorf("invalid manifest: %v", errs) - return false, manifest, pod, err - } - if err = api.Scheme.Convert(&newManifest, pod); err != nil { - return true, manifest, pod, err - } - if err := defaultFn(pod); err != nil { - return true, manifest, pod, err - } - // Success. - return true, manifest, pod, nil -} - -func tryDecodeManifestList(data []byte, defaultFn defaultFunc) (parsed bool, manifests []v1beta1.ContainerManifest, pods api.PodList, err error) { - // TODO: should be api.Scheme.Decode - // See the comment in tryDecodeSingle(). - if err = yaml.Unmarshal(data, &manifests); err != nil { - return false, manifests, pods, err - } - newManifests := []api.ContainerManifest{} - if err = api.Scheme.Convert(&manifests, &newManifests); err != nil { - return false, manifests, pods, err - } - for i := range newManifests { - manifest := &newManifests[i] - if errs := validation.ValidateManifest(manifest); len(errs) > 0 { - err = fmt.Errorf("invalid manifest: %v", errs) - return false, manifests, pods, err - } - } - list := api.ContainerManifestList{Items: newManifests} - if err = api.Scheme.Convert(&list, &pods); err != nil { - return true, manifests, pods, err - } - for i := range pods.Items { - pod := &pods.Items[i] - if err := defaultFn(pod); err != nil { - return true, manifests, pods, err - } - } - // Success. - return true, manifests, pods, nil -} diff --git a/pkg/kubelet/config/file.go b/pkg/kubelet/config/file.go index 7bd58451e4d..3ef6a17f877 100644 --- a/pkg/kubelet/config/file.go +++ b/pkg/kubelet/config/file.go @@ -148,15 +148,6 @@ func (s *sourceFile) extractFromFile(filename string) (pod *api.Pod, err error) return s.applyDefaults(pod, filename) } - parsed, _, pod, manifestErr := tryDecodeSingleManifest(data, defaultFn) - if parsed { - if manifestErr != nil { - // It parsed but could not be used. - return pod, manifestErr - } - return pod, nil - } - parsed, pod, podErr := tryDecodeSinglePod(data, defaultFn) if parsed { if podErr != nil { @@ -165,7 +156,6 @@ func (s *sourceFile) extractFromFile(filename string) (pod *api.Pod, err error) return pod, nil } - return pod, fmt.Errorf("%v: read '%v', but couldn't parse as neither "+ - "manifest (%v) nor pod (%v).\n", - filename, string(data), manifestErr, podErr) + return pod, fmt.Errorf("%v: read '%v', but couldn't parse as pod(%v).\n", + filename, string(data), podErr) } diff --git a/pkg/kubelet/config/file_test.go b/pkg/kubelet/config/file_test.go index 901866e1c57..7d45ae479e2 100644 --- a/pkg/kubelet/config/file_test.go +++ b/pkg/kubelet/config/file_test.go @@ -17,22 +17,18 @@ limitations under the License. package config import ( - "encoding/json" "fmt" "io/ioutil" "os" - "sort" "testing" "time" "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" "github.com/GoogleCloudPlatform/kubernetes/pkg/securitycontext" - "github.com/GoogleCloudPlatform/kubernetes/pkg/types" ) func TestExtractFromNonExistentFile(t *testing.T) { @@ -339,111 +335,3 @@ func TestExtractFromEmptyDir(t *testing.T) { t.Errorf("Expected %#v, Got %#v", expected, update) } } - -func exampleManifestAndPod(id string) (v1beta1.ContainerManifest, *api.Pod) { - hostname := "an-example-host" - - manifest := v1beta1.ContainerManifest{ - Version: "v1beta1", - ID: id, - UUID: types.UID(id), - Containers: []v1beta1.Container{ - { - Name: "c" + id, - Image: "foo", - TerminationMessagePath: "/somepath", - }, - }, - Volumes: []v1beta1.Volume{ - { - Name: "host-dir", - Source: v1beta1.VolumeSource{ - HostDir: &v1beta1.HostPathVolumeSource{"/dir/path"}, - }, - }, - }, - } - expectedPod := &api.Pod{ - ObjectMeta: api.ObjectMeta{ - Name: id + "-" + hostname, - UID: types.UID(id), - Namespace: kubelet.NamespaceDefault, - SelfLink: getSelfLink(id+"-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - Containers: []api.Container{ - { - Name: "c" + id, - Image: "foo", - }, - }, - Volumes: []api.Volume{ - { - Name: "host-dir", - VolumeSource: api.VolumeSource{ - HostPath: &api.HostPathVolumeSource{"/dir/path"}, - }, - }, - }, - }, - } - return manifest, expectedPod -} - -func TestExtractFromDir(t *testing.T) { - if !api.PreV1Beta3(testapi.Version()) { - return - } - manifest, expectedPod := exampleManifestAndPod("1") - manifest2, expectedPod2 := exampleManifestAndPod("2") - - manifests := []v1beta1.ContainerManifest{manifest, manifest2} - pods := []*api.Pod{expectedPod, expectedPod2} - files := make([]*os.File, len(manifests)) - - dirName, err := ioutil.TempDir("", "foo") - if err != nil { - t.Fatalf("Unexpected error: %v", err) - } - - for i, manifest := range manifests { - data, err := json.Marshal(manifest) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - file, err := ioutil.TempFile(dirName, manifest.ID) - if err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - name := file.Name() - if err := file.Close(); err != nil { - t.Errorf("Unexpected error: %v", err) - continue - } - ioutil.WriteFile(name, data, 0755) - files[i] = file - } - - ch := make(chan interface{}, 1) - c := sourceFile{dirName, "an-example-host", ch} - err = c.extractFromPath() - if err != nil { - t.Fatalf("Unexpected error: %v", err) - } - - update := (<-ch).(kubelet.PodUpdate) - expected := CreatePodUpdate(kubelet.SET, kubelet.FileSource, pods...) - sort.Sort(sortedPods(update.Pods)) - sort.Sort(sortedPods(expected.Pods)) - if !api.Semantic.DeepDerivative(expected, update) { - t.Fatalf("Expected %#v, Got %#v", expected, update) - } - for _, pod := range update.Pods { - if errs := validation.ValidatePod(pod); len(errs) != 0 { - t.Errorf("Expected no validation errors on %#v, Got %q", pod, errs) - } - } -} diff --git a/pkg/kubelet/config/http.go b/pkg/kubelet/config/http.go index 6c2606bcfc8..e8d69f85290 100644 --- a/pkg/kubelet/config/http.go +++ b/pkg/kubelet/config/http.go @@ -77,50 +77,12 @@ func (s *sourceURL) extractFromURL() error { s.updates <- kubelet.PodUpdate{[]*api.Pod{}, kubelet.SET, kubelet.HTTPSource} return fmt.Errorf("zero-length data received from %v", s.url) } - // Short circuit if the manifest has not changed since the last time it was read. + // Short circuit if the data has not changed since the last time it was read. if bytes.Compare(data, s.data) == 0 { return nil } s.data = data - // First try as if it's a single manifest - parsed, manifest, pod, singleErr := tryDecodeSingleManifest(data, s.applyDefaults) - if parsed { - if singleErr != nil { - // It parsed but could not be used. - return singleErr - } - // It parsed! - s.updates <- kubelet.PodUpdate{[]*api.Pod{pod}, kubelet.SET, kubelet.HTTPSource} - return nil - } - - // That didn't work, so try an array of manifests. - parsed, manifests, podList, multiErr := tryDecodeManifestList(data, s.applyDefaults) - if parsed { - if multiErr != nil { - // It parsed but could not be used. - return multiErr - } - // A single manifest that did not pass semantic validation will yield an empty - // array of manifests (and no error) when unmarshaled as such. In that case, - // if the single manifest at least had a Version, we return the single-manifest - // error (if any). - if len(manifests) == 0 && len(manifest.Version) != 0 { - return singleErr - } - // It parsed! - pods := make([]*api.Pod, 0) - for i := range podList.Items { - pods = append(pods, &podList.Items[i]) - } - s.updates <- kubelet.PodUpdate{pods, kubelet.SET, kubelet.HTTPSource} - return nil - } - - // Parsing it as ContainerManifest(s) failed. - // Try to parse it as Pod(s). - // First try as it is a single pod. parsed, pod, singlePodErr := tryDecodeSinglePod(data, s.applyDefaults) if parsed { @@ -147,9 +109,7 @@ func (s *sourceURL) extractFromURL() error { return nil } - return fmt.Errorf("%v: received '%v', but couldn't parse as neither "+ - "single (%v: %+v) or multiple manifests (%v: %+v) nor "+ + return fmt.Errorf("%v: received '%v', but couldn't parse as "+ "single (%v) or multiple pods (%v).\n", - s.url, string(data), singleErr, manifest, multiErr, manifests, - singlePodErr, multiPodErr) + s.url, string(data), singlePodErr, multiPodErr) } diff --git a/pkg/kubelet/config/http_test.go b/pkg/kubelet/config/http_test.go index a724167f1ea..6843ac864b1 100644 --- a/pkg/kubelet/config/http_test.go +++ b/pkg/kubelet/config/http_test.go @@ -24,7 +24,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" @@ -118,195 +117,6 @@ func TestExtractInvalidManifest(t *testing.T) { } } -func TestExtractManifestFromHTTP(t *testing.T) { - hostname := "random-hostname" - // ContainerManifests are not supported v1beta3 onwards. - if api.PreV1Beta3(testapi.Version()) { - return - } - - var testCases = []struct { - desc string - manifests interface{} - expected kubelet.PodUpdate - }{ - { - desc: "Single manifest", - manifests: v1beta1.ContainerManifest{Version: "v1beta1", ID: "foo", UUID: "111", - Containers: []v1beta1.Container{{Name: "1", Image: "foo", ImagePullPolicy: v1beta1.PullAlways}}}, - expected: CreatePodUpdate(kubelet.SET, - kubelet.HTTPSource, - &api.Pod{ - ObjectMeta: api.ObjectMeta{ - UID: "111", - Name: "foo" + "-" + hostname, - Namespace: "foobar", - - SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{ - Name: "1", - Image: "foo", - TerminationMessagePath: "/dev/termination-log", - ImagePullPolicy: "Always", - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults()}}, - }, - }), - }, - { - desc: "Single manifest without ID", - manifests: v1beta1.ContainerManifest{Version: "v1beta1", UUID: "111", - Containers: []v1beta1.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}}, - expected: CreatePodUpdate(kubelet.SET, - kubelet.HTTPSource, - &api.Pod{ - ObjectMeta: api.ObjectMeta{ - UID: "111", - Name: "111" + "-" + hostname, - Namespace: "foobar", - - SelfLink: getSelfLink("111-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{ - Name: "ctr", - Image: "image", - TerminationMessagePath: "/dev/termination-log", - ImagePullPolicy: "IfNotPresent", - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults()}}, - }, - }), - }, - { - desc: "Single manifest with v1beta2", - manifests: v1beta1.ContainerManifest{Version: "v1beta2", ID: "foo", UUID: "111", - Containers: []v1beta1.Container{{Name: "1", Image: "foo", ImagePullPolicy: v1beta1.PullAlways}}}, - expected: CreatePodUpdate(kubelet.SET, - kubelet.HTTPSource, - &api.Pod{ - ObjectMeta: api.ObjectMeta{ - UID: "111", - Name: "foo" + "-" + hostname, - Namespace: "foobar", - - SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{ - Name: "1", - Image: "foo", - TerminationMessagePath: "/dev/termination-log", - ImagePullPolicy: "Always", - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults()}}, - }, - }), - }, - { - desc: "Multiple manifests", - manifests: []v1beta1.ContainerManifest{ - {Version: "v1beta1", ID: "foo", UUID: "111", - Containers: []v1beta1.Container{{Name: "1", Image: "foo", ImagePullPolicy: v1beta1.PullAlways}}}, - {Version: "v1beta1", ID: "bar", UUID: "222", - Containers: []v1beta1.Container{{Name: "1", Image: "foo", ImagePullPolicy: ""}}}, - }, - expected: CreatePodUpdate(kubelet.SET, - kubelet.HTTPSource, - &api.Pod{ - ObjectMeta: api.ObjectMeta{ - UID: "111", - Name: "foo" + "-" + hostname, - Namespace: "foobar", - - SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{ - Name: "1", - Image: "foo", - TerminationMessagePath: "/dev/termination-log", - ImagePullPolicy: "Always", - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults()}}, - }, - }, - &api.Pod{ - ObjectMeta: api.ObjectMeta{ - UID: "222", - Name: "bar" + "-" + hostname, - Namespace: "foobar", - - SelfLink: getSelfLink("bar-"+hostname, kubelet.NamespaceDefault), - }, - Spec: api.PodSpec{ - NodeName: hostname, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{ - Name: "1", - Image: "foo", - TerminationMessagePath: "/dev/termination-log", - ImagePullPolicy: "IfNotPresent", - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults()}}, - }, - }), - }, - { - desc: "Empty Array", - manifests: []v1beta1.ContainerManifest{}, - expected: CreatePodUpdate(kubelet.SET, kubelet.HTTPSource), - }, - } - - for _, testCase := range testCases { - data, err := json.Marshal(testCase.manifests) - if err != nil { - t.Fatalf("%s: Some weird json problem: %v", testCase.desc, err) - } - fakeHandler := util.FakeHandler{ - StatusCode: 200, - ResponseBody: string(data), - } - testServer := httptest.NewServer(&fakeHandler) - defer testServer.Close() - ch := make(chan interface{}, 1) - c := sourceURL{testServer.URL, hostname, ch, nil} - if err := c.extractFromURL(); err != nil { - t.Errorf("%s: Unexpected error: %v", testCase.desc, err) - continue - } - update := (<-ch).(kubelet.PodUpdate) - - for i := range update.Pods { - // There's no way to provide namespace in ContainerManifest, so - // it will be defaulted. - if update.Pods[i].Namespace != kubelet.NamespaceDefault { - t.Errorf("Unexpected namespace: %s", update.Pods[0].Namespace) - } - update.Pods[i].ObjectMeta.Namespace = "foobar" - } - if !api.Semantic.DeepEqual(testCase.expected, update) { - t.Errorf("%s: Expected: %#v, Got: %#v", testCase.desc, testCase.expected, update) - } - for _, pod := range update.Pods { - if errs := validation.ValidatePod(pod); len(errs) != 0 { - t.Errorf("%s: Expected no validation errors on %#v, Got %v", testCase.desc, pod, errors.NewAggregate(errs)) - } - } - } -} - func TestExtractPodsFromHTTP(t *testing.T) { hostname := "different-value" diff --git a/pkg/master/master.go b/pkg/master/master.go index 6acaf36dd3b..577b93a9e16 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -33,8 +33,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/rest" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" "github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver" "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/authenticator" @@ -91,10 +89,6 @@ type Config struct { EnableUISupport bool // allow downstream consumers to disable swagger EnableSwaggerSupport bool - // allow v1beta1 to be conditionally disabled - DisableV1Beta1 bool - // allow v1beta2 to be conditionally disabled - DisableV1Beta2 bool // allow v1beta3 to be conditionally disabled DisableV1Beta3 bool // allow v1 to be conditionally enabled @@ -170,8 +164,6 @@ type Master struct { authorizer authorizer.Authorizer admissionControl admission.Interface masterCount int - v1beta1 bool - v1beta2 bool v1beta3 bool v1 bool requestContextMapper api.RequestContextMapper @@ -328,8 +320,6 @@ func New(c *Config) *Master { authenticator: c.Authenticator, authorizer: c.Authorizer, admissionControl: c.AdmissionControl, - v1beta1: !c.DisableV1Beta1, - v1beta2: !c.DisableV1Beta2, v1beta3: !c.DisableV1Beta3, v1: c.EnableV1, requestContextMapper: c.RequestContextMapper, @@ -501,18 +491,6 @@ func (m *Master) init(c *Config) { } apiVersions := []string{} - if m.v1beta1 { - if err := m.api_v1beta1().InstallREST(m.handlerContainer); err != nil { - glog.Fatalf("Unable to setup API v1beta1: %v", err) - } - apiVersions = append(apiVersions, "v1beta1") - } - if m.v1beta2 { - if err := m.api_v1beta2().InstallREST(m.handlerContainer); err != nil { - glog.Fatalf("Unable to setup API v1beta2: %v", err) - } - apiVersions = append(apiVersions, "v1beta2") - } if m.v1beta3 { if err := m.api_v1beta3().InstallREST(m.handlerContainer); err != nil { glog.Fatalf("Unable to setup API v1beta3: %v", err) @@ -718,38 +696,6 @@ func (m *Master) defaultAPIGroupVersion() *apiserver.APIGroupVersion { } } -// api_v1beta1 returns the resources and codec for API version v1beta1. -func (m *Master) api_v1beta1() *apiserver.APIGroupVersion { - storage := make(map[string]rest.Storage) - for k, v := range m.storage { - if k == "podTemplates" { - continue - } - storage[k] = v - } - version := m.defaultAPIGroupVersion() - version.Storage = storage - version.Version = "v1beta1" - version.Codec = v1beta1.Codec - return version -} - -// api_v1beta2 returns the resources and codec for API version v1beta2. -func (m *Master) api_v1beta2() *apiserver.APIGroupVersion { - storage := make(map[string]rest.Storage) - for k, v := range m.storage { - if k == "podTemplates" { - continue - } - storage[k] = v - } - version := m.defaultAPIGroupVersion() - version.Storage = storage - version.Version = "v1beta2" - version.Codec = v1beta2.Codec - return version -} - // api_v1beta3 returns the resources and codec for API version v1beta3. func (m *Master) api_v1beta3() *apiserver.APIGroupVersion { storage := make(map[string]rest.Storage) diff --git a/pkg/service/endpoints_controller.go b/pkg/service/endpoints_controller.go index 166760246b8..e6d8e30a0d7 100644 --- a/pkg/service/endpoints_controller.go +++ b/pkg/service/endpoints_controller.go @@ -24,8 +24,6 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/endpoints" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" - "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" "github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/client/cache" "github.com/GoogleCloudPlatform/kubernetes/pkg/controller/framework" @@ -302,12 +300,6 @@ func (e *EndpointController) syncService(key string) { for i := range service.Spec.Ports { servicePort := &service.Spec.Ports[i] - // 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 - portName := servicePort.Name portProto := servicePort.Protocol portNum, err := findPort(pod, servicePort) @@ -398,32 +390,14 @@ func (e *EndpointController) checkLeftoverEndpoints() { } } -func findDefaultPort(pod *api.Pod, servicePort int, proto api.Protocol) int { - for _, container := range pod.Spec.Containers { - for _, port := range container.Ports { - if port.Protocol == proto { - return port.ContainerPort - } - } - } - return servicePort -} - -// findPort locates the container port for the given manifest and portName. -// If the targetPort is a non-zero number, use that. If the targetPort is 0 or -// not specified, use the first defined port with the same protocol. If no port -// is defined, use the service's port. If the targetPort is an empty string use -// the first defined port with the same protocol. If no port is defined, use -// the service's port. If the targetPort is a non-empty string, look that +// findPort locates the container port for the given pod and portName. If the +// targetPort is a number, use that. If the targetPort is a string, look that // string up in all named ports in all containers in the target pod. If no // match is found, fail. func findPort(pod *api.Pod, svcPort *api.ServicePort) (int, error) { portName := svcPort.TargetPort switch portName.Kind { case util.IntstrString: - if len(portName.StrVal) == 0 { - return findDefaultPort(pod, svcPort.Port, svcPort.Protocol), nil - } name := portName.StrVal for _, container := range pod.Spec.Containers { for _, port := range container.Ports { @@ -433,9 +407,6 @@ func findPort(pod *api.Pod, svcPort *api.ServicePort) (int, error) { } } case util.IntstrInt: - if portName.IntVal == 0 { - return findDefaultPort(pod, svcPort.Port, svcPort.Protocol), nil - } return portName.IntVal, nil } diff --git a/pkg/service/endpoints_controller_test.go b/pkg/service/endpoints_controller_test.go index d0d626fa788..d2add23e058 100644 --- a/pkg/service/endpoints_controller_test.go +++ b/pkg/service/endpoints_controller_test.go @@ -63,7 +63,6 @@ func addPods(store cache.Store, namespace string, nPods int, nPorts int) { } func TestFindPort(t *testing.T) { - servicePort := 999 testCases := []struct { name string containers []api.Container @@ -90,74 +89,6 @@ func TestFindPort(t *testing.T) { port: util.NewIntOrStringFromInt(93), expected: 93, pass: true, - }, { - name: "zero int, no ports", - containers: []api.Container{{}}, - port: util.NewIntOrStringFromInt(0), - expected: servicePort, - pass: true, - }, { - name: "zero int, one ctr with ports", - containers: []api.Container{{Ports: []api.ContainerPort{{ - Name: "", - ContainerPort: 11, - Protocol: "UDP", - }, { - Name: "p", - ContainerPort: 22, - Protocol: "TCP", - }}}}, - port: util.NewIntOrStringFromInt(0), - expected: 22, - pass: true, - }, { - name: "zero int, two ctr with ports", - containers: []api.Container{{}, {Ports: []api.ContainerPort{{ - Name: "", - ContainerPort: 11, - Protocol: "UDP", - }, { - Name: "p", - ContainerPort: 22, - Protocol: "TCP", - }}}}, - port: util.NewIntOrStringFromInt(0), - expected: 22, - pass: true, - }, { - name: "empty str, no ports", - containers: []api.Container{{}}, - port: util.NewIntOrStringFromString(""), - expected: servicePort, - pass: true, - }, { - name: "empty str, one ctr with ports", - containers: []api.Container{{Ports: []api.ContainerPort{{ - Name: "", - ContainerPort: 11, - Protocol: "UDP", - }, { - Name: "p", - ContainerPort: 22, - Protocol: "TCP", - }}}}, - port: util.NewIntOrStringFromString(""), - expected: 22, - pass: true, - }, { - name: "empty str, two ctr with ports", - containers: []api.Container{{}, {Ports: []api.ContainerPort{{ - Name: "", - ContainerPort: 11, - Protocol: "UDP", - }, { - Name: "p", - ContainerPort: 22, - Protocol: "TCP", - }}}}, - port: util.NewIntOrStringFromString(""), - expected: 22, - pass: true, }, { name: "valid str, no ports", containers: []api.Container{{}}, @@ -204,7 +135,7 @@ func TestFindPort(t *testing.T) { for _, tc := range testCases { port, err := findPort(&api.Pod{Spec: api.PodSpec{Containers: tc.containers}}, - &api.ServicePort{Protocol: "TCP", Port: servicePort, TargetPort: tc.port}) + &api.ServicePort{Protocol: "TCP", TargetPort: tc.port}) if err != nil && tc.pass { t.Errorf("unexpected error for %s: %v", tc.name, err) } diff --git a/shippable.yml b/shippable.yml index 5232a59bd15..daa67e624f0 100644 --- a/shippable.yml +++ b/shippable.yml @@ -8,7 +8,7 @@ matrix: include: - go: 1.4 env: - - KUBE_TEST_API_VERSIONS=v1beta1 KUBE_TEST_ETCD_PREFIXES=registry + - KUBE_TEST_API_VERSIONS=v1beta3 KUBE_TEST_ETCD_PREFIXES=registry - go: 1.3 env: - KUBE_TEST_API_VERSIONS=v1beta3 KUBE_TEST_ETCD_PREFIXES=kubernetes.io/registry