From 633c65f058efdc84b478027e65ed5a31f360d971 Mon Sep 17 00:00:00 2001 From: David Eads Date: Fri, 29 Jun 2018 16:04:56 -0400 Subject: [PATCH 1/5] update glide for 1.11 GA --- glide.yaml | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/glide.yaml b/glide.yaml index 96637ed1b286..ec06b5b4332f 100644 --- a/glide.yaml +++ b/glide.yaml @@ -10,31 +10,31 @@ import: version: 8a9b82f00b3a86eac24681da3f9fe6c34c01cea2 - package: k8s.io/code-generator repo: https://github.com/openshift/kubernetes-code-generator.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/apimachinery repo: https://github.com/openshift/kubernetes-apimachinery.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/api repo: https://github.com/openshift/kubernetes-api.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/client-go repo: https://github.com/openshift/kubernetes-client-go.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/metrics repo: https://github.com/openshift/kubernetes-metrics.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/apiserver repo: https://github.com/openshift/kubernetes-apiserver.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/kube-aggregator repo: https://github.com/openshift/kube-aggregator.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/apiextensions-apiserver repo: https://github.com/openshift/kubernetes-apiextensions-apiserver.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/kubernetes repo: https://github.com/openshift/kubernetes.git - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 # openshift second - package: github.com/openshift/api @@ -76,16 +76,16 @@ import: - package: github.com/containers/image repo: https://github.com/openshift/containers-image.git version: openshift-3.8 -# pod - sjenning - from branch openshift-3.10-runc-595bea0 +# pod - sjenning # origin-3.11-runc-871ba2e - package: github.com/opencontainers/runc repo: https://github.com/openshift/opencontainers-runc.git version: 7c7775178c25e952571573f44a8df281824cf8e1 # pod - sjenning -# origin-3.11-cadvisor-v0.30.1 MISSING PATCHES +# origin-3.11-cadvisor-v0.30.1 - package: github.com/google/cadvisor repo: https://github.com/openshift/google-cadvisor.git - version: 49c4fae21f151168b09758b7da1968fed8cd56a0 + version: c38aa7d9fa62f6b32862471d35a8944f3718cbda # cli - package: github.com/docker/distribution repo: https://github.com/openshift/docker-distribution.git @@ -141,9 +141,6 @@ import: version: v1.4.7 # mine: specific to openshift -# master -- package: github.com/ugorji/go - version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74 # networking - package: github.com/containernetworking/plugins version: ~0.6.0 From 4ed8496f822cc458adec880ec4c97fadb165f6ca Mon Sep 17 00:00:00 2001 From: David Eads Date: Fri, 29 Jun 2018 16:11:33 -0400 Subject: [PATCH 2/5] bump(*) --- glide.lock | 42 +- vendor/github.com/Microsoft/hcsshim/README.md | 33 +- .../github.com/Microsoft/hcsshim/baselayer.go | 54 +- .../github.com/Microsoft/hcsshim/container.go | 6 + vendor/github.com/Microsoft/hcsshim/errors.go | 22 + .../github.com/Microsoft/hcsshim/hcsshim.go | 2 +- .../Microsoft/hcsshim/hnsendpoint.go | 641 +-- .../Microsoft/hcsshim/hnsnetwork.go | 283 +- .../github.com/Microsoft/hcsshim/hnspolicy.go | 189 +- .../Microsoft/hcsshim/hnspolicylist.go | 400 +- .../Microsoft/hcsshim/importlayer.go | 40 +- .../github.com/Microsoft/hcsshim/interface.go | 11 +- vendor/github.com/Microsoft/hcsshim/legacy.go | 302 +- .../github.com/Microsoft/hcsshim/legacy18.go | 7 + .../github.com/Microsoft/hcsshim/legacy19.go | 7 + .../github.com/Microsoft/hcsshim/safeopen.go | 427 ++ .../Microsoft/hcsshim/safeopen_test.go | 168 + .../github.com/Microsoft/hcsshim/zhcsshim.go | 38 + vendor/github.com/blang/semver/.gx/lastpubver | 2 +- vendor/github.com/blang/semver/.travis.yml | 21 + vendor/github.com/blang/semver/README.md | 5 +- vendor/github.com/blang/semver/package.json | 2 +- vendor/github.com/blang/semver/range_test.go | 36 +- vendor/github.com/blang/semver/semver.go | 2 +- .../google/cadvisor/container/crio/handler.go | 12 +- .../cadvisor/container/docker/handler.go | 12 +- vendor/github.com/json-iterator/go/Gopkg.lock | 8 +- .../json-iterator/go/api_tests/config_test.go | 129 +- vendor/github.com/json-iterator/go/config.go | 8 +- .../json-iterator/go/iter_object.go | 12 +- vendor/github.com/json-iterator/go/reflect.go | 11 +- .../json-iterator/go/reflect_native.go | 14 +- .../go/reflect_struct_decoder.go | 38 +- .../go/value_tests/slice_test.go | 3 + vendor/github.com/openshift/api/glide.lock | 12 +- vendor/github.com/openshift/api/glide.yaml | 11 +- .../github.com/openshift/client-go/glide.lock | 18 +- .../github.com/openshift/client-go/glide.yaml | 10 +- .../openshift/library-go/glide.lock | 24 +- .../openshift/library-go/glide.yaml | 14 +- .../service-serving-cert-signer/glide.lock | 28 +- .../service-serving-cert-signer/glide.yaml | 8 +- .../spf13/cobra/bash_completions.md | 11 +- vendor/github.com/spf13/cobra/command.go | 3 + vendor/github.com/spf13/pflag/bytes.go | 105 + vendor/github.com/spf13/pflag/bytes_test.go | 72 + .../github.com/spf13/pflag/duration_slice.go | 128 + .../spf13/pflag/duration_slice_test.go | 165 + vendor/github.com/spf13/pflag/flag.go | 98 +- vendor/github.com/spf13/pflag/flag_test.go | 105 +- vendor/github.com/spf13/pflag/golangflag.go | 4 + .../github.com/spf13/pflag/golangflag_test.go | 8 + .../github.com/spf13/pflag/printusage_test.go | 74 + vendor/github.com/spf13/pflag/string_array.go | 8 +- vendor/github.com/spf13/pflag/string_slice.go | 20 + vendor/k8s.io/kubernetes/CHANGELOG-1.11.md | 403 +- vendor/k8s.io/kubernetes/Godeps/Godeps.json | 198 +- .../kubernetes/api/openapi-spec/swagger.json | 63 +- vendor/k8s.io/kubernetes/build/debs/BUILD | 14 + vendor/k8s.io/kubernetes/build/lib/release.sh | 1 + vendor/k8s.io/kubernetes/build/root/WORKSPACE | 7 + vendor/k8s.io/kubernetes/build/rpms/BUILD | 14 + .../kubernetes/build/rpms/cri-tools.spec | 21 + vendor/k8s.io/kubernetes/build/workspace.bzl | 15 + .../globalbgpconfig-crd.yaml | 1 - .../globalfelixconfig-crd.yaml | 1 - .../globalnetworkpolicy-crd.yaml | 1 - .../calico-policy-controller/ippool-crd.yaml | 1 - .../stackdriver/heapster-controller.yaml | 2 +- .../cluster/addons/istio/auth/istio-auth.yaml | 4 +- .../cluster/addons/istio/noauth/istio.yaml | 4 +- .../cluster-autoscaler-rbac.yaml | 68 + .../kubernetes/cluster/gce/config-test.sh | 6 + .../cluster/gce/gci/configure-helper.sh | 44 +- .../kubernetes/cluster/gce/gci/configure.sh | 4 +- .../kubernetes/cluster/gce/manifests/BUILD | 1 + .../gce/manifests/cluster-autoscaler.manifest | 15 +- .../gce/manifests/rescheduler.manifest | 6 +- vendor/k8s.io/kubernetes/cluster/gce/util.sh | 3 - .../kubernetes/cluster/log-dump/log-dump.sh | 3 +- .../app/options/kubecloudshared.go | 5 - .../app/options/serviceaccountcontroller.go | 3 + .../app/controllermanager.go | 6 +- .../app/options/options_test.go | 2 +- .../cmd/kube-scheduler/app/options/BUILD | 5 +- .../cmd/kube-scheduler/app/options/options.go | 32 +- .../app/options/options_test.go | 193 + .../kubeadm/app/apis/kubeadm/v1alpha1/BUILD | 1 - .../app/apis/kubeadm/v1alpha1/conversion.go | 4 + .../app/apis/kubeadm/v1alpha1/defaults.go | 2 +- .../app/apis/kubeadm/v1alpha1/upgrade.go | 3 - .../app/apis/kubeadm/v1alpha2/defaults.go | 2 +- .../app/apis/kubeadm/v1alpha2/types.go | 4 +- .../kubeadm/app/apis/kubeadm/validation/BUILD | 1 - .../app/apis/kubeadm/validation/validation.go | 16 +- .../kubeadm/validation/validation_test.go | 33 +- .../kubernetes/cmd/kubeadm/app/cmd/BUILD | 1 + .../kubernetes/cmd/kubeadm/app/cmd/config.go | 12 +- .../cmd/kubeadm/app/cmd/config_test.go | 66 +- .../kubernetes/cmd/kubeadm/app/cmd/init.go | 34 +- .../kubernetes/cmd/kubeadm/app/cmd/join.go | 4 +- .../cmd/kubeadm/app/cmd/options/token.go | 7 +- .../kubernetes/cmd/kubeadm/app/cmd/reset.go | 4 +- .../kubernetes/cmd/kubeadm/app/cmd/token.go | 2 +- .../cmd/kubeadm/app/cmd/upgrade/BUILD | 1 + .../cmd/kubeadm/app/cmd/upgrade/apply.go | 39 +- .../cmd/kubeadm/app/cmd/upgrade/common.go | 7 +- .../kubeadm/app/cmd/upgrade/common_test.go | 8 +- .../cmd/kubeadm/app/cmd/upgrade/diff.go | 17 +- .../cmd/kubeadm/app/cmd/upgrade/diff_test.go | 7 +- .../cmd/kubeadm/app/cmd/upgrade/node.go | 24 +- .../cmd/kubeadm/app/cmd/upgrade/plan.go | 23 +- .../cmd/kubeadm/app/cmd/upgrade/upgrade.go | 39 +- .../cmd/kubeadm/app/constants/constants.go | 4 - .../kubernetes/cmd/kubeadm/app/images/BUILD | 5 +- .../cmd/kubeadm/app/images/images.go | 13 +- .../cmd/kubeadm/app/images/images_test.go | 45 + .../kubernetes/cmd/kubeadm/app/kubeadm.go | 15 +- .../cmd/kubeadm/app/phases/addons/dns/dns.go | 12 + .../cmd/kubeadm/app/phases/certs/certs.go | 6 +- .../kubeadm/app/phases/certs/certs_test.go | 3 + .../app/phases/certs/pkiutil/pki_helpers.go | 6 +- .../cmd/kubeadm/app/phases/etcd/local.go | 28 +- .../cmd/kubeadm/app/phases/etcd/local_test.go | 33 +- .../cmd/kubeadm/app/phases/kubelet/BUILD | 1 + .../cmd/kubeadm/app/phases/kubelet/config.go | 12 + .../app/phases/markmaster/markmaster.go | 18 +- .../app/phases/markmaster/markmaster_test.go | 23 +- .../cmd/kubeadm/app/phases/upgrade/BUILD | 1 + .../kubeadm/app/phases/upgrade/postupgrade.go | 141 +- .../app/phases/upgrade/staticpods_test.go | 5 +- .../phases/uploadconfig/uploadconfig_test.go | 9 + .../cmd/kubeadm/app/preflight/BUILD | 1 - .../cmd/kubeadm/app/preflight/checks.go | 27 +- .../app/util/apiclient/clientbacked_dryrun.go | 9 + .../kubeadm/app/util/apiclient/init_dryrun.go | 19 +- .../testdata/conversion/master/internal.yaml | 2 +- .../testdata/conversion/master/v1alpha1.yaml | 2 +- .../master/v1alpha1_without_TypeMeta.yaml | 2 +- .../testdata/conversion/master/v1alpha2.yaml | 2 +- .../testdata/defaulting/master/defaulted.yaml | 2 +- .../testdata/v1alpha1_upgrade/after.yaml | 2 +- .../cmd/kubeadm/app/util/dryrun/dryrun.go | 8 + .../kubernetes/cmd/kubeadm/test/util.go | 1 + .../cmd/kubelet/app/options/options.go | 21 +- .../hack/make-rules/test-cmd-util.sh | 39 +- .../k8s.io/kubernetes/pkg/api/testing/BUILD | 1 + .../pkg/api/testing/serialization_test.go | 37 +- .../kubernetes/pkg/apis/autoscaling/types.go | 207 - .../pkg/apis/autoscaling/v2beta1/BUILD | 1 - .../v2beta1/zz_generated.conversion.go | 282 +- .../v2beta1/zz_generated.defaults.go | 30 - .../pkg/apis/autoscaling/validation/BUILD | 13 +- .../pkg/apis/autoscaling/validation/vpa.go | 184 - .../apis/autoscaling/validation/vpa_test.go | 235 - .../apis/autoscaling/zz_generated.deepcopy.go | 301 -- .../pkg/apis/componentconfig/types.go | 6 +- .../apis/componentconfig/v1alpha1/types.go | 6 +- .../v1alpha1/zz_generated.conversion.go | 4 +- .../typed/autoscaling/internalversion/BUILD | 1 - .../internalversion/autoscaling_client.go | 5 - .../autoscaling/internalversion/fake/BUILD | 1 - .../fake/fake_autoscaling_client.go | 4 - .../fake/fake_verticalpodautoscaler.go | 140 - .../internalversion/generated_expansion.go | 2 - .../internalversion/verticalpodautoscaler.go | 174 - .../autoscaling/internalversion/BUILD | 1 - .../autoscaling/internalversion/interface.go | 7 - .../internalversion/verticalpodautoscaler.go | 89 - .../internalversion/generic.go | 2 - .../listers/autoscaling/internalversion/BUILD | 1 - .../internalversion/expansion_generated.go | 8 - .../internalversion/verticalpodautoscaler.go | 94 - .../cloudprovider/providers/gce/cloud/BUILD | 3 + .../providers/gce/cloud/errors.go | 48 + .../cloudprovider/providers/gce/cloud/op.go | 52 +- .../providers/gce/cloud/ratelimit.go | 62 +- .../providers/gce/cloud/ratelimit_test.go | 80 + .../providers/gce/cloud/service.go | 45 +- .../providers/gce/cloud/service_test.go | 84 + .../pkg/cloudprovider/providers/gce/gce.go | 4 +- .../providers/gce/gce_addresses.go | 61 +- .../providers/gce/gce_backendservice.go | 93 +- .../cloudprovider/providers/gce/gce_cert.go | 23 +- .../providers/gce/gce_firewall.go | 23 +- .../providers/gce/gce_forwardingrule.go | 62 +- .../providers/gce/gce_healthchecks.go | 93 +- .../providers/gce/gce_instancegroup.go | 43 +- .../providers/gce/gce_instances.go | 59 +- .../providers/gce/gce_networkendpointgroup.go | 42 +- .../cloudprovider/providers/gce/gce_routes.go | 16 +- .../providers/gce/gce_securitypolicy.go | 48 +- .../providers/gce/gce_targetpool.go | 28 +- .../providers/gce/gce_targetproxy.go | 58 +- .../cloudprovider/providers/gce/gce_urlmap.go | 28 +- .../cloudprovider/providers/gce/gce_zones.go | 6 +- .../cloudprovider/providers/gce/support.go | 18 +- .../providers/vsphere/vsphere_test.go | 2 - .../nodelifecycle/scheduler/taint_manager.go | 4 + .../generated/openapi/zz_generated.openapi.go | 543 +-- .../pkg/kubectl/cmd/get/get_flags.go | 2 +- .../kubernetes/pkg/kubectl/cmd/wait/wait.go | 2 +- vendor/k8s.io/kubernetes/pkg/kubectl/scale.go | 25 +- .../kubernetes/pkg/kubelet/dockershim/BUILD | 11 + .../pkg/kubelet/dockershim/docker_sandbox.go | 22 +- .../dockershim/docker_sandbox_others.go | 42 + .../dockershim/docker_sandbox_windows.go | 39 + .../pkg/kubelet/dockershim/helpers_linux.go | 2 +- .../kubelet/dockershim/helpers_unsupported.go | 2 +- .../pkg/kubelet/dockershim/helpers_windows.go | 68 +- .../pkg/kubelet/dockershim/network/OWNERS | 1 + .../kubernetes/pkg/kubelet/eviction/BUILD | 4 + .../pkg/kubelet/eviction/eviction_manager.go | 121 +- .../kubelet/eviction/eviction_manager_test.go | 72 + .../pkg/kubelet/eviction/helpers.go | 68 +- .../pkg/kubelet/eviction/helpers_test.go | 33 - .../eviction/memory_threshold_notifier.go | 135 + .../memory_threshold_notifier_test.go | 270 ++ .../eviction/mock_threshold_notifier_test.go | 98 + .../eviction/threshold_notifier_linux.go | 170 +- .../threshold_notifier_unsupported.go | 16 +- .../kubernetes/pkg/kubelet/eviction/types.go | 36 +- .../k8s.io/kubernetes/pkg/kubelet/kubelet.go | 23 +- .../pkg/kubelet/token/token_manager.go | 2 +- .../apis/kubeproxyconfig/v1alpha1/types.go | 2 +- .../pkg/proxy/iptables/proxier_test.go | 2 +- .../kubernetes/pkg/proxy/ipvs/proxier.go | 3 +- .../kubernetes/pkg/proxy/ipvs/proxier_test.go | 203 +- .../defaults/compatibility_test.go | 124 +- .../kubernetes/pkg/scheduler/api/v1/types.go | 13 + .../pkg/scheduler/core/generic_scheduler.go | 2 + .../pkg/scheduler/metrics/metrics.go | 48 +- .../kubernetes/pkg/scheduler/scheduler.go | 8 +- .../authorizer/rbac/bootstrappolicy/policy.go | 2 +- .../testdata/cluster-roles.yaml | 1 + .../staging/src/k8s.io/api/Godeps/Godeps.json | 2 +- .../src/k8s.io/api/autoscaling/v2beta1/BUILD | 1 - .../api/autoscaling/v2beta1/generated.pb.go | 4224 +++-------------- .../api/autoscaling/v2beta1/generated.proto | 162 - .../k8s.io/api/autoscaling/v2beta1/types.go | 211 - .../v2beta1/types_swagger_doc_generated.go | 106 - .../v2beta1/zz_generated.deepcopy.go | 307 +- .../Godeps/Godeps.json | 12 +- .../apiextensions/v1beta1/types_jsonschema.go | 52 + .../pkg/apiserver/customresource_handler.go | 4 +- .../apiserver/customresource_handler_test.go | 33 +- .../pkg/registry/customresource/etcd.go | 54 + .../test/integration/basic_test.go | 2 +- .../test/integration/objectmeta_test.go | 4 +- .../test/integration/subresources_test.go | 2 +- .../test/integration/testserver/BUILD | 1 - .../test/integration/testserver/resources.go | 133 +- .../k8s.io/apimachinery/Godeps/Godeps.json | 4 +- .../pkg/apis/meta/fuzzer/fuzzer.go | 14 +- .../apimachinery/pkg/apis/meta/v1/BUILD | 2 +- .../pkg/apis/meta/v1/group_version_test.go | 12 +- .../pkg/apis/meta/v1/types_test.go | 10 +- .../pkg/runtime/serializer/json/json.go | 61 +- .../pkg/runtime/serializer/json/json_test.go | 45 +- .../src/k8s.io/apiserver/Godeps/Godeps.json | 12 +- .../admission/plugin/webhook/mutating/BUILD | 1 + .../plugin/webhook/mutating/dispatcher.go | 16 +- .../plugin/webhook/mutating/plugin_test.go | 19 +- .../admission/plugin/webhook/testing/BUILD | 2 + .../plugin/webhook/testing/testcase.go | 136 +- .../plugin/webhook/testing/webhook_server.go | 30 + .../plugin/webhook/validating/plugin_test.go | 4 +- .../apiserver/pkg/endpoints/installer.go | 1 - .../src/k8s.io/client-go/Godeps/Godeps.json | 4 +- .../informers/autoscaling/v2beta1/BUILD | 1 - .../autoscaling/v2beta1/interface.go | 7 - .../v2beta1/verticalpodautoscaler.go | 89 - .../src/k8s.io/client-go/informers/generic.go | 2 - .../typed/autoscaling/v2beta1/BUILD | 1 - .../autoscaling/v2beta1/autoscaling_client.go | 5 - .../typed/autoscaling/v2beta1/fake/BUILD | 1 - .../v2beta1/fake/fake_autoscaling_client.go | 4 - .../fake/fake_verticalpodautoscaler.go | 140 - .../v2beta1/generated_expansion.go | 2 - .../v2beta1/verticalpodautoscaler.go | 174 - .../listers/autoscaling/v2beta1/BUILD | 1 - .../v2beta1/expansion_generated.go | 8 - .../v2beta1/verticalpodautoscaler.go | 94 - .../k8s.io/code-generator/Godeps/Godeps.json | 4 +- .../k8s.io/kube-aggregator/Godeps/Godeps.json | 14 +- .../src/k8s.io/metrics/Godeps/Godeps.json | 4 +- .../sample-apiserver/Godeps/Godeps.json | 12 +- .../sample-controller/Godeps/Godeps.json | 4 +- .../test/e2e/apimachinery/aggregator.go | 15 +- .../kubernetes/test/e2e/framework/BUILD | 1 - .../test/e2e/framework/metrics_util.go | 25 +- .../test/e2e/framework/test_context.go | 16 + .../kubernetes/test/e2e/framework/util.go | 4 +- .../kubernetes/test/e2e/generated/bindata.go | 4 +- .../test/e2e/scalability/density.go | 29 +- .../test/e2e/storage/csi_objects.go | 31 +- .../test/e2e_node/services/kubelet.go | 2 +- vendor/k8s.io/kubernetes/test/images/Makefile | 2 +- .../kubernetes/test/images/image-util.sh | 12 +- .../kubernetes/test/utils/update_resources.go | 31 +- 300 files changed, 8023 insertions(+), 9472 deletions(-) create mode 100644 vendor/github.com/Microsoft/hcsshim/legacy18.go create mode 100644 vendor/github.com/Microsoft/hcsshim/legacy19.go create mode 100644 vendor/github.com/Microsoft/hcsshim/safeopen.go create mode 100644 vendor/github.com/Microsoft/hcsshim/safeopen_test.go create mode 100644 vendor/github.com/blang/semver/.travis.yml create mode 100644 vendor/github.com/spf13/pflag/bytes.go create mode 100644 vendor/github.com/spf13/pflag/bytes_test.go create mode 100644 vendor/github.com/spf13/pflag/duration_slice.go create mode 100644 vendor/github.com/spf13/pflag/duration_slice_test.go create mode 100644 vendor/github.com/spf13/pflag/printusage_test.go create mode 100644 vendor/k8s.io/kubernetes/build/rpms/cri-tools.spec create mode 100644 vendor/k8s.io/kubernetes/build/workspace.bzl create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml create mode 100644 vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/verticalpodautoscaler.go create mode 100644 vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/errors.go create mode 100644 vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_others.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_windows.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/eviction/mock_threshold_notifier_test.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/verticalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/verticalpodautoscaler.go diff --git a/glide.lock b/glide.lock index fe0355c5ea6d..6e672372be7a 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: b037282c60c5cd3b4ba7ecf88a883884e23b2f73543ff66d9c589c02b66c2e91 -updated: 2018-06-29T00:08:46.493459085-04:00 +hash: dee8e115562de85a2ea256080cbbf7ea18ecdef7d0df2cdb3975f4f312abea67 +updated: 2018-07-02T09:22:56.158387755-04:00 imports: - name: bitbucket.org/ww/goautoneg version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 @@ -86,7 +86,7 @@ imports: subpackages: - quantile - name: github.com/blang/semver - version: b38d23b8782a487059e8fc8773e9a5b228a77cb6 + version: c5e971dbed7850a93c23aa6ff69db5771d8e23b3 - name: github.com/certifi/gocertifi version: deb3ae2ef2610fde3330947281941c562861188b - name: github.com/chai2010/gettext-go @@ -501,7 +501,7 @@ imports: - name: github.com/google/btree version: e89373fe6b4a7413d7acd6da1725b83ef713e6e4 - name: github.com/google/cadvisor - version: 49c4fae21f151168b09758b7da1968fed8cd56a0 + version: c38aa7d9fa62f6b32862471d35a8944f3718cbda repo: https://github.com/openshift/google-cadvisor.git subpackages: - accelerators @@ -654,7 +654,7 @@ imports: - name: github.com/jonboulle/clockwork version: 72f9bd7c4e0c2a40055ab3d0f09654f730cce982 - name: github.com/json-iterator/go - version: 2ddf6d758266fcb080a4f9e054b9f292c85e6798 + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/jteeuwen/go-bindata version: a0ff2567cfb70903282db057e799fd826784d41d - name: github.com/kardianos/osext @@ -706,7 +706,7 @@ imports: - name: github.com/Microsoft/go-winio version: 78439966b38d69bf38227fbf57ac8a6fee70f69a - name: github.com/Microsoft/hcsshim - version: 6ea7fe54f719d95721e7d9b26ac0add224c9b923 + version: 800683ae704ac360b2f3f47fa88f3a6c8c9091b5 - name: github.com/miekg/dns version: 5a2b9fab83ff0f8bfc99684bd5f43a37abe560f1 - name: github.com/mindprince/gonvml @@ -812,7 +812,7 @@ imports: - go-selinux - go-selinux/label - name: github.com/openshift/api - version: a93a22bdd4ff0e883bcc5a5417a80c47e2459b7f + version: 31a7bbd2266d178da3c12bb83f5274d387f775e6 subpackages: - apps/v1 - authorization/v1 @@ -834,7 +834,7 @@ imports: - user/v1 - webconsole/v1 - name: github.com/openshift/client-go - version: 570cd3183379dc770a8bb6cef90d5dbe01f678d8 + version: 4688ad28de2e88110c0ea30179c51b9b205f99be subpackages: - apps/clientset/versioned - apps/clientset/versioned/scheme @@ -948,7 +948,7 @@ imports: - signal - strslice - name: github.com/openshift/library-go - version: a40fb5197436a6011f7df971393899802ed259cf + version: 077f461517a8617b5bdb5088afa7b451dd612b15 subpackages: - pkg/config/client - pkg/config/leaderelection @@ -960,7 +960,7 @@ imports: - pkg/operator/resource/resourcemerge - pkg/serviceability - name: github.com/openshift/service-serving-cert-signer - version: bc476b3fc4462f7f602aac7b07f77dd9730488da + version: bcaddfdfbc37c5e7cd4656ecca269ca6b735e849 subpackages: - pkg/controller/servingcert - pkg/controller/servingcert/cryptoextensions @@ -1081,11 +1081,11 @@ imports: - name: github.com/spf13/cast version: e31f36ffc91a2ba9ddb72a4b6a607ff9b3d3cb63 - name: github.com/spf13/cobra - version: 6644d46b81fa1831979c4cded0106e774e0ef0ab + version: c439c4fa093711d42e1b01acb1235b52004753c1 - name: github.com/spf13/jwalterweatherman version: 33c24e77fb80341fe7130ee7c594256ff08ccc46 - name: github.com/spf13/pflag - version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea + version: 583c0c0531f06d5278b7d917446061adc344b5cd - name: github.com/spf13/viper version: 7fb2782df3d83e0036cc89f461ed0422628776f4 - name: github.com/storageos/go-api @@ -1335,7 +1335,7 @@ imports: - name: gopkg.in/yaml.v2 version: 670d4cfef0544295bc27a114dbac37980d83185a - name: k8s.io/api - version: 8c14244ab7eeffb1e4acd1ac1afb315b30fe67bf + version: e351ce2d8867863e0b4bbec56502031cb8be4d92 repo: https://github.com/openshift/kubernetes-api.git subpackages: - admission/v1beta1 @@ -1370,7 +1370,7 @@ imports: - storage/v1alpha1 - storage/v1beta1 - name: k8s.io/apiextensions-apiserver - version: 9ec60251801ea40794ae03a3da1cd11a9c2ff09a + version: 3de98c57bc05a81cf463e0ad7a0af4cec8a5b510 repo: https://github.com/openshift/kubernetes-apiextensions-apiserver.git subpackages: - pkg/apis/apiextensions @@ -1406,7 +1406,7 @@ imports: - pkg/registry/customresourcedefinition - test/integration/testserver - name: k8s.io/apimachinery - version: 57fac7393e28c8a5745e8266da1ab9ad148a6b48 + version: a2708ecd555c225cb3392d2179d25dce0de90d74 repo: https://github.com/openshift/kubernetes-apimachinery.git subpackages: - pkg/api/equality @@ -1473,7 +1473,7 @@ imports: - third_party/forked/golang/netutil - third_party/forked/golang/reflect - name: k8s.io/apiserver - version: 6e2d018b0fd7115e80f7075578de3cf42b46dd42 + version: 96ee9833c67ac76cbc5c3e40b42fb1fbe864730e repo: https://github.com/openshift/kubernetes-apiserver.git subpackages: - pkg/admission @@ -1585,7 +1585,7 @@ imports: - plugin/pkg/authenticator/token/webhook - plugin/pkg/authorizer/webhook - name: k8s.io/client-go - version: 4e185c74a08006b22fad3a390c764b642cf1fb35 + version: a94893e92e6a52d5ffa2fb8e2d004c0fc56071b6 repo: https://github.com/openshift/kubernetes-client-go.git subpackages: - discovery @@ -1777,7 +1777,7 @@ imports: - util/testing - util/workqueue - name: k8s.io/code-generator - version: e564af3c98bc317ea3df3658b09f2ecd701840f8 + version: d7806fb979faad89dabf9e6a46aa18355962700c repo: https://github.com/openshift/kubernetes-code-generator.git - name: k8s.io/gengo version: 01a732e01d00cb9a81bb0ca050d3e6d2b947927b @@ -1786,7 +1786,7 @@ imports: subpackages: - metrics/api/v1/types - name: k8s.io/kube-aggregator - version: 7b15cf2c25b08e57aa3a15da137e461cb0c65696 + version: 24ea38def635a3528ba7a79ecee83bac177c9f82 repo: https://github.com/openshift/kube-aggregator.git subpackages: - pkg/apis/apiregistration @@ -1827,7 +1827,7 @@ imports: - pkg/util/proto/testing - pkg/util/proto/validation - name: k8s.io/kubernetes - version: 55bb5105903b718c63a80556dd2ff5a8d4ce51b8 + version: 6ab9cd6e00d3648a4eff38919509ea0e42eb2d07 repo: https://github.com/openshift/kubernetes.git subpackages: - cmd/controller-manager/app @@ -2606,7 +2606,7 @@ imports: - third_party/forked/gonum/graph/simple - third_party/forked/gonum/graph/traverse - name: k8s.io/metrics - version: 6e0b6e1c2e7bc7e845594f7207d0d9abcef3fb1e + version: 6f051017e10b2065c37bd9ee1d8b2c93805ed8d0 repo: https://github.com/openshift/kubernetes-metrics.git subpackages: - pkg/apis/custom_metrics diff --git a/vendor/github.com/Microsoft/hcsshim/README.md b/vendor/github.com/Microsoft/hcsshim/README.md index 30991a12e4c8..deca9a97e3bd 100644 --- a/vendor/github.com/Microsoft/hcsshim/README.md +++ b/vendor/github.com/Microsoft/hcsshim/README.md @@ -4,9 +4,30 @@ This package supports launching Windows Server containers from Go. It is primarily used in the [Docker Engine](https://github.com/docker/docker) project, but it can be freely used by other projects as well. -This project has adopted the [Microsoft Open Source Code of -Conduct](https://opensource.microsoft.com/codeofconduct/). For more information -see the [Code of Conduct -FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact -[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional -questions or comments. + +## Contributing +--------------- +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.microsoft.com. + +When you submit a pull request, a CLA-bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + + +## Reporting Security Issues + +Security issues and bugs should be reported privately, via email, to the Microsoft Security +Response Center (MSRC) at [secure@microsoft.com](mailto:secure@microsoft.com). You should +receive a response within 24 hours. If for some reason you do not, please follow up via +email to ensure we received your original message. Further information, including the +[MSRC PGP](https://technet.microsoft.com/en-us/security/dn606155) key, can be found in +the [Security TechCenter](https://technet.microsoft.com/en-us/security/default). + +------------------------------------------- +Copyright (c) 2018 Microsoft Corp. All rights reserved. diff --git a/vendor/github.com/Microsoft/hcsshim/baselayer.go b/vendor/github.com/Microsoft/hcsshim/baselayer.go index 9babd4e18abb..860185c35725 100644 --- a/vendor/github.com/Microsoft/hcsshim/baselayer.go +++ b/vendor/github.com/Microsoft/hcsshim/baselayer.go @@ -10,7 +10,7 @@ import ( ) type baseLayerWriter struct { - root string + root *os.File f *os.File bw *winio.BackupFileWriter err error @@ -26,10 +26,10 @@ type dirInfo struct { // reapplyDirectoryTimes reapplies directory modification, creation, etc. times // after processing of the directory tree has completed. The times are expected // to be ordered such that parent directories come before child directories. -func reapplyDirectoryTimes(dis []dirInfo) error { +func reapplyDirectoryTimes(root *os.File, dis []dirInfo) error { for i := range dis { di := &dis[len(dis)-i-1] // reverse order: process child directories first - f, err := winio.OpenForBackup(di.path, syscall.GENERIC_READ|syscall.GENERIC_WRITE, syscall.FILE_SHARE_READ, syscall.OPEN_EXISTING) + f, err := openRelative(di.path, root, syscall.GENERIC_READ|syscall.GENERIC_WRITE, syscall.FILE_SHARE_READ, _FILE_OPEN, _FILE_DIRECTORY_FILE) if err != nil { return err } @@ -75,12 +75,6 @@ func (w *baseLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) (err e w.hasUtilityVM = true } - path := filepath.Join(w.root, name) - path, err = makeLongAbsPath(path) - if err != nil { - return err - } - var f *os.File defer func() { if f != nil { @@ -88,27 +82,23 @@ func (w *baseLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) (err e } }() - createmode := uint32(syscall.CREATE_NEW) + extraFlags := uint32(0) if fileInfo.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 { - err := os.Mkdir(path, 0) - if err != nil && !os.IsExist(err) { - return err - } - createmode = syscall.OPEN_EXISTING + extraFlags |= _FILE_DIRECTORY_FILE if fileInfo.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT == 0 { - w.dirInfo = append(w.dirInfo, dirInfo{path, *fileInfo}) + w.dirInfo = append(w.dirInfo, dirInfo{name, *fileInfo}) } } mode := uint32(syscall.GENERIC_READ | syscall.GENERIC_WRITE | winio.WRITE_DAC | winio.WRITE_OWNER | winio.ACCESS_SYSTEM_SECURITY) - f, err = winio.OpenForBackup(path, mode, syscall.FILE_SHARE_READ, createmode) + f, err = openRelative(name, w.root, mode, syscall.FILE_SHARE_READ, _FILE_CREATE, extraFlags) if err != nil { - return makeError(err, "Failed to OpenForBackup", path) + return makeError(err, "Failed to openRelative", name) } err = winio.SetFileBasicInfo(f, fileInfo) if err != nil { - return makeError(err, "Failed to SetFileBasicInfo", path) + return makeError(err, "Failed to SetFileBasicInfo", name) } w.f = f @@ -129,17 +119,7 @@ func (w *baseLayerWriter) AddLink(name string, target string) (err error) { return err } - linkpath, err := makeLongAbsPath(filepath.Join(w.root, name)) - if err != nil { - return err - } - - linktarget, err := makeLongAbsPath(filepath.Join(w.root, target)) - if err != nil { - return err - } - - return os.Link(linktarget, linkpath) + return linkRelative(target, w.root, name, w.root) } func (w *baseLayerWriter) Remove(name string) error { @@ -155,6 +135,10 @@ func (w *baseLayerWriter) Write(b []byte) (int, error) { } func (w *baseLayerWriter) Close() error { + defer func() { + w.root.Close() + w.root = nil + }() err := w.closeCurrentFile() if err != nil { return err @@ -162,18 +146,22 @@ func (w *baseLayerWriter) Close() error { if w.err == nil { // Restore the file times of all the directories, since they may have // been modified by creating child directories. - err = reapplyDirectoryTimes(w.dirInfo) + err = reapplyDirectoryTimes(w.root, w.dirInfo) if err != nil { return err } - err = ProcessBaseLayer(w.root) + err = ProcessBaseLayer(w.root.Name()) if err != nil { return err } if w.hasUtilityVM { - err = ProcessUtilityVMImage(filepath.Join(w.root, "UtilityVM")) + err := ensureNotReparsePointRelative("UtilityVM", w.root) + if err != nil { + return err + } + err = ProcessUtilityVMImage(filepath.Join(w.root.Name(), "UtilityVM")) if err != nil { return err } diff --git a/vendor/github.com/Microsoft/hcsshim/container.go b/vendor/github.com/Microsoft/hcsshim/container.go index b924d39f46bf..3354f70efc7f 100644 --- a/vendor/github.com/Microsoft/hcsshim/container.go +++ b/vendor/github.com/Microsoft/hcsshim/container.go @@ -201,12 +201,18 @@ func createContainerWithJSON(id string, c *ContainerConfig, additionalJSON strin if createError == nil || IsPending(createError) { if err := container.registerCallback(); err != nil { + // Terminate the container if it still exists. We're okay to ignore a failure here. + container.Terminate() return nil, makeContainerError(container, operation, "", err) } } err = processAsyncHcsResult(createError, resultp, container.callbackNumber, hcsNotificationSystemCreateCompleted, &defaultTimeout) if err != nil { + if err == ErrTimeout { + // Terminate the container if it still exists. We're okay to ignore a failure here. + container.Terminate() + } return nil, makeContainerError(container, operation, configuration, err) } diff --git a/vendor/github.com/Microsoft/hcsshim/errors.go b/vendor/github.com/Microsoft/hcsshim/errors.go index d2f9cc8bd208..c0c6cac87ccb 100644 --- a/vendor/github.com/Microsoft/hcsshim/errors.go +++ b/vendor/github.com/Microsoft/hcsshim/errors.go @@ -72,6 +72,22 @@ var ( ErrPlatformNotSupported = errors.New("unsupported platform request") ) +type EndpointNotFoundError struct { + EndpointName string +} + +func (e EndpointNotFoundError) Error() string { + return fmt.Sprintf("Endpoint %s not found", e.EndpointName) +} + +type NetworkNotFoundError struct { + NetworkName string +} + +func (e NetworkNotFoundError) Error() string { + return fmt.Sprintf("Network %s not found", e.NetworkName) +} + // ProcessError is an error encountered in HCS during an operation on a Process object type ProcessError struct { Process *process @@ -174,6 +190,12 @@ func makeProcessError(process *process, operation string, extraInfo string, err // will currently return true when the error is ErrElementNotFound or ErrProcNotFound. func IsNotExist(err error) bool { err = getInnerError(err) + if _, ok := err.(EndpointNotFoundError); ok { + return true + } + if _, ok := err.(NetworkNotFoundError); ok { + return true + } return err == ErrComputeSystemDoesNotExist || err == ErrElementNotFound || err == ErrProcNotFound diff --git a/vendor/github.com/Microsoft/hcsshim/hcsshim.go b/vendor/github.com/Microsoft/hcsshim/hcsshim.go index 236ba1fa30d6..b65953191c06 100644 --- a/vendor/github.com/Microsoft/hcsshim/hcsshim.go +++ b/vendor/github.com/Microsoft/hcsshim/hcsshim.go @@ -11,7 +11,7 @@ import ( "github.com/sirupsen/logrus" ) -//go:generate go run mksyscall_windows.go -output zhcsshim.go hcsshim.go +//go:generate go run mksyscall_windows.go -output zhcsshim.go hcsshim.go safeopen.go //sys coTaskMemFree(buffer unsafe.Pointer) = ole32.CoTaskMemFree //sys SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) = iphlpapi.SetCurrentThreadCompartmentId diff --git a/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go b/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go index 92afc0c249ca..90689cb1ee01 100644 --- a/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go +++ b/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go @@ -1,318 +1,323 @@ -package hcsshim - -import ( - "encoding/json" - "fmt" - "net" - - "github.com/sirupsen/logrus" -) - -// HNSEndpoint represents a network endpoint in HNS -type HNSEndpoint struct { - Id string `json:"ID,omitempty"` - Name string `json:",omitempty"` - VirtualNetwork string `json:",omitempty"` - VirtualNetworkName string `json:",omitempty"` - Policies []json.RawMessage `json:",omitempty"` - MacAddress string `json:",omitempty"` - IPAddress net.IP `json:",omitempty"` - DNSSuffix string `json:",omitempty"` - DNSServerList string `json:",omitempty"` - GatewayAddress string `json:",omitempty"` - EnableInternalDNS bool `json:",omitempty"` - DisableICC bool `json:",omitempty"` - PrefixLength uint8 `json:",omitempty"` - IsRemoteEndpoint bool `json:",omitempty"` -} - -//SystemType represents the type of the system on which actions are done -type SystemType string - -// SystemType const -const ( - ContainerType SystemType = "Container" - VirtualMachineType SystemType = "VirtualMachine" - HostType SystemType = "Host" -) - -// EndpointAttachDetachRequest is the structure used to send request to the container to modify the system -// Supported resource types are Network and Request Types are Add/Remove -type EndpointAttachDetachRequest struct { - ContainerID string `json:"ContainerId,omitempty"` - SystemType SystemType `json:"SystemType"` - CompartmentID uint16 `json:"CompartmentId,omitempty"` - VirtualNICName string `json:"VirtualNicName,omitempty"` -} - -// EndpointResquestResponse is object to get the endpoint request response -type EndpointResquestResponse struct { - Success bool - Error string -} - -// HNSEndpointRequest makes a HNS call to modify/query a network endpoint -func HNSEndpointRequest(method, path, request string) (*HNSEndpoint, error) { - endpoint := &HNSEndpoint{} - err := hnsCall(method, "/endpoints/"+path, request, &endpoint) - if err != nil { - return nil, err - } - - return endpoint, nil -} - -// HNSListEndpointRequest makes a HNS call to query the list of available endpoints -func HNSListEndpointRequest() ([]HNSEndpoint, error) { - var endpoint []HNSEndpoint - err := hnsCall("GET", "/endpoints/", "", &endpoint) - if err != nil { - return nil, err - } - - return endpoint, nil -} - -// HotAttachEndpoint makes a HCS Call to attach the endpoint to the container -func HotAttachEndpoint(containerID string, endpointID string) error { - return modifyNetworkEndpoint(containerID, endpointID, Add) -} - -// HotDetachEndpoint makes a HCS Call to detach the endpoint from the container -func HotDetachEndpoint(containerID string, endpointID string) error { - return modifyNetworkEndpoint(containerID, endpointID, Remove) -} - -// ModifyContainer corresponding to the container id, by sending a request -func modifyContainer(id string, request *ResourceModificationRequestResponse) error { - container, err := OpenContainer(id) - if err != nil { - if IsNotExist(err) { - return ErrComputeSystemDoesNotExist - } - return getInnerError(err) - } - defer container.Close() - err = container.Modify(request) - if err != nil { - if IsNotSupported(err) { - return ErrPlatformNotSupported - } - return getInnerError(err) - } - - return nil -} - -func modifyNetworkEndpoint(containerID string, endpointID string, request RequestType) error { - requestMessage := &ResourceModificationRequestResponse{ - Resource: Network, - Request: request, - Data: endpointID, - } - err := modifyContainer(containerID, requestMessage) - - if err != nil { - return err - } - - return nil -} - -// GetHNSEndpointByID get the Endpoint by ID -func GetHNSEndpointByID(endpointID string) (*HNSEndpoint, error) { - return HNSEndpointRequest("GET", endpointID, "") -} - -// GetHNSEndpointByName gets the endpoint filtered by Name -func GetHNSEndpointByName(endpointName string) (*HNSEndpoint, error) { - hnsResponse, err := HNSListEndpointRequest() - if err != nil { - return nil, err - } - for _, hnsEndpoint := range hnsResponse { - if hnsEndpoint.Name == endpointName { - return &hnsEndpoint, nil - } - } - return nil, fmt.Errorf("Endpoint %v not found", endpointName) -} - -// Create Endpoint by sending EndpointRequest to HNS. TODO: Create a separate HNS interface to place all these methods -func (endpoint *HNSEndpoint) Create() (*HNSEndpoint, error) { - operation := "Create" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - jsonString, err := json.Marshal(endpoint) - if err != nil { - return nil, err - } - return HNSEndpointRequest("POST", "", string(jsonString)) -} - -// Delete Endpoint by sending EndpointRequest to HNS -func (endpoint *HNSEndpoint) Delete() (*HNSEndpoint, error) { - operation := "Delete" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - return HNSEndpointRequest("DELETE", endpoint.Id, "") -} - -// Update Endpoint -func (endpoint *HNSEndpoint) Update() (*HNSEndpoint, error) { - operation := "Update" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - jsonString, err := json.Marshal(endpoint) - if err != nil { - return nil, err - } - err = hnsCall("POST", "/endpoints/"+endpoint.Id, string(jsonString), &endpoint) - - return endpoint, err -} - -// ContainerHotAttach attaches an endpoint to a running container -func (endpoint *HNSEndpoint) ContainerHotAttach(containerID string) error { - operation := "ContainerHotAttach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s, containerId=%s", endpoint.Id, containerID) - - return modifyNetworkEndpoint(containerID, endpoint.Id, Add) -} - -// ContainerHotDetach detaches an endpoint from a running container -func (endpoint *HNSEndpoint) ContainerHotDetach(containerID string) error { - operation := "ContainerHotDetach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s, containerId=%s", endpoint.Id, containerID) - - return modifyNetworkEndpoint(containerID, endpoint.Id, Remove) -} - -// ApplyACLPolicy applies Acl Policy on the Endpoint -func (endpoint *HNSEndpoint) ApplyACLPolicy(policy *ACLPolicy) error { - operation := "ApplyACLPolicy" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - jsonString, err := json.Marshal(policy) - if err != nil { - return err - } - endpoint.Policies[0] = jsonString - _, err = endpoint.Update() - return err -} - -// ContainerAttach attaches an endpoint to container -func (endpoint *HNSEndpoint) ContainerAttach(containerID string, compartmentID uint16) error { - operation := "ContainerAttach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - requestMessage := &EndpointAttachDetachRequest{ - ContainerID: containerID, - CompartmentID: compartmentID, - SystemType: ContainerType, - } - response := &EndpointResquestResponse{} - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) -} - -// ContainerDetach detaches an endpoint from container -func (endpoint *HNSEndpoint) ContainerDetach(containerID string) error { - operation := "ContainerDetach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - requestMessage := &EndpointAttachDetachRequest{ - ContainerID: containerID, - SystemType: ContainerType, - } - response := &EndpointResquestResponse{} - - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) -} - -// HostAttach attaches a nic on the host -func (endpoint *HNSEndpoint) HostAttach(compartmentID uint16) error { - operation := "HostAttach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - requestMessage := &EndpointAttachDetachRequest{ - CompartmentID: compartmentID, - SystemType: HostType, - } - response := &EndpointResquestResponse{} - - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) - -} - -// HostDetach detaches a nic on the host -func (endpoint *HNSEndpoint) HostDetach() error { - operation := "HostDetach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - requestMessage := &EndpointAttachDetachRequest{ - SystemType: HostType, - } - response := &EndpointResquestResponse{} - - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) -} - -// VirtualMachineNICAttach attaches a endpoint to a virtual machine -func (endpoint *HNSEndpoint) VirtualMachineNICAttach(virtualMachineNICName string) error { - operation := "VirtualMachineNicAttach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - requestMessage := &EndpointAttachDetachRequest{ - VirtualNICName: virtualMachineNICName, - SystemType: VirtualMachineType, - } - response := &EndpointResquestResponse{} - - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) -} - -// VirtualMachineNICDetach detaches a endpoint from a virtual machine -func (endpoint *HNSEndpoint) VirtualMachineNICDetach() error { - operation := "VirtualMachineNicDetach" - title := "HCSShim::HNSEndpoint::" + operation - logrus.Debugf(title+" id=%s", endpoint.Id) - - requestMessage := &EndpointAttachDetachRequest{ - SystemType: VirtualMachineType, - } - response := &EndpointResquestResponse{} - - jsonString, err := json.Marshal(requestMessage) - if err != nil { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) -} +package hcsshim + +import ( + "encoding/json" + "net" + + "github.com/sirupsen/logrus" +) + +// HNSEndpoint represents a network endpoint in HNS +type HNSEndpoint struct { + Id string `json:"ID,omitempty"` + Name string `json:",omitempty"` + VirtualNetwork string `json:",omitempty"` + VirtualNetworkName string `json:",omitempty"` + Policies []json.RawMessage `json:",omitempty"` + MacAddress string `json:",omitempty"` + IPAddress net.IP `json:",omitempty"` + DNSSuffix string `json:",omitempty"` + DNSServerList string `json:",omitempty"` + GatewayAddress string `json:",omitempty"` + EnableInternalDNS bool `json:",omitempty"` + DisableICC bool `json:",omitempty"` + PrefixLength uint8 `json:",omitempty"` + IsRemoteEndpoint bool `json:",omitempty"` +} + +//SystemType represents the type of the system on which actions are done +type SystemType string + +// SystemType const +const ( + ContainerType SystemType = "Container" + VirtualMachineType SystemType = "VirtualMachine" + HostType SystemType = "Host" +) + +// EndpointAttachDetachRequest is the structure used to send request to the container to modify the system +// Supported resource types are Network and Request Types are Add/Remove +type EndpointAttachDetachRequest struct { + ContainerID string `json:"ContainerId,omitempty"` + SystemType SystemType `json:"SystemType"` + CompartmentID uint16 `json:"CompartmentId,omitempty"` + VirtualNICName string `json:"VirtualNicName,omitempty"` +} + +// EndpointResquestResponse is object to get the endpoint request response +type EndpointResquestResponse struct { + Success bool + Error string +} + +// HNSEndpointRequest makes a HNS call to modify/query a network endpoint +func HNSEndpointRequest(method, path, request string) (*HNSEndpoint, error) { + endpoint := &HNSEndpoint{} + err := hnsCall(method, "/endpoints/"+path, request, &endpoint) + if err != nil { + return nil, err + } + + return endpoint, nil +} + +// HNSListEndpointRequest makes a HNS call to query the list of available endpoints +func HNSListEndpointRequest() ([]HNSEndpoint, error) { + var endpoint []HNSEndpoint + err := hnsCall("GET", "/endpoints/", "", &endpoint) + if err != nil { + return nil, err + } + + return endpoint, nil +} + +// HotAttachEndpoint makes a HCS Call to attach the endpoint to the container +func HotAttachEndpoint(containerID string, endpointID string) error { + return modifyNetworkEndpoint(containerID, endpointID, Add) +} + +// HotDetachEndpoint makes a HCS Call to detach the endpoint from the container +func HotDetachEndpoint(containerID string, endpointID string) error { + return modifyNetworkEndpoint(containerID, endpointID, Remove) +} + +// ModifyContainer corresponding to the container id, by sending a request +func modifyContainer(id string, request *ResourceModificationRequestResponse) error { + container, err := OpenContainer(id) + if err != nil { + if IsNotExist(err) { + return ErrComputeSystemDoesNotExist + } + return getInnerError(err) + } + defer container.Close() + err = container.Modify(request) + if err != nil { + if IsNotSupported(err) { + return ErrPlatformNotSupported + } + return getInnerError(err) + } + + return nil +} + +func modifyNetworkEndpoint(containerID string, endpointID string, request RequestType) error { + requestMessage := &ResourceModificationRequestResponse{ + Resource: Network, + Request: request, + Data: endpointID, + } + err := modifyContainer(containerID, requestMessage) + + if err != nil { + return err + } + + return nil +} + +// GetHNSEndpointByID get the Endpoint by ID +func GetHNSEndpointByID(endpointID string) (*HNSEndpoint, error) { + return HNSEndpointRequest("GET", endpointID, "") +} + +// GetHNSEndpointByName gets the endpoint filtered by Name +func GetHNSEndpointByName(endpointName string) (*HNSEndpoint, error) { + hnsResponse, err := HNSListEndpointRequest() + if err != nil { + return nil, err + } + for _, hnsEndpoint := range hnsResponse { + if hnsEndpoint.Name == endpointName { + return &hnsEndpoint, nil + } + } + return nil, EndpointNotFoundError{EndpointName: endpointName} +} + +// Create Endpoint by sending EndpointRequest to HNS. TODO: Create a separate HNS interface to place all these methods +func (endpoint *HNSEndpoint) Create() (*HNSEndpoint, error) { + operation := "Create" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + jsonString, err := json.Marshal(endpoint) + if err != nil { + return nil, err + } + return HNSEndpointRequest("POST", "", string(jsonString)) +} + +// Delete Endpoint by sending EndpointRequest to HNS +func (endpoint *HNSEndpoint) Delete() (*HNSEndpoint, error) { + operation := "Delete" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + return HNSEndpointRequest("DELETE", endpoint.Id, "") +} + +// Update Endpoint +func (endpoint *HNSEndpoint) Update() (*HNSEndpoint, error) { + operation := "Update" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + jsonString, err := json.Marshal(endpoint) + if err != nil { + return nil, err + } + err = hnsCall("POST", "/endpoints/"+endpoint.Id, string(jsonString), &endpoint) + + return endpoint, err +} + +// ContainerHotAttach attaches an endpoint to a running container +func (endpoint *HNSEndpoint) ContainerHotAttach(containerID string) error { + operation := "ContainerHotAttach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s, containerId=%s", endpoint.Id, containerID) + + return modifyNetworkEndpoint(containerID, endpoint.Id, Add) +} + +// ContainerHotDetach detaches an endpoint from a running container +func (endpoint *HNSEndpoint) ContainerHotDetach(containerID string) error { + operation := "ContainerHotDetach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s, containerId=%s", endpoint.Id, containerID) + + return modifyNetworkEndpoint(containerID, endpoint.Id, Remove) +} + +// ApplyACLPolicy applies a set of ACL Policies on the Endpoint +func (endpoint *HNSEndpoint) ApplyACLPolicy(policies ...*ACLPolicy) error { + operation := "ApplyACLPolicy" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + for _, policy := range policies { + if policy == nil { + continue + } + jsonString, err := json.Marshal(policy) + if err != nil { + return err + } + endpoint.Policies = append(endpoint.Policies, jsonString) + } + + _, err := endpoint.Update() + return err +} + +// ContainerAttach attaches an endpoint to container +func (endpoint *HNSEndpoint) ContainerAttach(containerID string, compartmentID uint16) error { + operation := "ContainerAttach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + requestMessage := &EndpointAttachDetachRequest{ + ContainerID: containerID, + CompartmentID: compartmentID, + SystemType: ContainerType, + } + response := &EndpointResquestResponse{} + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) +} + +// ContainerDetach detaches an endpoint from container +func (endpoint *HNSEndpoint) ContainerDetach(containerID string) error { + operation := "ContainerDetach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + requestMessage := &EndpointAttachDetachRequest{ + ContainerID: containerID, + SystemType: ContainerType, + } + response := &EndpointResquestResponse{} + + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) +} + +// HostAttach attaches a nic on the host +func (endpoint *HNSEndpoint) HostAttach(compartmentID uint16) error { + operation := "HostAttach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + requestMessage := &EndpointAttachDetachRequest{ + CompartmentID: compartmentID, + SystemType: HostType, + } + response := &EndpointResquestResponse{} + + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) + +} + +// HostDetach detaches a nic on the host +func (endpoint *HNSEndpoint) HostDetach() error { + operation := "HostDetach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + requestMessage := &EndpointAttachDetachRequest{ + SystemType: HostType, + } + response := &EndpointResquestResponse{} + + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) +} + +// VirtualMachineNICAttach attaches a endpoint to a virtual machine +func (endpoint *HNSEndpoint) VirtualMachineNICAttach(virtualMachineNICName string) error { + operation := "VirtualMachineNicAttach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + requestMessage := &EndpointAttachDetachRequest{ + VirtualNICName: virtualMachineNICName, + SystemType: VirtualMachineType, + } + response := &EndpointResquestResponse{} + + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) +} + +// VirtualMachineNICDetach detaches a endpoint from a virtual machine +func (endpoint *HNSEndpoint) VirtualMachineNICDetach() error { + operation := "VirtualMachineNicDetach" + title := "HCSShim::HNSEndpoint::" + operation + logrus.Debugf(title+" id=%s", endpoint.Id) + + requestMessage := &EndpointAttachDetachRequest{ + SystemType: VirtualMachineType, + } + response := &EndpointResquestResponse{} + + jsonString, err := json.Marshal(requestMessage) + if err != nil { + return err + } + return hnsCall("POST", "/endpoints/"+endpoint.Id+"/detach", string(jsonString), &response) +} diff --git a/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go b/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go index 3345bfa3f277..398583a4e4e6 100644 --- a/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go +++ b/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go @@ -1,142 +1,141 @@ -package hcsshim - -import ( - "encoding/json" - "fmt" - "net" - - "github.com/sirupsen/logrus" -) - -// Subnet is assoicated with a network and represents a list -// of subnets available to the network -type Subnet struct { - AddressPrefix string `json:",omitempty"` - GatewayAddress string `json:",omitempty"` - Policies []json.RawMessage `json:",omitempty"` -} - -// MacPool is assoicated with a network and represents a list -// of macaddresses available to the network -type MacPool struct { - StartMacAddress string `json:",omitempty"` - EndMacAddress string `json:",omitempty"` -} - -// HNSNetwork represents a network in HNS -type HNSNetwork struct { - Id string `json:"ID,omitempty"` - Name string `json:",omitempty"` - Type string `json:",omitempty"` - NetworkAdapterName string `json:",omitempty"` - SourceMac string `json:",omitempty"` - Policies []json.RawMessage `json:",omitempty"` - MacPools []MacPool `json:",omitempty"` - Subnets []Subnet `json:",omitempty"` - DNSSuffix string `json:",omitempty"` - DNSServerList string `json:",omitempty"` - DNSServerCompartment uint32 `json:",omitempty"` - ManagementIP string `json:",omitempty"` - AutomaticDNS bool `json:",omitempty"` -} - -type hnsNetworkResponse struct { - Success bool - Error string - Output HNSNetwork -} - -type hnsResponse struct { - Success bool - Error string - Output json.RawMessage -} - -// HNSNetworkRequest makes a call into HNS to update/query a single network -func HNSNetworkRequest(method, path, request string) (*HNSNetwork, error) { - var network HNSNetwork - err := hnsCall(method, "/networks/"+path, request, &network) - if err != nil { - return nil, err - } - - return &network, nil -} - -// HNSListNetworkRequest makes a HNS call to query the list of available networks -func HNSListNetworkRequest(method, path, request string) ([]HNSNetwork, error) { - var network []HNSNetwork - err := hnsCall(method, "/networks/"+path, request, &network) - if err != nil { - return nil, err - } - - return network, nil -} - -// GetHNSNetworkByID -func GetHNSNetworkByID(networkID string) (*HNSNetwork, error) { - return HNSNetworkRequest("GET", networkID, "") -} - -// GetHNSNetworkName filtered by Name -func GetHNSNetworkByName(networkName string) (*HNSNetwork, error) { - hsnnetworks, err := HNSListNetworkRequest("GET", "", "") - if err != nil { - return nil, err - } - for _, hnsnetwork := range hsnnetworks { - if hnsnetwork.Name == networkName { - return &hnsnetwork, nil - } - } - return nil, fmt.Errorf("Network %v not found", networkName) -} - -// Create Network by sending NetworkRequest to HNS. -func (network *HNSNetwork) Create() (*HNSNetwork, error) { - operation := "Create" - title := "HCSShim::HNSNetwork::" + operation - logrus.Debugf(title+" id=%s", network.Id) - - jsonString, err := json.Marshal(network) - if err != nil { - return nil, err - } - return HNSNetworkRequest("POST", "", string(jsonString)) -} - -// Delete Network by sending NetworkRequest to HNS -func (network *HNSNetwork) Delete() (*HNSNetwork, error) { - operation := "Delete" - title := "HCSShim::HNSNetwork::" + operation - logrus.Debugf(title+" id=%s", network.Id) - - return HNSNetworkRequest("DELETE", network.Id, "") -} - -// Creates an endpoint on the Network. -func (network *HNSNetwork) NewEndpoint(ipAddress net.IP, macAddress net.HardwareAddr) *HNSEndpoint { - return &HNSEndpoint{ - VirtualNetwork: network.Id, - IPAddress: ipAddress, - MacAddress: string(macAddress), - } -} - -func (network *HNSNetwork) CreateEndpoint(endpoint *HNSEndpoint) (*HNSEndpoint, error) { - operation := "CreateEndpoint" - title := "HCSShim::HNSNetwork::" + operation - logrus.Debugf(title+" id=%s, endpointId=%s", network.Id, endpoint.Id) - - endpoint.VirtualNetwork = network.Id - return endpoint.Create() -} - -func (network *HNSNetwork) CreateRemoteEndpoint(endpoint *HNSEndpoint) (*HNSEndpoint, error) { - operation := "CreateRemoteEndpoint" - title := "HCSShim::HNSNetwork::" + operation - logrus.Debugf(title+" id=%s", network.Id) - endpoint.IsRemoteEndpoint = true - return network.CreateEndpoint(endpoint) -} +package hcsshim + +import ( + "encoding/json" + "net" + + "github.com/sirupsen/logrus" +) + +// Subnet is assoicated with a network and represents a list +// of subnets available to the network +type Subnet struct { + AddressPrefix string `json:",omitempty"` + GatewayAddress string `json:",omitempty"` + Policies []json.RawMessage `json:",omitempty"` +} + +// MacPool is assoicated with a network and represents a list +// of macaddresses available to the network +type MacPool struct { + StartMacAddress string `json:",omitempty"` + EndMacAddress string `json:",omitempty"` +} + +// HNSNetwork represents a network in HNS +type HNSNetwork struct { + Id string `json:"ID,omitempty"` + Name string `json:",omitempty"` + Type string `json:",omitempty"` + NetworkAdapterName string `json:",omitempty"` + SourceMac string `json:",omitempty"` + Policies []json.RawMessage `json:",omitempty"` + MacPools []MacPool `json:",omitempty"` + Subnets []Subnet `json:",omitempty"` + DNSSuffix string `json:",omitempty"` + DNSServerList string `json:",omitempty"` + DNSServerCompartment uint32 `json:",omitempty"` + ManagementIP string `json:",omitempty"` + AutomaticDNS bool `json:",omitempty"` +} + +type hnsNetworkResponse struct { + Success bool + Error string + Output HNSNetwork +} + +type hnsResponse struct { + Success bool + Error string + Output json.RawMessage +} + +// HNSNetworkRequest makes a call into HNS to update/query a single network +func HNSNetworkRequest(method, path, request string) (*HNSNetwork, error) { + var network HNSNetwork + err := hnsCall(method, "/networks/"+path, request, &network) + if err != nil { + return nil, err + } + + return &network, nil +} + +// HNSListNetworkRequest makes a HNS call to query the list of available networks +func HNSListNetworkRequest(method, path, request string) ([]HNSNetwork, error) { + var network []HNSNetwork + err := hnsCall(method, "/networks/"+path, request, &network) + if err != nil { + return nil, err + } + + return network, nil +} + +// GetHNSNetworkByID +func GetHNSNetworkByID(networkID string) (*HNSNetwork, error) { + return HNSNetworkRequest("GET", networkID, "") +} + +// GetHNSNetworkName filtered by Name +func GetHNSNetworkByName(networkName string) (*HNSNetwork, error) { + hsnnetworks, err := HNSListNetworkRequest("GET", "", "") + if err != nil { + return nil, err + } + for _, hnsnetwork := range hsnnetworks { + if hnsnetwork.Name == networkName { + return &hnsnetwork, nil + } + } + return nil, NetworkNotFoundError{NetworkName: networkName} +} + +// Create Network by sending NetworkRequest to HNS. +func (network *HNSNetwork) Create() (*HNSNetwork, error) { + operation := "Create" + title := "HCSShim::HNSNetwork::" + operation + logrus.Debugf(title+" id=%s", network.Id) + + jsonString, err := json.Marshal(network) + if err != nil { + return nil, err + } + return HNSNetworkRequest("POST", "", string(jsonString)) +} + +// Delete Network by sending NetworkRequest to HNS +func (network *HNSNetwork) Delete() (*HNSNetwork, error) { + operation := "Delete" + title := "HCSShim::HNSNetwork::" + operation + logrus.Debugf(title+" id=%s", network.Id) + + return HNSNetworkRequest("DELETE", network.Id, "") +} + +// Creates an endpoint on the Network. +func (network *HNSNetwork) NewEndpoint(ipAddress net.IP, macAddress net.HardwareAddr) *HNSEndpoint { + return &HNSEndpoint{ + VirtualNetwork: network.Id, + IPAddress: ipAddress, + MacAddress: string(macAddress), + } +} + +func (network *HNSNetwork) CreateEndpoint(endpoint *HNSEndpoint) (*HNSEndpoint, error) { + operation := "CreateEndpoint" + title := "HCSShim::HNSNetwork::" + operation + logrus.Debugf(title+" id=%s, endpointId=%s", network.Id, endpoint.Id) + + endpoint.VirtualNetwork = network.Id + return endpoint.Create() +} + +func (network *HNSNetwork) CreateRemoteEndpoint(endpoint *HNSEndpoint) (*HNSEndpoint, error) { + operation := "CreateRemoteEndpoint" + title := "HCSShim::HNSNetwork::" + operation + logrus.Debugf(title+" id=%s", network.Id) + endpoint.IsRemoteEndpoint = true + return network.CreateEndpoint(endpoint) +} diff --git a/vendor/github.com/Microsoft/hcsshim/hnspolicy.go b/vendor/github.com/Microsoft/hcsshim/hnspolicy.go index ecfbf0eda378..bf860e9387ff 100644 --- a/vendor/github.com/Microsoft/hcsshim/hnspolicy.go +++ b/vendor/github.com/Microsoft/hcsshim/hnspolicy.go @@ -1,95 +1,94 @@ -package hcsshim - -// Type of Request Support in ModifySystem -type PolicyType string - -// RequestType const -const ( - Nat PolicyType = "NAT" - ACL PolicyType = "ACL" - PA PolicyType = "PA" - VLAN PolicyType = "VLAN" - VSID PolicyType = "VSID" - VNet PolicyType = "VNET" - L2Driver PolicyType = "L2Driver" - Isolation PolicyType = "Isolation" - QOS PolicyType = "QOS" - OutboundNat PolicyType = "OutBoundNAT" - ExternalLoadBalancer PolicyType = "ELB" - Route PolicyType = "ROUTE" -) - -type NatPolicy struct { - Type PolicyType `json:"Type"` - Protocol string - InternalPort uint16 - ExternalPort uint16 -} - -type QosPolicy struct { - Type PolicyType `json:"Type"` - MaximumOutgoingBandwidthInBytes uint64 -} - -type IsolationPolicy struct { - Type PolicyType `json:"Type"` - VLAN uint - VSID uint - InDefaultIsolation bool -} - -type VlanPolicy struct { - Type PolicyType `json:"Type"` - VLAN uint -} - -type VsidPolicy struct { - Type PolicyType `json:"Type"` - VSID uint -} - -type PaPolicy struct { - Type PolicyType `json:"Type"` - PA string `json:"PA"` -} - -type OutboundNatPolicy struct { - Policy - VIP string `json:"VIP,omitempty"` - Exceptions []string `json:"ExceptionList,omitempty"` -} - -type ActionType string -type DirectionType string -type RuleType string - -const ( - Allow ActionType = "Allow" - Block ActionType = "Block" - - In DirectionType = "In" - Out DirectionType = "Out" - - Host RuleType = "Host" - Switch RuleType = "Switch" -) - -type ACLPolicy struct { - Type PolicyType `json:"Type"` - Protocol uint16 - InternalPort uint16 - Action ActionType - Direction DirectionType - LocalAddress string - RemoteAddress string - LocalPort uint16 - RemotePort uint16 - RuleType RuleType `json:"RuleType,omitempty"` - - Priority uint16 - ServiceName string -} - -type Policy struct { - Type PolicyType `json:"Type"` -} +package hcsshim + +// Type of Request Support in ModifySystem +type PolicyType string + +// RequestType const +const ( + Nat PolicyType = "NAT" + ACL PolicyType = "ACL" + PA PolicyType = "PA" + VLAN PolicyType = "VLAN" + VSID PolicyType = "VSID" + VNet PolicyType = "VNET" + L2Driver PolicyType = "L2Driver" + Isolation PolicyType = "Isolation" + QOS PolicyType = "QOS" + OutboundNat PolicyType = "OutBoundNAT" + ExternalLoadBalancer PolicyType = "ELB" + Route PolicyType = "ROUTE" +) + +type NatPolicy struct { + Type PolicyType `json:"Type"` + Protocol string + InternalPort uint16 + ExternalPort uint16 +} + +type QosPolicy struct { + Type PolicyType `json:"Type"` + MaximumOutgoingBandwidthInBytes uint64 +} + +type IsolationPolicy struct { + Type PolicyType `json:"Type"` + VLAN uint + VSID uint + InDefaultIsolation bool +} + +type VlanPolicy struct { + Type PolicyType `json:"Type"` + VLAN uint +} + +type VsidPolicy struct { + Type PolicyType `json:"Type"` + VSID uint +} + +type PaPolicy struct { + Type PolicyType `json:"Type"` + PA string `json:"PA"` +} + +type OutboundNatPolicy struct { + Policy + VIP string `json:"VIP,omitempty"` + Exceptions []string `json:"ExceptionList,omitempty"` +} + +type ActionType string +type DirectionType string +type RuleType string + +const ( + Allow ActionType = "Allow" + Block ActionType = "Block" + + In DirectionType = "In" + Out DirectionType = "Out" + + Host RuleType = "Host" + Switch RuleType = "Switch" +) + +type ACLPolicy struct { + Type PolicyType `json:"Type"` + Protocol uint16 + InternalPort uint16 + Action ActionType + Direction DirectionType + LocalAddresses string + RemoteAddresses string + LocalPort uint16 + RemotePort uint16 + RuleType RuleType `json:"RuleType,omitempty"` + Priority uint16 + ServiceName string +} + +type Policy struct { + Type PolicyType `json:"Type"` +} diff --git a/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go b/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go index bbd7e1edb084..ef1ccab16e64 100644 --- a/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go +++ b/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go @@ -1,200 +1,200 @@ -package hcsshim - -import ( - "encoding/json" - - "github.com/sirupsen/logrus" -) - -// RoutePolicy is a structure defining schema for Route based Policy -type RoutePolicy struct { - Policy - DestinationPrefix string `json:"DestinationPrefix,omitempty"` - NextHop string `json:"NextHop,omitempty"` - EncapEnabled bool `json:"NeedEncap,omitempty"` -} - -// ELBPolicy is a structure defining schema for ELB LoadBalancing based Policy -type ELBPolicy struct { - LBPolicy - SourceVIP string `json:"SourceVIP,omitempty"` - VIPs []string `json:"VIPs,omitempty"` - ILB bool `json:"ILB,omitempty"` -} - -// LBPolicy is a structure defining schema for LoadBalancing based Policy -type LBPolicy struct { - Policy - Protocol uint16 `json:"Protocol,omitempty"` - InternalPort uint16 - ExternalPort uint16 -} - -// PolicyList is a structure defining schema for Policy list request -type PolicyList struct { - ID string `json:"ID,omitempty"` - EndpointReferences []string `json:"References,omitempty"` - Policies []json.RawMessage `json:"Policies,omitempty"` -} - -// HNSPolicyListRequest makes a call into HNS to update/query a single network -func HNSPolicyListRequest(method, path, request string) (*PolicyList, error) { - var policy PolicyList - err := hnsCall(method, "/policylists/"+path, request, &policy) - if err != nil { - return nil, err - } - - return &policy, nil -} - -// HNSListPolicyListRequest gets all the policy list -func HNSListPolicyListRequest() ([]PolicyList, error) { - var plist []PolicyList - err := hnsCall("GET", "/policylists/", "", &plist) - if err != nil { - return nil, err - } - - return plist, nil -} - -// PolicyListRequest makes a HNS call to modify/query a network policy list -func PolicyListRequest(method, path, request string) (*PolicyList, error) { - policylist := &PolicyList{} - err := hnsCall(method, "/policylists/"+path, request, &policylist) - if err != nil { - return nil, err - } - - return policylist, nil -} - -// GetPolicyListByID get the policy list by ID -func GetPolicyListByID(policyListID string) (*PolicyList, error) { - return PolicyListRequest("GET", policyListID, "") -} - -// Create PolicyList by sending PolicyListRequest to HNS. -func (policylist *PolicyList) Create() (*PolicyList, error) { - operation := "Create" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" id=%s", policylist.ID) - jsonString, err := json.Marshal(policylist) - if err != nil { - return nil, err - } - return PolicyListRequest("POST", "", string(jsonString)) -} - -// Delete deletes PolicyList -func (policylist *PolicyList) Delete() (*PolicyList, error) { - operation := "Delete" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" id=%s", policylist.ID) - - return PolicyListRequest("DELETE", policylist.ID, "") -} - -// AddEndpoint add an endpoint to a Policy List -func (policylist *PolicyList) AddEndpoint(endpoint *HNSEndpoint) (*PolicyList, error) { - operation := "AddEndpoint" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" id=%s, endpointId:%s", policylist.ID, endpoint.Id) - - _, err := policylist.Delete() - if err != nil { - return nil, err - } - - // Add Endpoint to the Existing List - policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) - - return policylist.Create() -} - -// RemoveEndpoint removes an endpoint from the Policy List -func (policylist *PolicyList) RemoveEndpoint(endpoint *HNSEndpoint) (*PolicyList, error) { - operation := "RemoveEndpoint" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" id=%s, endpointId:%s", policylist.ID, endpoint.Id) - - _, err := policylist.Delete() - if err != nil { - return nil, err - } - - elementToRemove := "/endpoints/" + endpoint.Id - - var references []string - - for _, endpointReference := range policylist.EndpointReferences { - if endpointReference == elementToRemove { - continue - } - references = append(references, endpointReference) - } - policylist.EndpointReferences = references - return policylist.Create() -} - -// AddLoadBalancer policy list for the specified endpoints -func AddLoadBalancer(endpoints []HNSEndpoint, isILB bool, sourceVIP, vip string, protocol uint16, internalPort uint16, externalPort uint16) (*PolicyList, error) { - operation := "AddLoadBalancer" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" endpointId=%v, isILB=%v, sourceVIP=%s, vip=%s, protocol=%v, internalPort=%v, externalPort=%v", endpoints, isILB, sourceVIP, vip, protocol, internalPort, externalPort) - - policylist := &PolicyList{} - - elbPolicy := &ELBPolicy{ - SourceVIP: sourceVIP, - ILB: isILB, - } - - if len(vip) > 0 { - elbPolicy.VIPs = []string{vip} - } - elbPolicy.Type = ExternalLoadBalancer - elbPolicy.Protocol = protocol - elbPolicy.InternalPort = internalPort - elbPolicy.ExternalPort = externalPort - - for _, endpoint := range endpoints { - policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) - } - - jsonString, err := json.Marshal(elbPolicy) - if err != nil { - return nil, err - } - policylist.Policies = append(policylist.Policies, jsonString) - return policylist.Create() -} - -// AddRoute adds route policy list for the specified endpoints -func AddRoute(endpoints []HNSEndpoint, destinationPrefix string, nextHop string, encapEnabled bool) (*PolicyList, error) { - operation := "AddRoute" - title := "HCSShim::PolicyList::" + operation - logrus.Debugf(title+" destinationPrefix:%s", destinationPrefix) - - policylist := &PolicyList{} - - rPolicy := &RoutePolicy{ - DestinationPrefix: destinationPrefix, - NextHop: nextHop, - EncapEnabled: encapEnabled, - } - rPolicy.Type = Route - - for _, endpoint := range endpoints { - policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) - } - - jsonString, err := json.Marshal(rPolicy) - if err != nil { - return nil, err - } - - policylist.Policies = append(policylist.Policies, jsonString) - return policylist.Create() -} +package hcsshim + +import ( + "encoding/json" + + "github.com/sirupsen/logrus" +) + +// RoutePolicy is a structure defining schema for Route based Policy +type RoutePolicy struct { + Policy + DestinationPrefix string `json:"DestinationPrefix,omitempty"` + NextHop string `json:"NextHop,omitempty"` + EncapEnabled bool `json:"NeedEncap,omitempty"` +} + +// ELBPolicy is a structure defining schema for ELB LoadBalancing based Policy +type ELBPolicy struct { + LBPolicy + SourceVIP string `json:"SourceVIP,omitempty"` + VIPs []string `json:"VIPs,omitempty"` + ILB bool `json:"ILB,omitempty"` +} + +// LBPolicy is a structure defining schema for LoadBalancing based Policy +type LBPolicy struct { + Policy + Protocol uint16 `json:"Protocol,omitempty"` + InternalPort uint16 + ExternalPort uint16 +} + +// PolicyList is a structure defining schema for Policy list request +type PolicyList struct { + ID string `json:"ID,omitempty"` + EndpointReferences []string `json:"References,omitempty"` + Policies []json.RawMessage `json:"Policies,omitempty"` +} + +// HNSPolicyListRequest makes a call into HNS to update/query a single network +func HNSPolicyListRequest(method, path, request string) (*PolicyList, error) { + var policy PolicyList + err := hnsCall(method, "/policylists/"+path, request, &policy) + if err != nil { + return nil, err + } + + return &policy, nil +} + +// HNSListPolicyListRequest gets all the policy list +func HNSListPolicyListRequest() ([]PolicyList, error) { + var plist []PolicyList + err := hnsCall("GET", "/policylists/", "", &plist) + if err != nil { + return nil, err + } + + return plist, nil +} + +// PolicyListRequest makes a HNS call to modify/query a network policy list +func PolicyListRequest(method, path, request string) (*PolicyList, error) { + policylist := &PolicyList{} + err := hnsCall(method, "/policylists/"+path, request, &policylist) + if err != nil { + return nil, err + } + + return policylist, nil +} + +// GetPolicyListByID get the policy list by ID +func GetPolicyListByID(policyListID string) (*PolicyList, error) { + return PolicyListRequest("GET", policyListID, "") +} + +// Create PolicyList by sending PolicyListRequest to HNS. +func (policylist *PolicyList) Create() (*PolicyList, error) { + operation := "Create" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" id=%s", policylist.ID) + jsonString, err := json.Marshal(policylist) + if err != nil { + return nil, err + } + return PolicyListRequest("POST", "", string(jsonString)) +} + +// Delete deletes PolicyList +func (policylist *PolicyList) Delete() (*PolicyList, error) { + operation := "Delete" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" id=%s", policylist.ID) + + return PolicyListRequest("DELETE", policylist.ID, "") +} + +// AddEndpoint add an endpoint to a Policy List +func (policylist *PolicyList) AddEndpoint(endpoint *HNSEndpoint) (*PolicyList, error) { + operation := "AddEndpoint" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" id=%s, endpointId:%s", policylist.ID, endpoint.Id) + + _, err := policylist.Delete() + if err != nil { + return nil, err + } + + // Add Endpoint to the Existing List + policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) + + return policylist.Create() +} + +// RemoveEndpoint removes an endpoint from the Policy List +func (policylist *PolicyList) RemoveEndpoint(endpoint *HNSEndpoint) (*PolicyList, error) { + operation := "RemoveEndpoint" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" id=%s, endpointId:%s", policylist.ID, endpoint.Id) + + _, err := policylist.Delete() + if err != nil { + return nil, err + } + + elementToRemove := "/endpoints/" + endpoint.Id + + var references []string + + for _, endpointReference := range policylist.EndpointReferences { + if endpointReference == elementToRemove { + continue + } + references = append(references, endpointReference) + } + policylist.EndpointReferences = references + return policylist.Create() +} + +// AddLoadBalancer policy list for the specified endpoints +func AddLoadBalancer(endpoints []HNSEndpoint, isILB bool, sourceVIP, vip string, protocol uint16, internalPort uint16, externalPort uint16) (*PolicyList, error) { + operation := "AddLoadBalancer" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" endpointId=%v, isILB=%v, sourceVIP=%s, vip=%s, protocol=%v, internalPort=%v, externalPort=%v", endpoints, isILB, sourceVIP, vip, protocol, internalPort, externalPort) + + policylist := &PolicyList{} + + elbPolicy := &ELBPolicy{ + SourceVIP: sourceVIP, + ILB: isILB, + } + + if len(vip) > 0 { + elbPolicy.VIPs = []string{vip} + } + elbPolicy.Type = ExternalLoadBalancer + elbPolicy.Protocol = protocol + elbPolicy.InternalPort = internalPort + elbPolicy.ExternalPort = externalPort + + for _, endpoint := range endpoints { + policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) + } + + jsonString, err := json.Marshal(elbPolicy) + if err != nil { + return nil, err + } + policylist.Policies = append(policylist.Policies, jsonString) + return policylist.Create() +} + +// AddRoute adds route policy list for the specified endpoints +func AddRoute(endpoints []HNSEndpoint, destinationPrefix string, nextHop string, encapEnabled bool) (*PolicyList, error) { + operation := "AddRoute" + title := "HCSShim::PolicyList::" + operation + logrus.Debugf(title+" destinationPrefix:%s", destinationPrefix) + + policylist := &PolicyList{} + + rPolicy := &RoutePolicy{ + DestinationPrefix: destinationPrefix, + NextHop: nextHop, + EncapEnabled: encapEnabled, + } + rPolicy.Type = Route + + for _, endpoint := range endpoints { + policylist.EndpointReferences = append(policylist.EndpointReferences, "/endpoints/"+endpoint.Id) + } + + jsonString, err := json.Marshal(rPolicy) + if err != nil { + return nil, err + } + + policylist.Policies = append(policylist.Policies, jsonString) + return policylist.Create() +} diff --git a/vendor/github.com/Microsoft/hcsshim/importlayer.go b/vendor/github.com/Microsoft/hcsshim/importlayer.go index 3aed14376a42..2742b9f75008 100644 --- a/vendor/github.com/Microsoft/hcsshim/importlayer.go +++ b/vendor/github.com/Microsoft/hcsshim/importlayer.go @@ -129,37 +129,39 @@ type legacyLayerWriterWrapper struct { } func (r *legacyLayerWriterWrapper) Close() error { - defer os.RemoveAll(r.root) + defer os.RemoveAll(r.root.Name()) + defer r.legacyLayerWriter.CloseRoots() err := r.legacyLayerWriter.Close() if err != nil { return err } - // Use the original path here because ImportLayer does not support long paths for the source in TP5. - // But do use a long path for the destination to work around another bug with directories - // with MAX_PATH - 12 < length < MAX_PATH. info := r.info - fullPath, err := makeLongAbsPath(filepath.Join(info.HomeDir, r.layerID)) - if err != nil { - return err - } - info.HomeDir = "" - if err = ImportLayer(info, fullPath, r.path, r.parentLayerPaths); err != nil { + if err = ImportLayer(info, r.destRoot.Name(), r.path, r.parentLayerPaths); err != nil { return err } + for _, name := range r.Tombstones { + if err = removeRelative(name, r.destRoot); err != nil && !os.IsNotExist(err) { + return err + } + } // Add any hard links that were collected. for _, lnk := range r.PendingLinks { - if err = os.Remove(lnk.Path); err != nil && !os.IsNotExist(err) { + if err = removeRelative(lnk.Path, r.destRoot); err != nil && !os.IsNotExist(err) { return err } - if err = os.Link(lnk.Target, lnk.Path); err != nil { + if err = linkRelative(lnk.Target, lnk.TargetRoot, lnk.Path, r.destRoot); err != nil { return err } } // Prepare the utility VM for use if one is present in the layer. if r.HasUtilityVM { - err = ProcessUtilityVMImage(filepath.Join(fullPath, "UtilityVM")) + err := ensureNotReparsePointRelative("UtilityVM", r.destRoot) + if err != nil { + return err + } + err = ProcessUtilityVMImage(filepath.Join(r.destRoot.Name(), "UtilityVM")) if err != nil { return err } @@ -173,8 +175,12 @@ func (r *legacyLayerWriterWrapper) Close() error { func NewLayerWriter(info DriverInfo, layerID string, parentLayerPaths []string) (LayerWriter, error) { if len(parentLayerPaths) == 0 { // This is a base layer. It gets imported differently. + f, err := openRoot(filepath.Join(info.HomeDir, layerID)) + if err != nil { + return nil, err + } return &baseLayerWriter{ - root: filepath.Join(info.HomeDir, layerID), + root: f, }, nil } @@ -185,8 +191,12 @@ func NewLayerWriter(info DriverInfo, layerID string, parentLayerPaths []string) if err != nil { return nil, err } + w, err := newLegacyLayerWriter(path, parentLayerPaths, filepath.Join(info.HomeDir, layerID)) + if err != nil { + return nil, err + } return &legacyLayerWriterWrapper{ - legacyLayerWriter: newLegacyLayerWriter(path, parentLayerPaths, filepath.Join(info.HomeDir, layerID)), + legacyLayerWriter: w, info: info, layerID: layerID, path: path, diff --git a/vendor/github.com/Microsoft/hcsshim/interface.go b/vendor/github.com/Microsoft/hcsshim/interface.go index 9fc7852e41b0..e21f30025aeb 100644 --- a/vendor/github.com/Microsoft/hcsshim/interface.go +++ b/vendor/github.com/Microsoft/hcsshim/interface.go @@ -30,11 +30,12 @@ type Layer struct { } type MappedDir struct { - HostPath string - ContainerPath string - ReadOnly bool - BandwidthMaximum uint64 - IOPSMaximum uint64 + HostPath string + ContainerPath string + ReadOnly bool + BandwidthMaximum uint64 + IOPSMaximum uint64 + CreateInUtilityVM bool } type MappedPipe struct { diff --git a/vendor/github.com/Microsoft/hcsshim/legacy.go b/vendor/github.com/Microsoft/hcsshim/legacy.go index c7f6073ac3c8..0b23b6c4d007 100644 --- a/vendor/github.com/Microsoft/hcsshim/legacy.go +++ b/vendor/github.com/Microsoft/hcsshim/legacy.go @@ -121,6 +121,16 @@ func (r *legacyLayerReader) walkUntilCancelled() error { if err != nil { return err } + + // Indirect fix for https://github.com/moby/moby/issues/32838#issuecomment-343610048. + // Handle failure from what may be a golang bug in the conversion of + // UTF16 to UTF8 in files which are left in the recycle bin. Os.Lstat + // which is called by filepath.Walk will fail when a filename contains + // unicode characters. Skip the recycle bin regardless which is goodness. + if strings.EqualFold(path, filepath.Join(r.root, `Files\$Recycle.Bin`)) && info.IsDir() { + return filepath.SkipDir + } + if path == r.root || path == filepath.Join(r.root, "tombstones.txt") || strings.HasSuffix(path, ".$wcidirs$") { return nil } @@ -326,59 +336,79 @@ func (r *legacyLayerReader) Close() error { type pendingLink struct { Path, Target string + TargetRoot *os.File +} + +type pendingDir struct { + Path string + Root *os.File } type legacyLayerWriter struct { - root string - parentRoots []string - destRoot string - currentFile *os.File - backupWriter *winio.BackupFileWriter - tombstones []string - pathFixed bool - HasUtilityVM bool - uvmDi []dirInfo - addedFiles map[string]bool - PendingLinks []pendingLink + root *os.File + destRoot *os.File + parentRoots []*os.File + currentFile *os.File + currentFileName string + currentFileRoot *os.File + backupWriter *winio.BackupFileWriter + Tombstones []string + HasUtilityVM bool + uvmDi []dirInfo + addedFiles map[string]bool + PendingLinks []pendingLink + pendingDirs []pendingDir + currentIsDir bool } // newLegacyLayerWriter returns a LayerWriter that can write the contaler layer // transport format to disk. -func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) *legacyLayerWriter { - return &legacyLayerWriter{ - root: root, - parentRoots: parentRoots, - destRoot: destRoot, - addedFiles: make(map[string]bool), +func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w *legacyLayerWriter, err error) { + w = &legacyLayerWriter{ + addedFiles: make(map[string]bool), } -} - -func (w *legacyLayerWriter) init() error { - if !w.pathFixed { - path, err := makeLongAbsPath(w.root) + defer func() { if err != nil { - return err - } - for i, p := range w.parentRoots { - w.parentRoots[i], err = makeLongAbsPath(p) - if err != nil { - return err - } + w.CloseRoots() + w = nil } - destPath, err := makeLongAbsPath(w.destRoot) + }() + w.root, err = openRoot(root) + if err != nil { + return + } + w.destRoot, err = openRoot(destRoot) + if err != nil { + return + } + for _, r := range parentRoots { + f, err := openRoot(r) if err != nil { - return err + return w, err } - w.root = path - w.destRoot = destPath - w.pathFixed = true + w.parentRoots = append(w.parentRoots, f) } - return nil + return +} + +func (w *legacyLayerWriter) CloseRoots() { + if w.root != nil { + w.root.Close() + w.root = nil + } + if w.destRoot != nil { + w.destRoot.Close() + w.destRoot = nil + } + for i := range w.parentRoots { + w.parentRoots[i].Close() + } + w.parentRoots = nil } func (w *legacyLayerWriter) initUtilityVM() error { if !w.HasUtilityVM { - err := os.Mkdir(filepath.Join(w.destRoot, utilityVMPath), 0) + err := mkdirRelative(utilityVMPath, w.destRoot) if err != nil { return err } @@ -386,7 +416,7 @@ func (w *legacyLayerWriter) initUtilityVM() error { // clone the utility VM from the parent layer into this layer. Use hard // links to avoid unnecessary copying, since most of the files are // immutable. - err = cloneTree(filepath.Join(w.parentRoots[0], utilityVMFilesPath), filepath.Join(w.destRoot, utilityVMFilesPath), mutatedUtilityVMFiles) + err = cloneTree(w.parentRoots[0], w.destRoot, utilityVMFilesPath, mutatedUtilityVMFiles) if err != nil { return fmt.Errorf("cloning the parent utility VM image failed: %s", err) } @@ -395,7 +425,40 @@ func (w *legacyLayerWriter) initUtilityVM() error { return nil } -func (w *legacyLayerWriter) reset() { +func (w *legacyLayerWriter) reset() error { + if w.currentIsDir { + r := w.currentFile + br := winio.NewBackupStreamReader(r) + // Seek to the beginning of the backup stream, skipping the fileattrs + if _, err := r.Seek(4, io.SeekStart); err != nil { + return err + } + + for { + bhdr, err := br.Next() + if err == io.EOF { + // end of backupstream data + break + } + if err != nil { + return err + } + switch bhdr.Id { + case winio.BackupReparseData: + // The current file is a `.$wcidirs$` metadata file that + // describes a directory reparse point. Delete the placeholder + // directory to prevent future files being added into the + // destination of the reparse point during the ImportLayer call + if err := removeRelative(w.currentFileName, w.currentFileRoot); err != nil { + return err + } + w.pendingDirs = append(w.pendingDirs, pendingDir{Path: w.currentFileName, Root: w.currentFileRoot}) + default: + // ignore all other stream types, as we only care about directory reparse points + } + } + w.currentIsDir = false + } if w.backupWriter != nil { w.backupWriter.Close() w.backupWriter = nil @@ -403,21 +466,21 @@ func (w *legacyLayerWriter) reset() { if w.currentFile != nil { w.currentFile.Close() w.currentFile = nil + w.currentFileName = "" + w.currentFileRoot = nil } + return nil } // copyFileWithMetadata copies a file using the backup/restore APIs in order to preserve metadata -func copyFileWithMetadata(srcPath, destPath string, isDir bool) (fileInfo *winio.FileBasicInfo, err error) { - createDisposition := uint32(syscall.CREATE_NEW) - if isDir { - err = os.Mkdir(destPath, 0) - if err != nil { - return nil, err - } - createDisposition = syscall.OPEN_EXISTING - } - - src, err := openFileOrDir(srcPath, syscall.GENERIC_READ|winio.ACCESS_SYSTEM_SECURITY, syscall.OPEN_EXISTING) +func copyFileWithMetadata(srcRoot, destRoot *os.File, subPath string, isDir bool) (fileInfo *winio.FileBasicInfo, err error) { + src, err := openRelative( + subPath, + srcRoot, + syscall.GENERIC_READ|winio.ACCESS_SYSTEM_SECURITY, + syscall.FILE_SHARE_READ, + _FILE_OPEN, + _FILE_OPEN_REPARSE_POINT) if err != nil { return nil, err } @@ -430,7 +493,17 @@ func copyFileWithMetadata(srcPath, destPath string, isDir bool) (fileInfo *winio return nil, err } - dest, err := openFileOrDir(destPath, syscall.GENERIC_READ|syscall.GENERIC_WRITE|winio.WRITE_DAC|winio.WRITE_OWNER|winio.ACCESS_SYSTEM_SECURITY, createDisposition) + extraFlags := uint32(0) + if isDir { + extraFlags |= _FILE_DIRECTORY_FILE + } + dest, err := openRelative( + subPath, + destRoot, + syscall.GENERIC_READ|syscall.GENERIC_WRITE|winio.WRITE_DAC|winio.WRITE_OWNER|winio.ACCESS_SYSTEM_SECURITY, + syscall.FILE_SHARE_READ, + _FILE_CREATE, + extraFlags) if err != nil { return nil, err } @@ -459,39 +532,49 @@ func copyFileWithMetadata(srcPath, destPath string, isDir bool) (fileInfo *winio // cloneTree clones a directory tree using hard links. It skips hard links for // the file names in the provided map and just copies those files. -func cloneTree(srcPath, destPath string, mutatedFiles map[string]bool) error { +func cloneTree(srcRoot *os.File, destRoot *os.File, subPath string, mutatedFiles map[string]bool) error { var di []dirInfo - err := filepath.Walk(srcPath, func(srcFilePath string, info os.FileInfo, err error) error { + err := ensureNotReparsePointRelative(subPath, srcRoot) + if err != nil { + return err + } + err = filepath.Walk(filepath.Join(srcRoot.Name(), subPath), func(srcFilePath string, info os.FileInfo, err error) error { if err != nil { return err } - relPath, err := filepath.Rel(srcPath, srcFilePath) + relPath, err := filepath.Rel(srcRoot.Name(), srcFilePath) if err != nil { return err } - destFilePath := filepath.Join(destPath, relPath) + fileAttributes := info.Sys().(*syscall.Win32FileAttributeData).FileAttributes // Directories, reparse points, and files that will be mutated during // utility VM import must be copied. All other files can be hard linked. - isReparsePoint := info.Sys().(*syscall.Win32FileAttributeData).FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 - if info.IsDir() || isReparsePoint || mutatedFiles[relPath] { - fi, err := copyFileWithMetadata(srcFilePath, destFilePath, info.IsDir()) + isReparsePoint := fileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 + // In go1.9, FileInfo.IsDir() returns false if the directory is also a symlink. + // See: https://github.com/golang/go/commit/1989921aef60c83e6f9127a8448fb5ede10e9acc + // Fixes the problem by checking syscall.FILE_ATTRIBUTE_DIRECTORY directly + isDir := fileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 + + if isDir || isReparsePoint || mutatedFiles[relPath] { + fi, err := copyFileWithMetadata(srcRoot, destRoot, relPath, isDir) if err != nil { return err } - if info.IsDir() && !isReparsePoint { - di = append(di, dirInfo{path: destFilePath, fileInfo: *fi}) + if isDir && !isReparsePoint { + di = append(di, dirInfo{path: relPath, fileInfo: *fi}) } } else { - err = os.Link(srcFilePath, destFilePath) + err = linkRelative(relPath, srcRoot, relPath, destRoot) if err != nil { return err } } - // Don't recurse on reparse points. - if info.IsDir() && isReparsePoint { + // Don't recurse on reparse points in go1.8 and older. Filepath.Walk + // handles this in go1.9 and newer. + if isDir && isReparsePoint && shouldSkipDirectoryReparse { return filepath.SkipDir } @@ -501,13 +584,11 @@ func cloneTree(srcPath, destPath string, mutatedFiles map[string]bool) error { return err } - return reapplyDirectoryTimes(di) + return reapplyDirectoryTimes(destRoot, di) } func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) error { - w.reset() - err := w.init() - if err != nil { + if err := w.reset(); err != nil { return err } @@ -515,6 +596,7 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro return w.initUtilityVM() } + name = filepath.Clean(name) if hasPathPrefix(name, utilityVMPath) { if !w.HasUtilityVM { return errors.New("missing UtilityVM directory") @@ -522,10 +604,9 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro if !hasPathPrefix(name, utilityVMFilesPath) && name != utilityVMFilesPath { return errors.New("invalid UtilityVM layer") } - path := filepath.Join(w.destRoot, name) - createDisposition := uint32(syscall.OPEN_EXISTING) + createDisposition := uint32(_FILE_OPEN) if (fileInfo.FileAttributes & syscall.FILE_ATTRIBUTE_DIRECTORY) != 0 { - st, err := os.Lstat(path) + st, err := lstatRelative(name, w.destRoot) if err != nil && !os.IsNotExist(err) { return err } @@ -533,37 +614,44 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro // Delete the existing file/directory if it is not the same type as this directory. existingAttr := st.Sys().(*syscall.Win32FileAttributeData).FileAttributes if (uint32(fileInfo.FileAttributes)^existingAttr)&(syscall.FILE_ATTRIBUTE_DIRECTORY|syscall.FILE_ATTRIBUTE_REPARSE_POINT) != 0 { - if err = os.RemoveAll(path); err != nil { + if err = removeAllRelative(name, w.destRoot); err != nil { return err } st = nil } } if st == nil { - if err = os.Mkdir(path, 0); err != nil { + if err = mkdirRelative(name, w.destRoot); err != nil { return err } } if fileInfo.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT == 0 { - w.uvmDi = append(w.uvmDi, dirInfo{path: path, fileInfo: *fileInfo}) + w.uvmDi = append(w.uvmDi, dirInfo{path: name, fileInfo: *fileInfo}) } } else { // Overwrite any existing hard link. - err = os.Remove(path) + err := removeRelative(name, w.destRoot) if err != nil && !os.IsNotExist(err) { return err } - createDisposition = syscall.CREATE_NEW + createDisposition = _FILE_CREATE } - f, err := openFileOrDir(path, syscall.GENERIC_READ|syscall.GENERIC_WRITE|winio.WRITE_DAC|winio.WRITE_OWNER|winio.ACCESS_SYSTEM_SECURITY, createDisposition) + f, err := openRelative( + name, + w.destRoot, + syscall.GENERIC_READ|syscall.GENERIC_WRITE|winio.WRITE_DAC|winio.WRITE_OWNER|winio.ACCESS_SYSTEM_SECURITY, + syscall.FILE_SHARE_READ, + createDisposition, + _FILE_OPEN_REPARSE_POINT, + ) if err != nil { return err } defer func() { if f != nil { f.Close() - os.Remove(path) + removeRelative(name, w.destRoot) } }() @@ -574,28 +662,31 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro w.backupWriter = winio.NewBackupFileWriter(f, true) w.currentFile = f + w.currentFileName = name + w.currentFileRoot = w.destRoot w.addedFiles[name] = true f = nil return nil } - path := filepath.Join(w.root, name) + fname := name if (fileInfo.FileAttributes & syscall.FILE_ATTRIBUTE_DIRECTORY) != 0 { - err := os.Mkdir(path, 0) + err := mkdirRelative(name, w.root) if err != nil { return err } - path += ".$wcidirs$" + fname += ".$wcidirs$" + w.currentIsDir = true } - f, err := openFileOrDir(path, syscall.GENERIC_READ|syscall.GENERIC_WRITE, syscall.CREATE_NEW) + f, err := openRelative(fname, w.root, syscall.GENERIC_READ|syscall.GENERIC_WRITE, syscall.FILE_SHARE_READ, _FILE_CREATE, 0) if err != nil { return err } defer func() { if f != nil { f.Close() - os.Remove(path) + removeRelative(fname, w.root) } }() @@ -617,19 +708,20 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro } w.currentFile = f + w.currentFileName = name + w.currentFileRoot = w.root w.addedFiles[name] = true f = nil return nil } func (w *legacyLayerWriter) AddLink(name string, target string) error { - w.reset() - err := w.init() - if err != nil { + if err := w.reset(); err != nil { return err } - var roots []string + target = filepath.Clean(target) + var roots []*os.File if hasPathPrefix(target, filesPath) { // Look for cross-layer hard link targets in the parent layers, since // nothing is in the destination path yet. @@ -638,7 +730,7 @@ func (w *legacyLayerWriter) AddLink(name string, target string) error { // Since the utility VM is fully cloned into the destination path // already, look for cross-layer hard link targets directly in the // destination path. - roots = []string{w.destRoot} + roots = []*os.File{w.destRoot} } if roots == nil || (!hasPathPrefix(name, filesPath) && !hasPathPrefix(name, utilityVMFilesPath)) { @@ -647,12 +739,12 @@ func (w *legacyLayerWriter) AddLink(name string, target string) error { // Find to try the target of the link in a previously added file. If that // fails, search in parent layers. - var selectedRoot string + var selectedRoot *os.File if _, ok := w.addedFiles[target]; ok { selectedRoot = w.destRoot } else { for _, r := range roots { - if _, err = os.Lstat(filepath.Join(r, target)); err != nil { + if _, err := lstatRelative(target, r); err != nil { if !os.IsNotExist(err) { return err } @@ -661,22 +753,25 @@ func (w *legacyLayerWriter) AddLink(name string, target string) error { break } } - if selectedRoot == "" { + if selectedRoot == nil { return fmt.Errorf("failed to find link target for '%s' -> '%s'", name, target) } } + // The link can't be written until after the ImportLayer call. w.PendingLinks = append(w.PendingLinks, pendingLink{ - Path: filepath.Join(w.destRoot, name), - Target: filepath.Join(selectedRoot, target), + Path: name, + Target: target, + TargetRoot: selectedRoot, }) w.addedFiles[name] = true return nil } func (w *legacyLayerWriter) Remove(name string) error { + name = filepath.Clean(name) if hasPathPrefix(name, filesPath) { - w.tombstones = append(w.tombstones, name[len(filesPath)+1:]) + w.Tombstones = append(w.Tombstones, name) } else if hasPathPrefix(name, utilityVMFilesPath) { err := w.initUtilityVM() if err != nil { @@ -685,11 +780,10 @@ func (w *legacyLayerWriter) Remove(name string) error { // Make sure the path exists; os.RemoveAll will not fail if the file is // already gone, and this needs to be a fatal error for diagnostics // purposes. - path := filepath.Join(w.destRoot, name) - if _, err := os.Lstat(path); err != nil { + if _, err := lstatRelative(name, w.destRoot); err != nil { return err } - err = os.RemoveAll(path) + err = removeAllRelative(name, w.destRoot) if err != nil { return err } @@ -711,28 +805,20 @@ func (w *legacyLayerWriter) Write(b []byte) (int, error) { } func (w *legacyLayerWriter) Close() error { - w.reset() - err := w.init() - if err != nil { - return err - } - tf, err := os.Create(filepath.Join(w.root, "tombstones.txt")) - if err != nil { + if err := w.reset(); err != nil { return err } - defer tf.Close() - _, err = tf.Write([]byte("\xef\xbb\xbfVersion 1.0\n")) - if err != nil { + if err := removeRelative("tombstones.txt", w.root); err != nil && !os.IsNotExist(err) { return err } - for _, t := range w.tombstones { - _, err = tf.Write([]byte(filepath.Join(`\`, t) + "\n")) + for _, pd := range w.pendingDirs { + err := mkdirRelative(pd.Path, pd.Root) if err != nil { return err } } if w.HasUtilityVM { - err = reapplyDirectoryTimes(w.uvmDi) + err := reapplyDirectoryTimes(w.destRoot, w.uvmDi) if err != nil { return err } diff --git a/vendor/github.com/Microsoft/hcsshim/legacy18.go b/vendor/github.com/Microsoft/hcsshim/legacy18.go new file mode 100644 index 000000000000..0f593e8aba83 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/legacy18.go @@ -0,0 +1,7 @@ +// +build !go1.9 + +package hcsshim + +// Due to a bug in go1.8 and before, directory reparse points need to be skipped +// during filepath.Walk. This is fixed in go1.9 +var shouldSkipDirectoryReparse = true diff --git a/vendor/github.com/Microsoft/hcsshim/legacy19.go b/vendor/github.com/Microsoft/hcsshim/legacy19.go new file mode 100644 index 000000000000..fb0b7644fb6e --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/legacy19.go @@ -0,0 +1,7 @@ +// +build go1.9 + +package hcsshim + +// Due to a bug in go1.8 and before, directory reparse points need to be skipped +// during filepath.Walk. This is fixed in go1.9 +var shouldSkipDirectoryReparse = false diff --git a/vendor/github.com/Microsoft/hcsshim/safeopen.go b/vendor/github.com/Microsoft/hcsshim/safeopen.go new file mode 100644 index 000000000000..5356456b908d --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/safeopen.go @@ -0,0 +1,427 @@ +package hcsshim + +import ( + "errors" + "io" + "os" + "path/filepath" + "strings" + "syscall" + "unicode/utf16" + "unsafe" + + winio "github.com/Microsoft/go-winio" +) + +//sys ntCreateFile(handle *uintptr, accessMask uint32, oa *objectAttributes, iosb *ioStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) = ntdll.NtCreateFile +//sys ntSetInformationFile(handle uintptr, iosb *ioStatusBlock, information uintptr, length uint32, class uint32) (status uint32) = ntdll.NtSetInformationFile +//sys rtlNtStatusToDosError(status uint32) (winerr error) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys localAlloc(flags uint32, size int) (ptr uintptr) = kernel32.LocalAlloc +//sys localFree(ptr uintptr) = kernel32.LocalFree + +type ioStatusBlock struct { + Status, Information uintptr +} + +type objectAttributes struct { + Length uintptr + RootDirectory uintptr + ObjectName uintptr + Attributes uintptr + SecurityDescriptor uintptr + SecurityQoS uintptr +} + +type unicodeString struct { + Length uint16 + MaximumLength uint16 + Buffer uintptr +} + +type fileLinkInformation struct { + ReplaceIfExists bool + RootDirectory uintptr + FileNameLength uint32 + FileName [1]uint16 +} + +type fileDispositionInformationEx struct { + Flags uintptr +} + +const ( + _FileLinkInformation = 11 + _FileDispositionInformationEx = 64 + + _FILE_READ_ATTRIBUTES = 0x0080 + _FILE_WRITE_ATTRIBUTES = 0x0100 + _DELETE = 0x10000 + + _FILE_OPEN = 1 + _FILE_CREATE = 2 + + _FILE_DIRECTORY_FILE = 0x00000001 + _FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 + _FILE_DELETE_ON_CLOSE = 0x00001000 + _FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 + _FILE_OPEN_REPARSE_POINT = 0x00200000 + + _FILE_DISPOSITION_DELETE = 0x00000001 + + _OBJ_DONT_REPARSE = 0x1000 + + _STATUS_REPARSE_POINT_ENCOUNTERED = 0xC000050B +) + +func openRoot(path string) (*os.File, error) { + longpath, err := makeLongAbsPath(path) + if err != nil { + return nil, err + } + return winio.OpenForBackup(longpath, syscall.GENERIC_READ, syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, syscall.OPEN_EXISTING) +} + +func ntRelativePath(path string) ([]uint16, error) { + path = filepath.Clean(path) + if strings.Contains(":", path) { + // Since alternate data streams must follow the file they + // are attached to, finding one here (out of order) is invalid. + return nil, errors.New("path contains invalid character `:`") + } + fspath := filepath.FromSlash(path) + if len(fspath) > 0 && fspath[0] == '\\' { + return nil, errors.New("expected relative path") + } + + path16 := utf16.Encode(([]rune)(fspath)) + if len(path16) > 32767 { + return nil, syscall.ENAMETOOLONG + } + + return path16, nil +} + +// openRelativeInternal opens a relative path from the given root, failing if +// any of the intermediate path components are reparse points. +func openRelativeInternal(path string, root *os.File, accessMask uint32, shareFlags uint32, createDisposition uint32, flags uint32) (*os.File, error) { + var ( + h uintptr + iosb ioStatusBlock + oa objectAttributes + ) + + path16, err := ntRelativePath(path) + if err != nil { + return nil, err + } + + if root == nil || root.Fd() == 0 { + return nil, errors.New("missing root directory") + } + + upathBuffer := localAlloc(0, int(unsafe.Sizeof(unicodeString{}))+len(path16)*2) + defer localFree(upathBuffer) + + upath := (*unicodeString)(unsafe.Pointer(upathBuffer)) + upath.Length = uint16(len(path16) * 2) + upath.MaximumLength = upath.Length + upath.Buffer = upathBuffer + unsafe.Sizeof(*upath) + copy((*[32768]uint16)(unsafe.Pointer(upath.Buffer))[:], path16) + + oa.Length = unsafe.Sizeof(oa) + oa.ObjectName = upathBuffer + oa.RootDirectory = uintptr(root.Fd()) + oa.Attributes = _OBJ_DONT_REPARSE + status := ntCreateFile( + &h, + accessMask|syscall.SYNCHRONIZE, + &oa, + &iosb, + nil, + 0, + shareFlags, + createDisposition, + _FILE_OPEN_FOR_BACKUP_INTENT|_FILE_SYNCHRONOUS_IO_NONALERT|flags, + nil, + 0, + ) + if status != 0 { + return nil, rtlNtStatusToDosError(status) + } + + fullPath, err := makeLongAbsPath(filepath.Join(root.Name(), path)) + if err != nil { + syscall.Close(syscall.Handle(h)) + return nil, err + } + + return os.NewFile(h, fullPath), nil +} + +// openRelative opens a relative path from the given root, failing if +// any of the intermediate path components are reparse points. +func openRelative(path string, root *os.File, accessMask uint32, shareFlags uint32, createDisposition uint32, flags uint32) (*os.File, error) { + f, err := openRelativeInternal(path, root, accessMask, shareFlags, createDisposition, flags) + if err != nil { + err = &os.PathError{Op: "open", Path: filepath.Join(root.Name(), path), Err: err} + } + return f, err +} + +// linkRelative creates a hard link from oldname to newname (relative to oldroot +// and newroot), failing if any of the intermediate path components are reparse +// points. +func linkRelative(oldname string, oldroot *os.File, newname string, newroot *os.File) error { + // Open the old file. + oldf, err := openRelativeInternal( + oldname, + oldroot, + syscall.FILE_WRITE_ATTRIBUTES, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_OPEN, + 0, + ) + if err != nil { + return &os.LinkError{Op: "link", Old: filepath.Join(oldroot.Name(), oldname), New: filepath.Join(newroot.Name(), newname), Err: err} + } + defer oldf.Close() + + // Open the parent of the new file. + var parent *os.File + parentPath := filepath.Dir(newname) + if parentPath != "." { + parent, err = openRelativeInternal( + parentPath, + newroot, + syscall.GENERIC_READ, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_OPEN, + _FILE_DIRECTORY_FILE) + if err != nil { + return &os.LinkError{Op: "link", Old: oldf.Name(), New: filepath.Join(newroot.Name(), newname), Err: err} + } + defer parent.Close() + + fi, err := winio.GetFileBasicInfo(parent) + if err != nil { + return err + } + if (fi.FileAttributes & syscall.FILE_ATTRIBUTE_REPARSE_POINT) != 0 { + return &os.LinkError{Op: "link", Old: oldf.Name(), New: filepath.Join(newroot.Name(), newname), Err: rtlNtStatusToDosError(_STATUS_REPARSE_POINT_ENCOUNTERED)} + } + + } else { + parent = newroot + } + + // Issue an NT call to create the link. This will be safe because NT will + // not open any more directories to create the link, so it cannot walk any + // more reparse points. + newbase := filepath.Base(newname) + newbase16, err := ntRelativePath(newbase) + if err != nil { + return err + } + + size := int(unsafe.Offsetof(fileLinkInformation{}.FileName)) + len(newbase16)*2 + linkinfoBuffer := localAlloc(0, size) + defer localFree(linkinfoBuffer) + linkinfo := (*fileLinkInformation)(unsafe.Pointer(linkinfoBuffer)) + linkinfo.RootDirectory = parent.Fd() + linkinfo.FileNameLength = uint32(len(newbase16) * 2) + copy((*[32768]uint16)(unsafe.Pointer(&linkinfo.FileName[0]))[:], newbase16) + + var iosb ioStatusBlock + status := ntSetInformationFile( + oldf.Fd(), + &iosb, + linkinfoBuffer, + uint32(size), + _FileLinkInformation, + ) + if status != 0 { + return &os.LinkError{Op: "link", Old: oldf.Name(), New: filepath.Join(parent.Name(), newbase), Err: rtlNtStatusToDosError(status)} + } + + return nil +} + +// deleteOnClose marks a file to be deleted when the handle is closed. +func deleteOnClose(f *os.File) error { + disposition := fileDispositionInformationEx{Flags: _FILE_DISPOSITION_DELETE} + var iosb ioStatusBlock + status := ntSetInformationFile( + f.Fd(), + &iosb, + uintptr(unsafe.Pointer(&disposition)), + uint32(unsafe.Sizeof(disposition)), + _FileDispositionInformationEx, + ) + if status != 0 { + return rtlNtStatusToDosError(status) + } + return nil +} + +// clearReadOnly clears the readonly attribute on a file. +func clearReadOnly(f *os.File) error { + bi, err := winio.GetFileBasicInfo(f) + if err != nil { + return err + } + if bi.FileAttributes&syscall.FILE_ATTRIBUTE_READONLY == 0 { + return nil + } + sbi := winio.FileBasicInfo{ + FileAttributes: bi.FileAttributes &^ syscall.FILE_ATTRIBUTE_READONLY, + } + if sbi.FileAttributes == 0 { + sbi.FileAttributes = syscall.FILE_ATTRIBUTE_NORMAL + } + return winio.SetFileBasicInfo(f, &sbi) +} + +// removeRelative removes a file or directory relative to a root, failing if any +// intermediate path components are reparse points. +func removeRelative(path string, root *os.File) error { + f, err := openRelativeInternal( + path, + root, + _FILE_READ_ATTRIBUTES|_FILE_WRITE_ATTRIBUTES|_DELETE, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_OPEN, + _FILE_OPEN_REPARSE_POINT) + if err == nil { + defer f.Close() + err = deleteOnClose(f) + if err == syscall.ERROR_ACCESS_DENIED { + // Maybe the file is marked readonly. Clear the bit and retry. + clearReadOnly(f) + err = deleteOnClose(f) + } + } + if err != nil { + return &os.PathError{Op: "remove", Path: filepath.Join(root.Name(), path), Err: err} + } + return nil +} + +// removeAllRelative removes a directory tree relative to a root, failing if any +// intermediate path components are reparse points. +func removeAllRelative(path string, root *os.File) error { + fi, err := lstatRelative(path, root) + if err != nil { + if os.IsNotExist(err) { + return nil + } + return err + } + fileAttributes := fi.Sys().(*syscall.Win32FileAttributeData).FileAttributes + if fileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY == 0 || fileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 { + // If this is a reparse point, it can't have children. Simple remove will do. + err := removeRelative(path, root) + if err == nil || os.IsNotExist(err) { + return nil + } + return err + } + + // It is necessary to use os.Open as Readdirnames does not work with + // openRelative. This is safe because the above lstatrelative fails + // if the target is outside the root, and we know this is not a + // symlink from the above FILE_ATTRIBUTE_REPARSE_POINT check. + fd, err := os.Open(filepath.Join(root.Name(), path)) + if err != nil { + if os.IsNotExist(err) { + // Race. It was deleted between the Lstat and Open. + // Return nil per RemoveAll's docs. + return nil + } + return err + } + + // Remove contents & return first error. + for { + names, err1 := fd.Readdirnames(100) + for _, name := range names { + err1 := removeAllRelative(path+string(os.PathSeparator)+name, root) + if err == nil { + err = err1 + } + } + if err1 == io.EOF { + break + } + // If Readdirnames returned an error, use it. + if err == nil { + err = err1 + } + if len(names) == 0 { + break + } + } + fd.Close() + + // Remove directory. + err1 := removeRelative(path, root) + if err1 == nil || os.IsNotExist(err1) { + return nil + } + if err == nil { + err = err1 + } + return err +} + +// mkdirRelative creates a directory relative to a root, failing if any +// intermediate path components are reparse points. +func mkdirRelative(path string, root *os.File) error { + f, err := openRelativeInternal( + path, + root, + 0, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_CREATE, + _FILE_DIRECTORY_FILE) + if err == nil { + f.Close() + } else { + err = &os.PathError{Op: "mkdir", Path: filepath.Join(root.Name(), path), Err: err} + } + return err +} + +// lstatRelative performs a stat operation on a file relative to a root, failing +// if any intermediate path components are reparse points. +func lstatRelative(path string, root *os.File) (os.FileInfo, error) { + f, err := openRelativeInternal( + path, + root, + _FILE_READ_ATTRIBUTES, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_OPEN, + _FILE_OPEN_REPARSE_POINT) + if err != nil { + return nil, &os.PathError{Op: "stat", Path: filepath.Join(root.Name(), path), Err: err} + } + defer f.Close() + return f.Stat() +} + +// ensureNotReparsePointRelative validates that a given file (relative to a +// root) and all intermediate path components are not a reparse points. +func ensureNotReparsePointRelative(path string, root *os.File) error { + // Perform an open with OBJ_DONT_REPARSE but without specifying FILE_OPEN_REPARSE_POINT. + f, err := openRelative( + path, + root, + 0, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + _FILE_OPEN, + 0) + if err != nil { + return err + } + f.Close() + return nil +} diff --git a/vendor/github.com/Microsoft/hcsshim/safeopen_test.go b/vendor/github.com/Microsoft/hcsshim/safeopen_test.go new file mode 100644 index 000000000000..32ed66b82d9d --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/safeopen_test.go @@ -0,0 +1,168 @@ +package hcsshim + +import ( + "io/ioutil" + "os" + "path/filepath" + "syscall" + "testing" + + winio "github.com/Microsoft/go-winio" +) + +func tempRoot() (*os.File, error) { + name, err := ioutil.TempDir("", "hcsshim-test") + if err != nil { + return nil, err + } + f, err := openRoot(name) + if err != nil { + os.Remove(name) + return nil, err + } + return f, nil +} + +func TestOpenRelative(t *testing.T) { + badroot, err := tempRoot() + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(badroot.Name()) + defer badroot.Close() + + root, err := tempRoot() + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(root.Name()) + defer root.Close() + + // Create a file + f, err := openRelative("foo", root, 0, syscall.FILE_SHARE_READ, _FILE_CREATE, 0) + if err != nil { + t.Fatal(err) + } + f.Close() + + // Create a directory + err = mkdirRelative("dir", root) + if err != nil { + t.Fatal(err) + } + + // Create a file in the bad root + f, err = os.Create(filepath.Join(badroot.Name(), "badfile")) + if err != nil { + t.Fatal(err) + } + f.Close() + + // Create a directory symlink to the bad root + err = os.Symlink(badroot.Name(), filepath.Join(root.Name(), "dsymlink")) + if err != nil { + t.Fatal(err) + } + + // Create a file symlink to the bad file + err = os.Symlink(filepath.Join(badroot.Name(), "badfile"), filepath.Join(root.Name(), "symlink")) + if err != nil { + t.Fatal(err) + } + + // Make sure opens cannot happen through the symlink + f, err = openRelative("dsymlink/foo", root, 0, syscall.FILE_SHARE_READ, _FILE_CREATE, 0) + if err == nil { + f.Close() + t.Fatal("created file in wrong tree!") + } + t.Log(err) + + // Check again using ensureNotReparsePointRelative + err = ensureNotReparsePointRelative("dsymlink", root) + if err == nil { + t.Fatal("reparse check should have failed") + } + t.Log(err) + + // Make sure links work + err = linkRelative("foo", root, "hardlink", root) + if err != nil { + t.Fatal(err) + } + + // Even inside directories + err = linkRelative("foo", root, "dir/bar", root) + if err != nil { + t.Fatal(err) + } + + // Make sure links cannot happen through the symlink + err = linkRelative("foo", root, "dsymlink/hardlink", root) + if err == nil { + f.Close() + t.Fatal("created link in wrong tree!") + } + t.Log(err) + + // In either direction + err = linkRelative("dsymlink/badfile", root, "bar", root) + if err == nil { + f.Close() + t.Fatal("created link in wrong tree!") + } + t.Log(err) + + // Make sure remove cannot happen through the symlink + err = removeRelative("symlink/badfile", root) + if err == nil { + t.Fatal("remove in wrong tree!") + } + + // Remove the symlink + err = removeAllRelative("symlink", root) + if err != nil { + t.Fatal(err) + } + + // Make sure it's not possible to escape with .. (NT doesn't support .. at the kernel level) + f, err = openRelative("..", root, syscall.GENERIC_READ, syscall.FILE_SHARE_READ, _FILE_OPEN, 0) + if err == nil { + t.Fatal("escaped the directory") + } + t.Log(err) + + // Should not have touched the other directory + if _, err = os.Lstat(filepath.Join(badroot.Name(), "badfile")); err != nil { + t.Fatal(err) + } +} + +func TestRemoveRelativeReadOnly(t *testing.T) { + root, err := tempRoot() + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(root.Name()) + defer root.Close() + + p := filepath.Join(root.Name(), "foo") + f, err := os.Create(p) + if err != nil { + t.Fatal(err) + } + defer f.Close() + + bi := winio.FileBasicInfo{} + bi.FileAttributes = syscall.FILE_ATTRIBUTE_READONLY + err = winio.SetFileBasicInfo(f, &bi) + if err != nil { + t.Fatal(err) + } + f.Close() + + err = removeRelative("foo", root) + if err != nil { + t.Fatal(err) + } +} diff --git a/vendor/github.com/Microsoft/hcsshim/zhcsshim.go b/vendor/github.com/Microsoft/hcsshim/zhcsshim.go index 5d1a851ae871..5123e8d8e816 100644 --- a/vendor/github.com/Microsoft/hcsshim/zhcsshim.go +++ b/vendor/github.com/Microsoft/hcsshim/zhcsshim.go @@ -41,6 +41,8 @@ var ( modole32 = windows.NewLazySystemDLL("ole32.dll") modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll") modvmcompute = windows.NewLazySystemDLL("vmcompute.dll") + modntdll = windows.NewLazySystemDLL("ntdll.dll") + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") procSetCurrentThreadCompartmentId = modiphlpapi.NewProc("SetCurrentThreadCompartmentId") @@ -94,6 +96,11 @@ var ( procHcsUnregisterProcessCallback = modvmcompute.NewProc("HcsUnregisterProcessCallback") procHcsModifyServiceSettings = modvmcompute.NewProc("HcsModifyServiceSettings") procHNSCall = modvmcompute.NewProc("HNSCall") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") + procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLocalFree = modkernel32.NewProc("LocalFree") ) func coTaskMemFree(buffer unsafe.Pointer) { @@ -1040,3 +1047,34 @@ func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) } return } + +func ntCreateFile(handle *uintptr, accessMask uint32, oa *objectAttributes, iosb *ioStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) { + r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(accessMask), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(fileAttributes), uintptr(shareAccess), uintptr(createDisposition), uintptr(createOptions), uintptr(unsafe.Pointer(eaBuffer)), uintptr(eaLength), 0) + status = uint32(r0) + return +} + +func ntSetInformationFile(handle uintptr, iosb *ioStatusBlock, information uintptr, length uint32, class uint32) (status uint32) { + r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0) + status = uint32(r0) + return +} + +func rtlNtStatusToDosError(status uint32) (winerr error) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(status), 0, 0) + if r0 != 0 { + winerr = syscall.Errno(r0) + } + return +} + +func localAlloc(flags uint32, size int) (ptr uintptr) { + r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(size), 0) + ptr = uintptr(r0) + return +} + +func localFree(ptr uintptr) { + syscall.Syscall(procLocalFree.Addr(), 1, uintptr(ptr), 0, 0) + return +} diff --git a/vendor/github.com/blang/semver/.gx/lastpubver b/vendor/github.com/blang/semver/.gx/lastpubver index 073ce1eff629..27ed26783817 100644 --- a/vendor/github.com/blang/semver/.gx/lastpubver +++ b/vendor/github.com/blang/semver/.gx/lastpubver @@ -1 +1 @@ -3.4.0: QmZTgGMg34JKEvF1hjr7wwYESvFhg9Khv2WFibDAi5dhno +3.5.1: QmYRGECuvQnRX73fcvPnGbYijBcGN2HbKZQ7jh26qmLiHG diff --git a/vendor/github.com/blang/semver/.travis.yml b/vendor/github.com/blang/semver/.travis.yml new file mode 100644 index 000000000000..102fb9a691b6 --- /dev/null +++ b/vendor/github.com/blang/semver/.travis.yml @@ -0,0 +1,21 @@ +language: go +matrix: + include: + - go: 1.4.3 + - go: 1.5.4 + - go: 1.6.3 + - go: 1.7 + - go: tip + allow_failures: + - go: tip +install: +- go get golang.org/x/tools/cmd/cover +- go get github.com/mattn/goveralls +script: +- echo "Test and track coverage" ; $HOME/gopath/bin/goveralls -package "." -service=travis-ci + -repotoken $COVERALLS_TOKEN +- echo "Build examples" ; cd examples && go build +- echo "Check if gofmt'd" ; diff -u <(echo -n) <(gofmt -d -s .) +env: + global: + secure: HroGEAUQpVq9zX1b1VIkraLiywhGbzvNnTZq2TMxgK7JHP8xqNplAeF1izrR2i4QLL9nsY+9WtYss4QuPvEtZcVHUobw6XnL6radF7jS1LgfYZ9Y7oF+zogZ2I5QUMRLGA7rcxQ05s7mKq3XZQfeqaNts4bms/eZRefWuaFZbkw= diff --git a/vendor/github.com/blang/semver/README.md b/vendor/github.com/blang/semver/README.md index 4399639e230f..6af4dde752e9 100644 --- a/vendor/github.com/blang/semver/README.md +++ b/vendor/github.com/blang/semver/README.md @@ -1,4 +1,4 @@ -semver for golang [![Build Status](https://drone.io/github.com/blang/semver/status.png)](https://drone.io/github.com/blang/semver/latest) [![GoDoc](https://godoc.org/github.com/blang/semver?status.png)](https://godoc.org/github.com/blang/semver) [![Coverage Status](https://img.shields.io/coveralls/blang/semver.svg)](https://coveralls.io/r/blang/semver?branch=master) +semver for golang [![Build Status](https://travis-ci.org/blang/semver.svg?branch=master)](https://travis-ci.org/blang/semver) [![GoDoc](https://godoc.org/github.com/blang/semver?status.svg)](https://godoc.org/github.com/blang/semver) [![Coverage Status](https://img.shields.io/coveralls/blang/semver.svg)](https://coveralls.io/r/blang/semver?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/blang/semver)](https://goreportcard.com/report/github.com/blang/semver) ====== semver is a [Semantic Versioning](http://semver.org/) library written in golang. It fully covers spec version `2.0.0`. @@ -41,6 +41,7 @@ Features - Compare Helper Methods - InPlace manipulation - Ranges `>=1.0.0 <2.0.0 || >=3.0.0 !3.0.1-beta.1` +- Wildcards `>=1.x`, `<=2.5.x` - Sortable (implements sort.Interface) - database/sql compatible (sql.Scanner/Valuer) - encoding/json compatible (json.Marshaler/Unmarshaler) @@ -59,6 +60,8 @@ A condition is composed of an operator and a version. The supported operators ar - `1.0.0`, `=1.0.0`, `==1.0.0` Equal to `1.0.0` - `!1.0.0`, `!=1.0.0` Not equal to `1.0.0`. Excludes version `1.0.0`. +Note that spaces between the operator and the version will be gracefully tolerated. + A `Range` can link multiple `Ranges` separated by space: Ranges can be linked by logical AND: diff --git a/vendor/github.com/blang/semver/package.json b/vendor/github.com/blang/semver/package.json index 568be8d9431d..1cf8ebdd9c18 100644 --- a/vendor/github.com/blang/semver/package.json +++ b/vendor/github.com/blang/semver/package.json @@ -12,6 +12,6 @@ "license": "MIT", "name": "semver", "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", - "version": "3.4.0" + "version": "3.5.1" } diff --git a/vendor/github.com/blang/semver/range_test.go b/vendor/github.com/blang/semver/range_test.go index 83ee9c7878fe..fc116704f903 100644 --- a/vendor/github.com/blang/semver/range_test.go +++ b/vendor/github.com/blang/semver/range_test.go @@ -175,13 +175,13 @@ func TestSplitORParts(t *testing.T) { o [][]string }{ {[]string{">1.2.3", "||", "<1.2.3", "||", "=1.2.3"}, [][]string{ - []string{">1.2.3"}, - []string{"<1.2.3"}, - []string{"=1.2.3"}, + {">1.2.3"}, + {"<1.2.3"}, + {"=1.2.3"}, }}, {[]string{">1.2.3", "<1.2.3", "||", "=1.2.3"}, [][]string{ - []string{">1.2.3", "<1.2.3"}, - []string{"=1.2.3"}, + {">1.2.3", "<1.2.3"}, + {"=1.2.3"}, }}, {[]string{">1.2.3", "||"}, nil}, {[]string{"||", ">1.2.3"}, nil}, @@ -271,19 +271,19 @@ func TestExpandWildcardVersion(t *testing.T) { i [][]string o [][]string }{ - {[][]string{[]string{"foox"}}, nil}, - {[][]string{[]string{">=1.2.x"}}, [][]string{[]string{">=1.2.0"}}}, - {[][]string{[]string{"<=1.2.x"}}, [][]string{[]string{"<1.3.0"}}}, - {[][]string{[]string{">1.2.x"}}, [][]string{[]string{">=1.3.0"}}}, - {[][]string{[]string{"<1.2.x"}}, [][]string{[]string{"<1.2.0"}}}, - {[][]string{[]string{"!=1.2.x"}}, [][]string{[]string{"<1.2.0", ">=1.3.0"}}}, - {[][]string{[]string{">=1.x"}}, [][]string{[]string{">=1.0.0"}}}, - {[][]string{[]string{"<=1.x"}}, [][]string{[]string{"<2.0.0"}}}, - {[][]string{[]string{">1.x"}}, [][]string{[]string{">=2.0.0"}}}, - {[][]string{[]string{"<1.x"}}, [][]string{[]string{"<1.0.0"}}}, - {[][]string{[]string{"!=1.x"}}, [][]string{[]string{"<1.0.0", ">=2.0.0"}}}, - {[][]string{[]string{"1.2.x"}}, [][]string{[]string{">=1.2.0", "<1.3.0"}}}, - {[][]string{[]string{"1.x"}}, [][]string{[]string{">=1.0.0", "<2.0.0"}}}, + {[][]string{{"foox"}}, nil}, + {[][]string{{">=1.2.x"}}, [][]string{{">=1.2.0"}}}, + {[][]string{{"<=1.2.x"}}, [][]string{{"<1.3.0"}}}, + {[][]string{{">1.2.x"}}, [][]string{{">=1.3.0"}}}, + {[][]string{{"<1.2.x"}}, [][]string{{"<1.2.0"}}}, + {[][]string{{"!=1.2.x"}}, [][]string{{"<1.2.0", ">=1.3.0"}}}, + {[][]string{{">=1.x"}}, [][]string{{">=1.0.0"}}}, + {[][]string{{"<=1.x"}}, [][]string{{"<2.0.0"}}}, + {[][]string{{">1.x"}}, [][]string{{">=2.0.0"}}}, + {[][]string{{"<1.x"}}, [][]string{{"<1.0.0"}}}, + {[][]string{{"!=1.x"}}, [][]string{{"<1.0.0", ">=2.0.0"}}}, + {[][]string{{"1.2.x"}}, [][]string{{">=1.2.0", "<1.3.0"}}}, + {[][]string{{"1.x"}}, [][]string{{">=1.0.0", "<2.0.0"}}}, } for _, tc := range tests { diff --git a/vendor/github.com/blang/semver/semver.go b/vendor/github.com/blang/semver/semver.go index 8ee0842e6ac7..ec26aa03fd8a 100644 --- a/vendor/github.com/blang/semver/semver.go +++ b/vendor/github.com/blang/semver/semver.go @@ -26,7 +26,7 @@ type Version struct { Minor uint64 Patch uint64 Pre []PRVersion - Build []string //No Precendence + Build []string //No Precedence } // Version to string diff --git a/vendor/github.com/google/cadvisor/container/crio/handler.go b/vendor/github.com/google/cadvisor/container/crio/handler.go index 13311c57feed..4d7efbf4002f 100644 --- a/vendor/github.com/google/cadvisor/container/crio/handler.go +++ b/vendor/github.com/google/cadvisor/container/crio/handler.go @@ -65,9 +65,6 @@ type crioContainerHandler struct { ignoreMetrics container.MetricSet - // container restart count - restartCount int - reference info.ContainerReference libcontainerHandler *containerlibcontainer.Handler @@ -166,7 +163,10 @@ func newCrioContainerHandler( // ignore err and get zero as default, this happens with sandboxes, not sure why... // kube isn't sending restart count in labels for sandboxes. restartCount, _ := strconv.Atoi(cInfo.Annotations["io.kubernetes.container.restartCount"]) - handler.restartCount = restartCount + // Only adds restartcount label if it's greater than 0 + if restartCount > 0 { + handler.labels["restartcount"] = strconv.Itoa(restartCount) + } handler.ipAddress = cInfo.IP @@ -210,10 +210,6 @@ func (self *crioContainerHandler) GetSpec() (info.ContainerSpec, error) { spec, err := common.GetSpec(self.cgroupPaths, self.machineInfoFactory, self.needNet(), hasFilesystem) spec.Labels = self.labels - // Only adds restartcount label if it's greater than 0 - if self.restartCount > 0 { - spec.Labels["restartcount"] = strconv.Itoa(self.restartCount) - } spec.Envs = self.envs spec.Image = self.image diff --git a/vendor/github.com/google/cadvisor/container/docker/handler.go b/vendor/github.com/google/cadvisor/container/docker/handler.go index 22b9455f3f35..64726053a755 100644 --- a/vendor/github.com/google/cadvisor/container/docker/handler.go +++ b/vendor/github.com/google/cadvisor/container/docker/handler.go @@ -91,9 +91,6 @@ type dockerContainerHandler struct { // zfsParent is the parent for docker zfs zfsParent string - // container restart count - restartCount int - // Reference to the container reference info.ContainerReference @@ -226,7 +223,10 @@ func newDockerContainerHandler( } handler.image = ctnr.Config.Image handler.networkMode = ctnr.HostConfig.NetworkMode - handler.restartCount = ctnr.RestartCount + // Only adds restartcount label if it's greater than 0 + if ctnr.RestartCount > 0 { + handler.labels["restartcount"] = strconv.Itoa(ctnr.RestartCount) + } // Obtain the IP address for the contianer. // If the NetworkMode starts with 'container:' then we need to use the IP address of the container specified. @@ -356,10 +356,6 @@ func (self *dockerContainerHandler) GetSpec() (info.ContainerSpec, error) { spec, err := common.GetSpec(self.cgroupPaths, self.machineInfoFactory, self.needNet(), hasFilesystem) spec.Labels = self.labels - // Only adds restartcount label if it's greater than 0 - if self.restartCount > 0 { - spec.Labels["restartcount"] = strconv.Itoa(self.restartCount) - } spec.Envs = self.envs spec.Image = self.image spec.CreationTime = self.creationTime diff --git a/vendor/github.com/json-iterator/go/Gopkg.lock b/vendor/github.com/json-iterator/go/Gopkg.lock index 338f1c68a503..3719afe8e0d5 100644 --- a/vendor/github.com/json-iterator/go/Gopkg.lock +++ b/vendor/github.com/json-iterator/go/Gopkg.lock @@ -1,6 +1,12 @@ # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. +[[projects]] + name = "github.com/json-iterator/go" + packages = ["."] + revision = "ca39e5af3ece67bbcda3d0f4f56a8e24d9f2dad4" + version = "1.1.3" + [[projects]] name = "github.com/modern-go/concurrent" packages = ["."] @@ -16,6 +22,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "ac7003b5a981716353a43055ab7d4c5357403cb30a60de2dbdeb446c1544beaa" + inputs-digest = "56a0b9e9e61d2bc8af5e1b68537401b7f4d60805eda3d107058f3171aa5cf793" solver-name = "gps-cdcl" solver-version = 1 diff --git a/vendor/github.com/json-iterator/go/api_tests/config_test.go b/vendor/github.com/json-iterator/go/api_tests/config_test.go index d3e93e5c6d74..7aa349bee952 100644 --- a/vendor/github.com/json-iterator/go/api_tests/config_test.go +++ b/vendor/github.com/json-iterator/go/api_tests/config_test.go @@ -2,9 +2,10 @@ package test import ( "encoding/json" + "testing" + "github.com/json-iterator/go" "github.com/stretchr/testify/require" - "testing" ) func Test_use_number_for_unmarshal(t *testing.T) { @@ -45,3 +46,129 @@ func Test_read_large_number_as_interface(t *testing.T) { should.Nil(err) should.Equal(`123456789123456789123456789`, output) } + +type caseSensitiveStruct struct { + A string `json:"a"` + B string `json:"b,omitempty"` + C *C `json:"C,omitempty"` +} + +type C struct { + D int64 `json:"D,omitempty"` + E *E `json:"e,omitempty"` +} + +type E struct { + F string `json:"F,omitempty"` +} + +func Test_CaseSensitive(t *testing.T) { + should := require.New(t) + + testCases := []struct { + input string + expectedOutput string + caseSensitive bool + }{ + { + input: `{"A":"foo","B":"bar"}`, + expectedOutput: `{"a":"foo","b":"bar"}`, + caseSensitive: false, + }, + { + input: `{"a":"foo","b":"bar"}`, + expectedOutput: `{"a":"foo","b":"bar"}`, + caseSensitive: true, + }, + { + input: `{"a":"foo","b":"bar","C":{"D":10}}`, + expectedOutput: `{"a":"foo","b":"bar","C":{"D":10}}`, + caseSensitive: true, + }, + { + input: `{"a":"foo","B":"bar","c":{"d":10}}`, + expectedOutput: `{"a":"foo"}`, + caseSensitive: true, + }, + { + input: `{"a":"foo","C":{"d":10}}`, + expectedOutput: `{"a":"foo","C":{}}`, + caseSensitive: true, + }, + { + input: `{"a":"foo","C":{"D":10,"e":{"f":"baz"}}}`, + expectedOutput: `{"a":"foo","C":{"D":10,"e":{}}}`, + caseSensitive: true, + }, + { + input: `{"a":"foo","C":{"D":10,"e":{"F":"baz"}}}`, + expectedOutput: `{"a":"foo","C":{"D":10,"e":{"F":"baz"}}}`, + caseSensitive: true, + }, + { + input: `{"A":"foo","c":{"d":10,"E":{"f":"baz"}}}`, + expectedOutput: `{"a":"foo","C":{"D":10,"e":{"F":"baz"}}}`, + caseSensitive: false, + }, + } + + for _, tc := range testCases { + val := caseSensitiveStruct{} + err := jsoniter.Config{CaseSensitive: tc.caseSensitive}.Froze().UnmarshalFromString(tc.input, &val) + should.Nil(err) + + output, err := jsoniter.MarshalToString(val) + should.Nil(err) + should.Equal(tc.expectedOutput, output) + } +} + +type structWithElevenFields struct { + A string `json:"A,omitempty"` + B string `json:"B,omitempty"` + C string `json:"C,omitempty"` + D string `json:"d,omitempty"` + E string `json:"e,omitempty"` + F string `json:"f,omitempty"` + G string `json:"g,omitempty"` + H string `json:"h,omitempty"` + I string `json:"i,omitempty"` + J string `json:"j,omitempty"` + K string `json:"k,omitempty"` +} + +func Test_CaseSensitive_MoreThanTenFields(t *testing.T) { + should := require.New(t) + + testCases := []struct { + input string + expectedOutput string + caseSensitive bool + }{ + { + input: `{"A":"1","B":"2","C":"3","d":"4","e":"5","f":"6","g":"7","h":"8","i":"9","j":"10","k":"11"}`, + expectedOutput: `{"A":"1","B":"2","C":"3","d":"4","e":"5","f":"6","g":"7","h":"8","i":"9","j":"10","k":"11"}`, + caseSensitive: true, + }, + { + input: `{"a":"1","b":"2","c":"3","D":"4","E":"5","F":"6"}`, + expectedOutput: `{"A":"1","B":"2","C":"3","d":"4","e":"5","f":"6"}`, + caseSensitive: false, + }, + { + input: `{"A":"1","b":"2","d":"4","E":"5"}`, + expectedOutput: `{"A":"1","d":"4"}`, + caseSensitive: true, + }, + } + + for _, tc := range testCases { + val := structWithElevenFields{} + err := jsoniter.Config{CaseSensitive: tc.caseSensitive}.Froze().UnmarshalFromString(tc.input, &val) + should.Nil(err) + + output, err := jsoniter.MarshalToString(val) + should.Nil(err) + should.Equal(tc.expectedOutput, output) + } +} diff --git a/vendor/github.com/json-iterator/go/config.go b/vendor/github.com/json-iterator/go/config.go index bd66947d7c88..835819129c55 100644 --- a/vendor/github.com/json-iterator/go/config.go +++ b/vendor/github.com/json-iterator/go/config.go @@ -2,12 +2,13 @@ package jsoniter import ( "encoding/json" - "github.com/modern-go/concurrent" - "github.com/modern-go/reflect2" "io" "reflect" "sync" "unsafe" + + "github.com/modern-go/concurrent" + "github.com/modern-go/reflect2" ) // Config customize how the API should behave. @@ -23,6 +24,7 @@ type Config struct { OnlyTaggedField bool ValidateJsonRawMessage bool ObjectFieldMustBeSimpleString bool + CaseSensitive bool } // API the public interface of this package. @@ -75,6 +77,7 @@ type frozenConfig struct { extensions []Extension streamPool *sync.Pool iteratorPool *sync.Pool + caseSensitive bool } func (cfg *frozenConfig) initCache() { @@ -128,6 +131,7 @@ func (cfg Config) Froze() API { objectFieldMustBeSimpleString: cfg.ObjectFieldMustBeSimpleString, onlyTaggedField: cfg.OnlyTaggedField, disallowUnknownFields: cfg.DisallowUnknownFields, + caseSensitive: cfg.CaseSensitive, } api.streamPool = &sync.Pool{ New: func() interface{} { diff --git a/vendor/github.com/json-iterator/go/iter_object.go b/vendor/github.com/json-iterator/go/iter_object.go index ebd3da8951dc..6e7c370abecb 100644 --- a/vendor/github.com/json-iterator/go/iter_object.go +++ b/vendor/github.com/json-iterator/go/iter_object.go @@ -60,7 +60,7 @@ func (iter *Iterator) readFieldHash() int64 { if b == '\\' { iter.head = i for _, b := range iter.readStringSlowPath() { - if 'A' <= b && b <= 'Z' { + if 'A' <= b && b <= 'Z' && !iter.cfg.caseSensitive { b += 'a' - 'A' } hash ^= int64(b) @@ -82,7 +82,7 @@ func (iter *Iterator) readFieldHash() int64 { } return hash } - if 'A' <= b && b <= 'Z' { + if 'A' <= b && b <= 'Z' && !iter.cfg.caseSensitive { b += 'a' - 'A' } hash ^= int64(b) @@ -95,10 +95,14 @@ func (iter *Iterator) readFieldHash() int64 { } } -func calcHash(str string) int64 { +func calcHash(str string, caseSensitive bool) int64 { hash := int64(0x811c9dc5) for _, b := range str { - hash ^= int64(unicode.ToLower(b)) + if caseSensitive { + hash ^= int64(b) + } else { + hash ^= int64(unicode.ToLower(b)) + } hash *= 0x1000193 } return int64(hash) diff --git a/vendor/github.com/json-iterator/go/reflect.go b/vendor/github.com/json-iterator/go/reflect.go index 5c7d3a8a0305..be7a0e218801 100644 --- a/vendor/github.com/json-iterator/go/reflect.go +++ b/vendor/github.com/json-iterator/go/reflect.go @@ -2,9 +2,10 @@ package jsoniter import ( "fmt" - "github.com/modern-go/reflect2" "reflect" "unsafe" + + "github.com/modern-go/reflect2" ) // ValDecoder is an internal type registered to cache as needed. @@ -40,6 +41,14 @@ type ctx struct { decoders map[reflect2.Type]ValDecoder } +func (b *ctx) caseSensitive() bool { + if b.frozenConfig == nil { + // default is case-insensitive + return false + } + return b.frozenConfig.caseSensitive +} + func (b *ctx) append(prefix string) *ctx { return &ctx{ frozenConfig: b.frozenConfig, diff --git a/vendor/github.com/json-iterator/go/reflect_native.go b/vendor/github.com/json-iterator/go/reflect_native.go index fac4d9f775c0..9042eb0cb989 100644 --- a/vendor/github.com/json-iterator/go/reflect_native.go +++ b/vendor/github.com/json-iterator/go/reflect_native.go @@ -1,7 +1,6 @@ package jsoniter import ( - "bytes" "encoding/base64" "reflect" "strconv" @@ -418,20 +417,11 @@ func (codec *base64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) { } switch iter.WhatIsNext() { case StringValue: - encoding := base64.StdEncoding - src := iter.SkipAndReturnBytes() - // New line characters (\r and \n) are ignored. - // Refer to https://golang.org/pkg/encoding/base64/#Encoding.Decode - src = bytes.Replace(src, []byte(`\r`), []byte{}, -1) - src = bytes.Replace(src, []byte(`\n`), []byte{}, -1) - src = src[1 : len(src)-1] - decodedLen := encoding.DecodedLen(len(src)) - dst := make([]byte, decodedLen) - len, err := encoding.Decode(dst, src) + src := iter.ReadString() + dst, err := base64.StdEncoding.DecodeString(src) if err != nil { iter.ReportError("decode base64", err.Error()) } else { - dst = dst[:len] codec.sliceType.UnsafeSet(ptr, unsafe.Pointer(&dst)) } case ArrayValue: diff --git a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go index fd76647863b6..355d2d116b4c 100644 --- a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go +++ b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go @@ -2,10 +2,11 @@ package jsoniter import ( "fmt" - "github.com/modern-go/reflect2" "io" "strings" "unsafe" + + "github.com/modern-go/reflect2" ) func decoderOfStruct(ctx *ctx, typ reflect2.Type) ValDecoder { @@ -31,11 +32,15 @@ func decoderOfStruct(ctx *ctx, typ reflect2.Type) ValDecoder { for k, binding := range bindings { fields[k] = binding.Decoder.(*structFieldDecoder) } - for k, binding := range bindings { - if _, found := fields[strings.ToLower(k)]; !found { - fields[strings.ToLower(k)] = binding.Decoder.(*structFieldDecoder) + + if !ctx.caseSensitive() { + for k, binding := range bindings { + if _, found := fields[strings.ToLower(k)]; !found { + fields[strings.ToLower(k)] = binding.Decoder.(*structFieldDecoder) + } } } + return createStructDecoder(ctx, typ, fields) } @@ -46,12 +51,13 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF knownHash := map[int64]struct{}{ 0: {}, } + switch len(fields) { case 0: return &skipObjectDecoder{typ} case 1: for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -65,7 +71,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder1 *structFieldDecoder var fieldDecoder2 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -88,7 +94,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder2 *structFieldDecoder var fieldDecoder3 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -119,7 +125,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder3 *structFieldDecoder var fieldDecoder4 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -156,7 +162,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder4 *structFieldDecoder var fieldDecoder5 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -199,7 +205,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder5 *structFieldDecoder var fieldDecoder6 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -248,7 +254,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder6 *structFieldDecoder var fieldDecoder7 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -303,7 +309,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder7 *structFieldDecoder var fieldDecoder8 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -364,7 +370,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder8 *structFieldDecoder var fieldDecoder9 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -431,7 +437,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF var fieldDecoder9 *structFieldDecoder var fieldDecoder10 *structFieldDecoder for fieldName, fieldDecoder := range fields { - fieldHash := calcHash(fieldName) + fieldHash := calcHash(fieldName, ctx.caseSensitive()) _, known := knownHash[fieldHash] if known { return &generalStructDecoder{typ, fields, false} @@ -513,13 +519,13 @@ func (decoder *generalStructDecoder) decodeOneField(ptr unsafe.Pointer, iter *It fieldBytes := iter.ReadStringAsSlice() field = *(*string)(unsafe.Pointer(&fieldBytes)) fieldDecoder = decoder.fields[field] - if fieldDecoder == nil { + if fieldDecoder == nil && !iter.cfg.caseSensitive { fieldDecoder = decoder.fields[strings.ToLower(field)] } } else { field = iter.ReadString() fieldDecoder = decoder.fields[field] - if fieldDecoder == nil { + if fieldDecoder == nil && !iter.cfg.caseSensitive { fieldDecoder = decoder.fields[strings.ToLower(field)] } } diff --git a/vendor/github.com/json-iterator/go/value_tests/slice_test.go b/vendor/github.com/json-iterator/go/value_tests/slice_test.go index f504e851ec90..3731cbe1553c 100644 --- a/vendor/github.com/json-iterator/go/value_tests/slice_test.go +++ b/vendor/github.com/json-iterator/go/value_tests/slice_test.go @@ -20,5 +20,8 @@ func init() { }, unmarshalCase{ ptr: (*[]byte)(nil), input: `"aGVsbG8="`, + }, unmarshalCase{ + ptr: (*[]byte)(nil), + input: `"c3ViamVjdHM\/X2Q9MQ=="`, }) } diff --git a/vendor/github.com/openshift/api/glide.lock b/vendor/github.com/openshift/api/glide.lock index 9d6254be7b22..1c0b517f09c7 100644 --- a/vendor/github.com/openshift/api/glide.lock +++ b/vendor/github.com/openshift/api/glide.lock @@ -1,5 +1,5 @@ -hash: b83a936fc81f16f06f7a2d3e381b77f43d04daa5d4c949948fa787975260ed12 -updated: 2018-06-14T11:13:15.340444591-04:00 +hash: ca8155b81239ffcea6c3b74403d70b300754153c039a29ac4034073cb79a5e91 +updated: 2018-06-29T14:49:46.811073304-04:00 imports: - name: github.com/davecgh/go-spew version: 782f4967f2dc4564575ca782fe2d04090b5faca8 @@ -21,7 +21,7 @@ imports: - name: github.com/google/gofuzz version: 44d81051d367757e1c7c6a5a86423ece9afcf63c - name: github.com/json-iterator/go - version: 2ddf6d758266fcb080a4f9e054b9f292c85e6798 + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/modern-go/concurrent version: bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94 - name: github.com/modern-go/reflect2 @@ -47,14 +47,14 @@ imports: - name: gopkg.in/yaml.v2 version: 670d4cfef0544295bc27a114dbac37980d83185a - name: k8s.io/api - version: 8c14244ab7eeffb1e4acd1ac1afb315b30fe67bf + version: 072894a440bdee3a891dea811fe42902311cd2a3 subpackages: - apps/v1beta1 - core/v1 - extensions/v1beta1 - rbac/v1 - name: k8s.io/apimachinery - version: 1369ad3fdc6dcb2c933d7e570b349d71bd3052cf + version: 103fd098999dc9c0c88536f5c9ad2e5da39373ae subpackages: - pkg/api/equality - pkg/api/meta @@ -94,7 +94,7 @@ imports: - pkg/watch - third_party/forked/golang/reflect - name: k8s.io/code-generator - version: a8dc310c260365c47d38b035b24454e623ed72cf + version: d7806fb979faad89dabf9e6a46aa18355962700c repo: git@github.com:openshift/kubernetes-code-generator - name: k8s.io/gengo version: 01a732e01d00cb9a81bb0ca050d3e6d2b947927b diff --git a/vendor/github.com/openshift/api/glide.yaml b/vendor/github.com/openshift/api/glide.yaml index 54280732a3ca..1bc8cc2b5f78 100644 --- a/vendor/github.com/openshift/api/glide.yaml +++ b/vendor/github.com/openshift/api/glide.yaml @@ -2,11 +2,14 @@ package: github.com/openshift/api import: - package: k8s.io/gengo repo: git@github.com:openshift/kubernetes-gengo - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/code-generator repo: git@github.com:openshift/kubernetes-code-generator - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 +# this matches the 1.11 GA level of apimachinery which glide isn't wanting to pick +- package: github.com/json-iterator/go + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - package: k8s.io/apimachinery - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/api - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 diff --git a/vendor/github.com/openshift/client-go/glide.lock b/vendor/github.com/openshift/client-go/glide.lock index cdc5dc57bb20..046d6e411796 100644 --- a/vendor/github.com/openshift/client-go/glide.lock +++ b/vendor/github.com/openshift/client-go/glide.lock @@ -1,5 +1,5 @@ -hash: e8a0b9979f43dd20824a60f16053e211bb34db11fe4d114c79a35530bfbf498c -updated: 2018-06-14T15:23:25.476553622-04:00 +hash: 91748cede774246187f6a8627e0a335015261f8e28708731a279c6ce205d9254 +updated: 2018-06-29T15:11:35.519708105-04:00 imports: - name: github.com/davecgh/go-spew version: 782f4967f2dc4564575ca782fe2d04090b5faca8 @@ -43,13 +43,13 @@ imports: - name: github.com/imdario/mergo version: 6633656539c1639d9d78127b7d47c622b5d7b6dc - name: github.com/json-iterator/go - version: 2ddf6d758266fcb080a4f9e054b9f292c85e6798 + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/modern-go/concurrent version: bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94 - name: github.com/modern-go/reflect2 version: 05fbef0ca5da472bbf96c9322b84a53edc03c9fd - name: github.com/openshift/api - version: ff4ab5976ba41da2911ecbc07c84312e0959ac92 + version: 31a7bbd2266d178da3c12bb83f5274d387f775e6 subpackages: - apps/v1 - authorization/v1 @@ -111,7 +111,7 @@ imports: - name: gopkg.in/yaml.v2 version: 670d4cfef0544295bc27a114dbac37980d83185a - name: k8s.io/api - version: 8c14244ab7eeffb1e4acd1ac1afb315b30fe67bf + version: 072894a440bdee3a891dea811fe42902311cd2a3 subpackages: - admissionregistration/v1alpha1 - admissionregistration/v1beta1 @@ -143,7 +143,7 @@ imports: - storage/v1alpha1 - storage/v1beta1 - name: k8s.io/apimachinery - version: 1369ad3fdc6dcb2c933d7e570b349d71bd3052cf + version: 103fd098999dc9c0c88536f5c9ad2e5da39373ae subpackages: - pkg/api/errors - pkg/api/meta @@ -187,7 +187,7 @@ imports: - third_party/forked/golang/json - third_party/forked/golang/reflect - name: k8s.io/client-go - version: 74dcea03361412e1f631eaf6d4d4a71d4066b934 + version: 7d04d0e2a0a1a4d4a1cd6baa432a2301492e4e65 subpackages: - discovery - discovery/fake @@ -217,13 +217,13 @@ imports: - util/integer - util/retry - name: k8s.io/code-generator - version: cdf4bddefab5a1b50f00eb6973f5b6e0a8b015bd + version: d7806fb979faad89dabf9e6a46aa18355962700c repo: git@github.com:openshift/kubernetes-code-generator - name: k8s.io/gengo version: 01a732e01d00cb9a81bb0ca050d3e6d2b947927b repo: git@github.com:openshift/kubernetes-gengo - name: k8s.io/kube-openapi - version: 8a9b82f00b3a86eac24681da3f9fe6c34c01cea2 + version: 91cfa479c814065e420cee7ed227db0f63a5854e subpackages: - pkg/util/proto testImports: [] diff --git a/vendor/github.com/openshift/client-go/glide.yaml b/vendor/github.com/openshift/client-go/glide.yaml index ce4107d865db..c179291fc78c 100644 --- a/vendor/github.com/openshift/client-go/glide.yaml +++ b/vendor/github.com/openshift/client-go/glide.yaml @@ -2,16 +2,16 @@ package: github.com/openshift/client-go import: - package: k8s.io/gengo repo: git@github.com:openshift/kubernetes-gengo - version: origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/code-generator repo: git@github.com:openshift/kubernetes-code-generator - version: tmp-origin-3.11-kubernetes-v1.11.0-beta.2 + version: origin-3.11-kubernetes-1.11.0 - package: k8s.io/apimachinery - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/api - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/client-go - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: github.com/openshift/api version: master - package: github.com/golang/glog diff --git a/vendor/github.com/openshift/library-go/glide.lock b/vendor/github.com/openshift/library-go/glide.lock index b96a2aec7982..df37e0fa4d2f 100644 --- a/vendor/github.com/openshift/library-go/glide.lock +++ b/vendor/github.com/openshift/library-go/glide.lock @@ -1,5 +1,5 @@ -hash: a41c94d1eab9ca796798ad7942f499374b3312245bef06422204c0df9508f883 -updated: 2018-06-14T15:40:18.907001365-04:00 +hash: 3b2ac5588e1edc90dd3cf20c5d1b9931b8a5d85cb316d7d53badf62e20674425 +updated: 2018-06-29T15:47:44.050191995-04:00 imports: - name: github.com/blang/semver version: c5e971dbed7850a93c23aa6ff69db5771d8e23b3 @@ -51,13 +51,13 @@ imports: - name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 - name: github.com/json-iterator/go - version: 2ddf6d758266fcb080a4f9e054b9f292c85e6798 + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/modern-go/concurrent version: bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94 - name: github.com/modern-go/reflect2 version: 05fbef0ca5da472bbf96c9322b84a53edc03c9fd - name: github.com/openshift/api - version: ff4ab5976ba41da2911ecbc07c84312e0959ac92 + version: 31a7bbd2266d178da3c12bb83f5274d387f775e6 subpackages: - config/v1 - operator/v1alpha1 @@ -70,9 +70,9 @@ imports: - name: github.com/pkg/profile version: 5b67d428864e92711fcbd2f8629456121a56d91f - name: github.com/spf13/cobra - version: 6644d46b81fa1831979c4cded0106e774e0ef0ab + version: c439c4fa093711d42e1b01acb1235b52004753c1 - name: github.com/spf13/pflag - version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea + version: 583c0c0531f06d5278b7d917446061adc344b5cd - name: golang.org/x/crypto version: 49796115aa4b964c318aad4f3084fdb41e9aa067 subpackages: @@ -107,7 +107,7 @@ imports: - name: gopkg.in/yaml.v2 version: 670d4cfef0544295bc27a114dbac37980d83185a - name: k8s.io/api - version: 8c14244ab7eeffb1e4acd1ac1afb315b30fe67bf + version: 072894a440bdee3a891dea811fe42902311cd2a3 subpackages: - admissionregistration/v1alpha1 - admissionregistration/v1beta1 @@ -139,12 +139,12 @@ imports: - storage/v1alpha1 - storage/v1beta1 - name: k8s.io/apiextensions-apiserver - version: 9ec60251801ea40794ae03a3da1cd11a9c2ff09a + version: 3de98c57bc05a81cf463e0ad7a0af4cec8a5b510 subpackages: - pkg/apis/apiextensions - pkg/apis/apiextensions/v1beta1 - name: k8s.io/apimachinery - version: 1369ad3fdc6dcb2c933d7e570b349d71bd3052cf + version: 103fd098999dc9c0c88536f5c9ad2e5da39373ae subpackages: - pkg/api/equality - pkg/api/errors @@ -188,12 +188,12 @@ imports: - third_party/forked/golang/json - third_party/forked/golang/reflect - name: k8s.io/apiserver - version: 18a7bea1ce92a746c1a4cc7fa5838741657856ea + version: 01459b68eb5fee2dcf5ca0e29df8bcac89ead47b subpackages: - pkg/authentication/user - pkg/util/logs - name: k8s.io/client-go - version: 74dcea03361412e1f631eaf6d4d4a71d4066b934 + version: 7d04d0e2a0a1a4d4a1cd6baa432a2301492e4e65 subpackages: - discovery - discovery/fake @@ -283,7 +283,7 @@ imports: - util/homedir - util/integer - name: k8s.io/kube-openapi - version: 8a9b82f00b3a86eac24681da3f9fe6c34c01cea2 + version: 91cfa479c814065e420cee7ed227db0f63a5854e subpackages: - pkg/util/proto testImports: [] diff --git a/vendor/github.com/openshift/library-go/glide.yaml b/vendor/github.com/openshift/library-go/glide.yaml index 464cbc3005bb..81ae5eed850f 100644 --- a/vendor/github.com/openshift/library-go/glide.yaml +++ b/vendor/github.com/openshift/library-go/glide.yaml @@ -1,15 +1,15 @@ package: github.com/openshift/library-go import: - package: k8s.io/apimachinery - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/api - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/apiserver - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/apiextensions-apiserver - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/client-go - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: github.com/openshift/api version: master @@ -22,6 +22,6 @@ import: # matches kube - package: github.com/spf13/cobra - version: 6644d46b81fa1831979c4cded0106e774e0ef0ab + version: c439c4fa093711d42e1b01acb1235b52004753c1 - package: github.com/spf13/pflag - version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea \ No newline at end of file + version: 583c0c0531f06d5278b7d917446061adc344b5cd \ No newline at end of file diff --git a/vendor/github.com/openshift/service-serving-cert-signer/glide.lock b/vendor/github.com/openshift/service-serving-cert-signer/glide.lock index b3100054ba87..879445ab4cad 100644 --- a/vendor/github.com/openshift/service-serving-cert-signer/glide.lock +++ b/vendor/github.com/openshift/service-serving-cert-signer/glide.lock @@ -1,5 +1,5 @@ -hash: 2ece27670706d2e90eca247fe4a719ef1a3eeacf08493c57a9339a7901626bfe -updated: 2018-06-14T15:55:31.783109682-04:00 +hash: 5f2bf0998c254e84eefb2f61f12aecb0fe5a84dd46d2e354d988c90ffc4bb1e4 +updated: 2018-06-29T15:55:00.577705248-04:00 imports: - name: github.com/beorn7/perks version: 3ac7bf7a47d159a033b107610db8a1b6575507a4 @@ -62,7 +62,7 @@ imports: - name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 - name: github.com/json-iterator/go - version: 2ddf6d758266fcb080a4f9e054b9f292c85e6798 + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/jteeuwen/go-bindata version: a0ff2567cfb70903282db057e799fd826784d41d - name: github.com/matttproud/golang_protobuf_extensions @@ -74,13 +74,13 @@ imports: - name: github.com/modern-go/reflect2 version: 05fbef0ca5da472bbf96c9322b84a53edc03c9fd - name: github.com/openshift/api - version: ff4ab5976ba41da2911ecbc07c84312e0959ac92 + version: 31a7bbd2266d178da3c12bb83f5274d387f775e6 subpackages: - config/v1 - operator/v1alpha1 - servicecertsigner/v1alpha1 - name: github.com/openshift/client-go - version: 570cd3183379dc770a8bb6cef90d5dbe01f678d8 + version: 4688ad28de2e88110c0ea30179c51b9b205f99be subpackages: - servicecertsigner/clientset/versioned - servicecertsigner/clientset/versioned/scheme @@ -91,7 +91,7 @@ imports: - servicecertsigner/informers/externalversions/servicecertsigner/v1alpha1 - servicecertsigner/listers/servicecertsigner/v1alpha1 - name: github.com/openshift/library-go - version: a40fb5197436a6011f7df971393899802ed259cf + version: 077f461517a8617b5bdb5088afa7b451dd612b15 subpackages: - pkg/config/client - pkg/config/leaderelection @@ -131,9 +131,9 @@ imports: subpackages: - xfs - name: github.com/spf13/cobra - version: 6644d46b81fa1831979c4cded0106e774e0ef0ab + version: c439c4fa093711d42e1b01acb1235b52004753c1 - name: github.com/spf13/pflag - version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea + version: 583c0c0531f06d5278b7d917446061adc344b5cd - name: golang.org/x/crypto version: 49796115aa4b964c318aad4f3084fdb41e9aa067 subpackages: @@ -184,7 +184,7 @@ imports: - name: gopkg.in/yaml.v2 version: 670d4cfef0544295bc27a114dbac37980d83185a - name: k8s.io/api - version: 8c14244ab7eeffb1e4acd1ac1afb315b30fe67bf + version: 072894a440bdee3a891dea811fe42902311cd2a3 subpackages: - admissionregistration/v1alpha1 - admissionregistration/v1beta1 @@ -216,12 +216,12 @@ imports: - storage/v1alpha1 - storage/v1beta1 - name: k8s.io/apiextensions-apiserver - version: 9ec60251801ea40794ae03a3da1cd11a9c2ff09a + version: 3de98c57bc05a81cf463e0ad7a0af4cec8a5b510 subpackages: - pkg/apis/apiextensions - pkg/apis/apiextensions/v1beta1 - name: k8s.io/apimachinery - version: 1369ad3fdc6dcb2c933d7e570b349d71bd3052cf + version: 103fd098999dc9c0c88536f5c9ad2e5da39373ae subpackages: - pkg/api/equality - pkg/api/errors @@ -267,13 +267,13 @@ imports: - third_party/forked/golang/json - third_party/forked/golang/reflect - name: k8s.io/apiserver - version: 18a7bea1ce92a746c1a4cc7fa5838741657856ea + version: 01459b68eb5fee2dcf5ca0e29df8bcac89ead47b subpackages: - pkg/authentication/user - pkg/util/flag - pkg/util/logs - name: k8s.io/client-go - version: 74dcea03361412e1f631eaf6d4d4a71d4066b934 + version: 7d04d0e2a0a1a4d4a1cd6baa432a2301492e4e65 subpackages: - discovery - discovery/fake @@ -434,7 +434,7 @@ imports: - util/retry - util/workqueue - name: k8s.io/kube-openapi - version: 8a9b82f00b3a86eac24681da3f9fe6c34c01cea2 + version: 91cfa479c814065e420cee7ed227db0f63a5854e subpackages: - pkg/builder - pkg/common diff --git a/vendor/github.com/openshift/service-serving-cert-signer/glide.yaml b/vendor/github.com/openshift/service-serving-cert-signer/glide.yaml index aaf658762a9e..a4ded85f2ae8 100644 --- a/vendor/github.com/openshift/service-serving-cert-signer/glide.yaml +++ b/vendor/github.com/openshift/service-serving-cert-signer/glide.yaml @@ -1,13 +1,13 @@ package: github.com/openshift/service-serving-cert-signer import: - package: k8s.io/apimachinery - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/api - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/apiserver - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: k8s.io/client-go - version: kubernetes-1.11.0-beta.2 + version: kubernetes-1.11.0 - package: github.com/openshift/api version: master - package: github.com/openshift/client-go diff --git a/vendor/github.com/spf13/cobra/bash_completions.md b/vendor/github.com/spf13/cobra/bash_completions.md index 691a04e190b2..8d01f456f8a1 100644 --- a/vendor/github.com/spf13/cobra/bash_completions.md +++ b/vendor/github.com/spf13/cobra/bash_completions.md @@ -6,15 +6,16 @@ Generating bash completions from a cobra command is incredibly easy. An actual p package main import ( - "io/ioutil" - "os" + "io/ioutil" + "os" - "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd" + "k8s.io/kubernetes/pkg/kubectl/cmd" + "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) func main() { - kubectl := cmd.NewFactory(nil).NewKubectlCommand(os.Stdin, ioutil.Discard, ioutil.Discard) - kubectl.GenBashCompletionFile("out.sh") + kubectl := cmd.NewKubectlCommand(util.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) + kubectl.GenBashCompletionFile("out.sh") } ``` diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index 29675b336322..15b8112795cb 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -475,6 +475,9 @@ Loop: s := args[0] args = args[1:] switch { + case s == "--": + // "--" terminates the flags + break Loop case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags): // If '--flag arg' then // delete arg from args. diff --git a/vendor/github.com/spf13/pflag/bytes.go b/vendor/github.com/spf13/pflag/bytes.go new file mode 100644 index 000000000000..12c58db9fe30 --- /dev/null +++ b/vendor/github.com/spf13/pflag/bytes.go @@ -0,0 +1,105 @@ +package pflag + +import ( + "encoding/hex" + "fmt" + "strings" +) + +// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded +type bytesHexValue []byte + +func (bytesHex bytesHexValue) String() string { + return fmt.Sprintf("%X", []byte(bytesHex)) +} + +func (bytesHex *bytesHexValue) Set(value string) error { + bin, err := hex.DecodeString(strings.TrimSpace(value)) + + if err != nil { + return err + } + + *bytesHex = bin + + return nil +} + +func (*bytesHexValue) Type() string { + return "bytesHex" +} + +func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue { + *p = val + return (*bytesHexValue)(p) +} + +func bytesHexConv(sval string) (interface{}, error) { + + bin, err := hex.DecodeString(sval) + + if err == nil { + return bin, nil + } + + return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) +} + +// GetBytesHex return the []byte value of a flag with the given name +func (f *FlagSet) GetBytesHex(name string) ([]byte, error) { + val, err := f.getFlagType(name, "bytesHex", bytesHexConv) + + if err != nil { + return []byte{}, err + } + + return val.([]byte), nil +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func BytesHexVar(p *[]byte, name string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, "", value, usage) + return p +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, shorthand, value, usage) + return p +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func BytesHex(name string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, "", value, usage) +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/bytes_test.go b/vendor/github.com/spf13/pflag/bytes_test.go new file mode 100644 index 000000000000..cc4a769d9a0b --- /dev/null +++ b/vendor/github.com/spf13/pflag/bytes_test.go @@ -0,0 +1,72 @@ +package pflag + +import ( + "fmt" + "os" + "testing" +) + +func setUpBytesHex(bytesHex *[]byte) *FlagSet { + f := NewFlagSet("test", ContinueOnError) + f.BytesHexVar(bytesHex, "bytes", []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, "Some bytes in HEX") + f.BytesHexVarP(bytesHex, "bytes2", "B", []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, "Some bytes in HEX") + return f +} + +func TestBytesHex(t *testing.T) { + testCases := []struct { + input string + success bool + expected string + }{ + /// Positive cases + {"", true, ""}, // Is empty string OK ? + {"01", true, "01"}, + {"0101", true, "0101"}, + {"1234567890abcdef", true, "1234567890ABCDEF"}, + {"1234567890ABCDEF", true, "1234567890ABCDEF"}, + + // Negative cases + {"0", false, ""}, // Short string + {"000", false, ""}, /// Odd-length string + {"qq", false, ""}, /// non-hex character + } + + devnull, _ := os.Open(os.DevNull) + os.Stderr = devnull + + for i := range testCases { + var bytesHex []byte + f := setUpBytesHex(&bytesHex) + + tc := &testCases[i] + + // --bytes + args := []string{ + fmt.Sprintf("--bytes=%s", tc.input), + fmt.Sprintf("-B %s", tc.input), + fmt.Sprintf("--bytes2=%s", tc.input), + } + + for _, arg := range args { + err := f.Parse([]string{arg}) + + if err != nil && tc.success == true { + t.Errorf("expected success, got %q", err) + continue + } else if err == nil && tc.success == false { + // bytesHex, err := f.GetBytesHex("bytes") + t.Errorf("expected failure while processing %q", tc.input) + continue + } else if tc.success { + bytesHex, err := f.GetBytesHex("bytes") + if err != nil { + t.Errorf("Got error trying to fetch the IP flag: %v", err) + } + if fmt.Sprintf("%X", bytesHex) != tc.expected { + t.Errorf("expected %q, got '%X'", tc.expected, bytesHex) + } + } + } + } +} diff --git a/vendor/github.com/spf13/pflag/duration_slice.go b/vendor/github.com/spf13/pflag/duration_slice.go new file mode 100644 index 000000000000..52c6b6dc1041 --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration_slice.go @@ -0,0 +1,128 @@ +package pflag + +import ( + "fmt" + "strings" + "time" +) + +// -- durationSlice Value +type durationSliceValue struct { + value *[]time.Duration + changed bool +} + +func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue { + dsv := new(durationSliceValue) + dsv.value = p + *dsv.value = val + return dsv +} + +func (s *durationSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return err + } + + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *durationSliceValue) Type() string { + return "durationSlice" +} + +func (s *durationSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%s", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func durationSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []time.Duration{}, nil + } + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return nil, err + } + + } + return out, nil +} + +// GetDurationSlice returns the []time.Duration value of a flag with the given name +func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) { + val, err := f.getFlagType(name, "durationSlice", durationSliceConv) + if err != nil { + return []time.Duration{}, err + } + return val.([]time.Duration), nil +} + +// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string. +// The argument p points to a []time.Duration variable in which to store the value of the flag. +func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string. +// The argument p points to a duration[] variable in which to store the value of the flag. +func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, "", value, usage) + return &p +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, "", value, usage) +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/duration_slice_test.go b/vendor/github.com/spf13/pflag/duration_slice_test.go new file mode 100644 index 000000000000..489b012ffdaa --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration_slice_test.go @@ -0,0 +1,165 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code ds governed by a BSD-style +// license that can be found in the LICENSE file. + +package pflag + +import ( + "fmt" + "strings" + "testing" + "time" +) + +func setUpDSFlagSet(dsp *[]time.Duration) *FlagSet { + f := NewFlagSet("test", ContinueOnError) + f.DurationSliceVar(dsp, "ds", []time.Duration{}, "Command separated list!") + return f +} + +func setUpDSFlagSetWithDefault(dsp *[]time.Duration) *FlagSet { + f := NewFlagSet("test", ContinueOnError) + f.DurationSliceVar(dsp, "ds", []time.Duration{0, 1}, "Command separated list!") + return f +} + +func TestEmptyDS(t *testing.T) { + var ds []time.Duration + f := setUpDSFlagSet(&ds) + err := f.Parse([]string{}) + if err != nil { + t.Fatal("expected no error; got", err) + } + + getDS, err := f.GetDurationSlice("ds") + if err != nil { + t.Fatal("got an error from GetDurationSlice():", err) + } + if len(getDS) != 0 { + t.Fatalf("got ds %v with len=%d but expected length=0", getDS, len(getDS)) + } +} + +func TestDS(t *testing.T) { + var ds []time.Duration + f := setUpDSFlagSet(&ds) + + vals := []string{"1ns", "2ms", "3m", "4h"} + arg := fmt.Sprintf("--ds=%s", strings.Join(vals, ",")) + err := f.Parse([]string{arg}) + if err != nil { + t.Fatal("expected no error; got", err) + } + for i, v := range ds { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatalf("got error: %v", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %s but got: %d", i, vals[i], v) + } + } + getDS, err := f.GetDurationSlice("ds") + if err != nil { + t.Fatalf("got error: %v", err) + } + for i, v := range getDS { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatalf("got error: %v", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %s but got: %d from GetDurationSlice", i, vals[i], v) + } + } +} + +func TestDSDefault(t *testing.T) { + var ds []time.Duration + f := setUpDSFlagSetWithDefault(&ds) + + vals := []string{"0s", "1ns"} + + err := f.Parse([]string{}) + if err != nil { + t.Fatal("expected no error; got", err) + } + for i, v := range ds { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatalf("got error: %v", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %d but got: %d", i, d, v) + } + } + + getDS, err := f.GetDurationSlice("ds") + if err != nil { + t.Fatal("got an error from GetDurationSlice():", err) + } + for i, v := range getDS { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatal("got an error from GetDurationSlice():", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %d from GetDurationSlice but got: %d", i, d, v) + } + } +} + +func TestDSWithDefault(t *testing.T) { + var ds []time.Duration + f := setUpDSFlagSetWithDefault(&ds) + + vals := []string{"1ns", "2ns"} + arg := fmt.Sprintf("--ds=%s", strings.Join(vals, ",")) + err := f.Parse([]string{arg}) + if err != nil { + t.Fatal("expected no error; got", err) + } + for i, v := range ds { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatalf("got error: %v", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %d but got: %d", i, d, v) + } + } + + getDS, err := f.GetDurationSlice("ds") + if err != nil { + t.Fatal("got an error from GetDurationSlice():", err) + } + for i, v := range getDS { + d, err := time.ParseDuration(vals[i]) + if err != nil { + t.Fatalf("got error: %v", err) + } + if d != v { + t.Fatalf("expected ds[%d] to be %d from GetDurationSlice but got: %d", i, d, v) + } + } +} + +func TestDSCalledTwice(t *testing.T) { + var ds []time.Duration + f := setUpDSFlagSet(&ds) + + in := []string{"1ns,2ns", "3ns"} + expected := []time.Duration{1, 2, 3} + argfmt := "--ds=%s" + arg1 := fmt.Sprintf(argfmt, in[0]) + arg2 := fmt.Sprintf(argfmt, in[1]) + err := f.Parse([]string{arg1, arg2}) + if err != nil { + t.Fatal("expected no error; got", err) + } + for i, v := range ds { + if expected[i] != v { + t.Fatalf("expected ds[%d] to be %d but got: %d", i, expected[i], v) + } + } +} diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go index 28538c0750ba..5eadc84e3c42 100644 --- a/vendor/github.com/spf13/pflag/flag.go +++ b/vendor/github.com/spf13/pflag/flag.go @@ -101,6 +101,7 @@ package pflag import ( "bytes" "errors" + goflag "flag" "fmt" "io" "os" @@ -123,6 +124,12 @@ const ( PanicOnError ) +// ParseErrorsWhitelist defines the parsing errors that can be ignored +type ParseErrorsWhitelist struct { + // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags + UnknownFlags bool +} + // NormalizedName is a flag name that has been normalized according to rules // for the FlagSet (e.g. making '-' and '_' equivalent). type NormalizedName string @@ -138,6 +145,9 @@ type FlagSet struct { // help/usage messages. SortFlags bool + // ParseErrorsWhitelist is used to configure a whitelist of errors + ParseErrorsWhitelist ParseErrorsWhitelist + name string parsed bool actual map[NormalizedName]*Flag @@ -153,6 +163,8 @@ type FlagSet struct { output io.Writer // nil means stderr; use out() accessor interspersed bool // allow interspersed option/non-option args normalizeNameFunc func(f *FlagSet, name string) NormalizedName + + addedGoFlagSets []*goflag.FlagSet } // A Flag represents the state of a flag. @@ -267,16 +279,16 @@ func (f *FlagSet) VisitAll(fn func(*Flag)) { } } -// HasFlags returns a bool to indicate if the FlagSet has any flags definied. +// HasFlags returns a bool to indicate if the FlagSet has any flags defined. func (f *FlagSet) HasFlags() bool { return len(f.formal) > 0 } // HasAvailableFlags returns a bool to indicate if the FlagSet has any flags -// definied that are not hidden or deprecated. +// that are not hidden. func (f *FlagSet) HasAvailableFlags() bool { for _, flag := range f.formal { - if !flag.Hidden && len(flag.Deprecated) == 0 { + if !flag.Hidden { return true } } @@ -386,6 +398,7 @@ func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error { return fmt.Errorf("deprecated message for flag %q must be set", name) } flag.Deprecated = usageMessage + flag.Hidden = true return nil } @@ -586,11 +599,14 @@ func wrapN(i, slop int, s string) (string, string) { return s, "" } - w := strings.LastIndexAny(s[:i], " \t") + w := strings.LastIndexAny(s[:i], " \t\n") if w <= 0 { return s, "" } - + nlPos := strings.LastIndex(s[:i], "\n") + if nlPos > 0 && nlPos < w { + return s[:nlPos], s[nlPos+1:] + } return s[:w], s[w+1:] } @@ -599,7 +615,7 @@ func wrapN(i, slop int, s string) (string, string) { // caller). Pass `w` == 0 to do no wrapping func wrap(i, w int, s string) string { if w == 0 { - return s + return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1) } // space between indent i and end of line width w into which @@ -617,7 +633,7 @@ func wrap(i, w int, s string) string { } // If still not enough space then don't even try to wrap. if wrap < 24 { - return s + return strings.Replace(s, "\n", r, -1) } // Try to avoid short orphan words on the final line, by @@ -629,14 +645,14 @@ func wrap(i, w int, s string) string { // Handle first line, which is indented by the caller (or the // special case above) l, s = wrapN(wrap, slop, s) - r = r + l + r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1) // Now wrap the rest for s != "" { var t string t, s = wrapN(wrap, slop, s) - r = r + "\n" + strings.Repeat(" ", i) + t + r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1) } return r @@ -653,7 +669,7 @@ func (f *FlagSet) FlagUsagesWrapped(cols int) string { maxlen := 0 f.VisitAll(func(flag *Flag) { - if flag.Deprecated != "" || flag.Hidden { + if flag.Hidden { return } @@ -700,6 +716,9 @@ func (f *FlagSet) FlagUsagesWrapped(cols int) string { line += fmt.Sprintf(" (default %s)", flag.DefValue) } } + if len(flag.Deprecated) != 0 { + line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated) + } lines = append(lines, line) }) @@ -896,6 +915,25 @@ func (f *FlagSet) usage() { } } +//--unknown (args will be empty) +//--unknown --next-flag ... (args will be --next-flag ...) +//--unknown arg ... (args will be arg ...) +func stripUnknownFlagValue(args []string) []string { + if len(args) == 0 { + //--unknown + return args + } + + first := args[0] + if first[0] == '-' { + //--unknown --next-flag ... + return args + } + + //--unknown arg ... (args will be arg ...) + return args[1:] +} + func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { a = args name := s[2:] @@ -907,13 +945,24 @@ func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []strin split := strings.SplitN(name, "=", 2) name = split[0] flag, exists := f.formal[f.normalizeFlagName(name)] + if !exists { - if name == "help" { // special case for nice help message. + switch { + case name == "help": f.usage() return a, ErrHelp + case f.ParseErrorsWhitelist.UnknownFlags: + // --unknown=unknownval arg ... + // we do not want to lose arg in this case + if len(split) >= 2 { + return a, nil + } + + return stripUnknownFlagValue(a), nil + default: + err = f.failf("unknown flag: --%s", name) + return } - err = f.failf("unknown flag: --%s", name) - return } var value string @@ -951,13 +1000,25 @@ func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parse flag, exists := f.shorthands[c] if !exists { - if c == 'h' { // special case for nice help message. + switch { + case c == 'h': f.usage() err = ErrHelp return + case f.ParseErrorsWhitelist.UnknownFlags: + // '-f=arg arg ...' + // we do not want to lose arg in this case + if len(shorthands) > 2 && shorthands[1] == '=' { + outShorts = "" + return + } + + outArgs = stripUnknownFlagValue(outArgs) + return + default: + err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) + return } - err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) - return } var value string @@ -1044,6 +1105,11 @@ func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) { // are defined and before flags are accessed by the program. // The return value will be ErrHelp if -help was set but not defined. func (f *FlagSet) Parse(arguments []string) error { + if f.addedGoFlagSets != nil { + for _, goFlagSet := range f.addedGoFlagSets { + goFlagSet.Parse(nil) + } + } f.parsed = true if len(arguments) < 0 { diff --git a/vendor/github.com/spf13/pflag/flag_test.go b/vendor/github.com/spf13/pflag/flag_test.go index d587752f33bc..f600f0aeb68f 100644 --- a/vendor/github.com/spf13/pflag/flag_test.go +++ b/vendor/github.com/spf13/pflag/flag_test.go @@ -389,7 +389,78 @@ func testParseAll(f *FlagSet, t *testing.T) { } if !reflect.DeepEqual(got, want) { t.Errorf("f.ParseAll() fail to restore the args") - t.Errorf("Got: %v", got) + t.Errorf("Got: %v", got) + t.Errorf("Want: %v", want) + } +} + +func testParseWithUnknownFlags(f *FlagSet, t *testing.T) { + if f.Parsed() { + t.Error("f.Parse() = true before Parse") + } + f.ParseErrorsWhitelist.UnknownFlags = true + + f.BoolP("boola", "a", false, "bool value") + f.BoolP("boolb", "b", false, "bool2 value") + f.BoolP("boolc", "c", false, "bool3 value") + f.BoolP("boold", "d", false, "bool4 value") + f.BoolP("boole", "e", false, "bool4 value") + f.StringP("stringa", "s", "0", "string value") + f.StringP("stringz", "z", "0", "string value") + f.StringP("stringx", "x", "0", "string value") + f.StringP("stringy", "y", "0", "string value") + f.StringP("stringo", "o", "0", "string value") + f.Lookup("stringx").NoOptDefVal = "1" + args := []string{ + "-ab", + "-cs=xx", + "--stringz=something", + "--unknown1", + "unknown1Value", + "-d=true", + "-x", + "--unknown2=unknown2Value", + "-u=unknown3Value", + "-p", + "unknown4Value", + "-q", //another unknown with bool value + "-y", + "ee", + "--unknown7=unknown7value", + "--stringo=ovalue", + "--unknown8=unknown8value", + "--boole", + "--unknown6", + } + want := []string{ + "boola", "true", + "boolb", "true", + "boolc", "true", + "stringa", "xx", + "stringz", "something", + "boold", "true", + "stringx", "1", + "stringy", "ee", + "stringo", "ovalue", + "boole", "true", + } + got := []string{} + store := func(flag *Flag, value string) error { + got = append(got, flag.Name) + if len(value) > 0 { + got = append(got, value) + } + return nil + } + if err := f.ParseAll(args, store); err != nil { + t.Errorf("expected no error, got %s", err) + } + if !f.Parsed() { + t.Errorf("f.Parse() = false after Parse") + } + if !reflect.DeepEqual(got, want) { + t.Errorf("f.ParseAll() fail to restore the args") + t.Errorf("Got: %v", got) t.Errorf("Want: %v", want) } } @@ -500,6 +571,11 @@ func TestParseAll(t *testing.T) { testParseAll(GetCommandLine(), t) } +func TestIgnoreUnknownFlags(t *testing.T) { + ResetForTesting(func() { t.Error("bad parse") }) + testParseWithUnknownFlags(GetCommandLine(), t) +} + func TestFlagSetParse(t *testing.T) { testParse(NewFlagSet("test", ContinueOnError), t) } @@ -890,10 +966,14 @@ func TestTermination(t *testing.T) { } } -func TestDeprecatedFlagInDocs(t *testing.T) { +func getDeprecatedFlagSet() *FlagSet { f := NewFlagSet("bob", ContinueOnError) f.Bool("badflag", true, "always true") f.MarkDeprecated("badflag", "use --good-flag instead") + return f +} +func TestDeprecatedFlagInDocs(t *testing.T) { + f := getDeprecatedFlagSet() out := new(bytes.Buffer) f.SetOutput(out) @@ -904,6 +984,27 @@ func TestDeprecatedFlagInDocs(t *testing.T) { } } +func TestUnHiddenDeprecatedFlagInDocs(t *testing.T) { + f := getDeprecatedFlagSet() + flg := f.Lookup("badflag") + if flg == nil { + t.Fatalf("Unable to lookup 'bob' in TestUnHiddenDeprecatedFlagInDocs") + } + flg.Hidden = false + + out := new(bytes.Buffer) + f.SetOutput(out) + f.PrintDefaults() + + defaults := out.String() + if !strings.Contains(defaults, "badflag") { + t.Errorf("Did not find deprecated flag in usage!") + } + if !strings.Contains(defaults, "use --good-flag instead") { + t.Errorf("Did not find 'use --good-flag instead' in defaults") + } +} + func TestDeprecatedFlagShorthandInDocs(t *testing.T) { f := NewFlagSet("bob", ContinueOnError) name := "noshorthandflag" diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go index c4f47ebe590f..d3dd72b7feed 100644 --- a/vendor/github.com/spf13/pflag/golangflag.go +++ b/vendor/github.com/spf13/pflag/golangflag.go @@ -98,4 +98,8 @@ func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { newSet.VisitAll(func(goflag *goflag.Flag) { f.AddGoFlag(goflag) }) + if f.addedGoFlagSets == nil { + f.addedGoFlagSets = make([]*goflag.FlagSet, 0) + } + f.addedGoFlagSets = append(f.addedGoFlagSets, newSet) } diff --git a/vendor/github.com/spf13/pflag/golangflag_test.go b/vendor/github.com/spf13/pflag/golangflag_test.go index 77e2d7d80a3d..5bd831bf9238 100644 --- a/vendor/github.com/spf13/pflag/golangflag_test.go +++ b/vendor/github.com/spf13/pflag/golangflag_test.go @@ -36,4 +36,12 @@ func TestGoflags(t *testing.T) { if getBool != true { t.Fatalf("expected getBool=true but got getBool=%v", getBool) } + if !f.Parsed() { + t.Fatal("f.Parsed() return false after f.Parse() called") + } + + // in fact it is useless. because `go test` called flag.Parse() + if !goflag.CommandLine.Parsed() { + t.Fatal("goflag.CommandLine.Parsed() return false after f.Parse() called") + } } diff --git a/vendor/github.com/spf13/pflag/printusage_test.go b/vendor/github.com/spf13/pflag/printusage_test.go new file mode 100644 index 000000000000..df982aab4c5f --- /dev/null +++ b/vendor/github.com/spf13/pflag/printusage_test.go @@ -0,0 +1,74 @@ +package pflag + +import ( + "bytes" + "io" + "testing" +) + +const expectedOutput = ` --long-form Some description + --long-form2 Some description + with multiline + -s, --long-name Some description + -t, --long-name2 Some description with + multiline +` + +func setUpPFlagSet(buf io.Writer) *FlagSet { + f := NewFlagSet("test", ExitOnError) + f.Bool("long-form", false, "Some description") + f.Bool("long-form2", false, "Some description\n with multiline") + f.BoolP("long-name", "s", false, "Some description") + f.BoolP("long-name2", "t", false, "Some description with\n multiline") + f.SetOutput(buf) + return f +} + +func TestPrintUsage(t *testing.T) { + buf := bytes.Buffer{} + f := setUpPFlagSet(&buf) + f.PrintDefaults() + res := buf.String() + if res != expectedOutput { + t.Errorf("Expected \n%s \nActual \n%s", expectedOutput, res) + } +} + +func setUpPFlagSet2(buf io.Writer) *FlagSet { + f := NewFlagSet("test", ExitOnError) + f.Bool("long-form", false, "Some description") + f.Bool("long-form2", false, "Some description\n with multiline") + f.BoolP("long-name", "s", false, "Some description") + f.BoolP("long-name2", "t", false, "Some description with\n multiline") + f.StringP("some-very-long-arg", "l", "test", "Some very long description having break the limit") + f.StringP("other-very-long-arg", "o", "long-default-value", "Some very long description having break the limit") + f.String("some-very-long-arg2", "very long default value", "Some very long description\nwith line break\nmultiple") + f.SetOutput(buf) + return f +} + +const expectedOutput2 = ` --long-form Some description + --long-form2 Some description + with multiline + -s, --long-name Some description + -t, --long-name2 Some description with + multiline + -o, --other-very-long-arg string Some very long description having + break the limit (default + "long-default-value") + -l, --some-very-long-arg string Some very long description having + break the limit (default "test") + --some-very-long-arg2 string Some very long description + with line break + multiple (default "very long default + value") +` + +func TestPrintUsage_2(t *testing.T) { + buf := bytes.Buffer{} + f := setUpPFlagSet2(&buf) + res := f.FlagUsagesWrapped(80) + if res != expectedOutput2 { + t.Errorf("Expected \n%q \nActual \n%q", expectedOutput2, res) + } +} diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go index 276b7ed49edf..fa7bc60187a7 100644 --- a/vendor/github.com/spf13/pflag/string_array.go +++ b/vendor/github.com/spf13/pflag/string_array.go @@ -52,7 +52,7 @@ func (f *FlagSet) GetStringArray(name string) ([]string, error) { // StringArrayVar defines a string flag with specified name, default value, and usage string. // The argument p points to a []string variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) { f.VarP(newStringArrayValue(value, p), name, "", usage) } @@ -64,7 +64,7 @@ func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []s // StringArrayVar defines a string flag with specified name, default value, and usage string. // The argument p points to a []string variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. func StringArrayVar(p *[]string, name string, value []string, usage string) { CommandLine.VarP(newStringArrayValue(value, p), name, "", usage) } @@ -76,7 +76,7 @@ func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage // StringArray defines a string flag with specified name, default value, and usage string. // The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string { p := []string{} f.StringArrayVarP(&p, name, "", value, usage) @@ -92,7 +92,7 @@ func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage str // StringArray defines a string flag with specified name, default value, and usage string. // The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. func StringArray(name string, value []string, usage string) *[]string { return CommandLine.StringArrayP(name, "", value, usage) } diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go index 05eee75438d1..0cd3ccc083e2 100644 --- a/vendor/github.com/spf13/pflag/string_slice.go +++ b/vendor/github.com/spf13/pflag/string_slice.go @@ -82,6 +82,11 @@ func (f *FlagSet) GetStringSlice(name string) ([]string, error) { // StringSliceVar defines a string flag with specified name, default value, and usage string. // The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) { f.VarP(newStringSliceValue(value, p), name, "", usage) } @@ -93,6 +98,11 @@ func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []s // StringSliceVar defines a string flag with specified name, default value, and usage string. // The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} func StringSliceVar(p *[]string, name string, value []string, usage string) { CommandLine.VarP(newStringSliceValue(value, p), name, "", usage) } @@ -104,6 +114,11 @@ func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage // StringSlice defines a string flag with specified name, default value, and usage string. // The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string { p := []string{} f.StringSliceVarP(&p, name, "", value, usage) @@ -119,6 +134,11 @@ func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage str // StringSlice defines a string flag with specified name, default value, and usage string. // The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} func StringSlice(name string, value []string, usage string) *[]string { return CommandLine.StringSliceP(name, "", value, usage) } diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.11.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.11.md index 7f0344496ca9..06ad5bc7d115 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.11.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.11.md @@ -1,32 +1,413 @@ -- [v1.11.0-beta.1](#v1110-beta1) - - [Downloads for v1.11.0-beta.1](#downloads-for-v1110-beta1) +- [v1.11.0-rc.3](#v1110-rc3) + - [Downloads for v1.11.0-rc.3](#downloads-for-v1110-rc3) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.11.0-alpha.2](#changelog-since-v1110-alpha2) - - [Action Required](#action-required) + - [Changelog since v1.11.0-rc.2](#changelog-since-v1110-rc2) - [Other notable changes](#other-notable-changes) -- [v1.11.0-alpha.2](#v1110-alpha2) - - [Downloads for v1.11.0-alpha.2](#downloads-for-v1110-alpha2) +- [v1.11.0-rc.2](#v1110-rc2) + - [Downloads for v1.11.0-rc.2](#downloads-for-v1110-rc2) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.11.0-alpha.1](#changelog-since-v1110-alpha1) + - [Changelog since v1.11.0-rc.1](#changelog-since-v1110-rc1) - [Other notable changes](#other-notable-changes-1) -- [v1.11.0-alpha.1](#v1110-alpha1) - - [Downloads for v1.11.0-alpha.1](#downloads-for-v1110-alpha1) +- [v1.11.0-rc.1](#v1110-rc1) + - [Downloads for v1.11.0-rc.1](#downloads-for-v1110-rc1) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.10.0](#changelog-since-v1100) - - [Action Required](#action-required-1) + - [Changelog since v1.11.0-beta.2](#changelog-since-v1110-beta2) + - [Action Required](#action-required) - [Other notable changes](#other-notable-changes-2) +- [v1.11.0-beta.2](#v1110-beta2) + - [Downloads for v1.11.0-beta.2](#downloads-for-v1110-beta2) + - [Client Binaries](#client-binaries-3) + - [Server Binaries](#server-binaries-3) + - [Node Binaries](#node-binaries-3) + - [Changelog since v1.11.0-beta.1](#changelog-since-v1110-beta1) + - [Action Required](#action-required-1) + - [Other notable changes](#other-notable-changes-3) +- [v1.11.0-beta.1](#v1110-beta1) + - [Downloads for v1.11.0-beta.1](#downloads-for-v1110-beta1) + - [Client Binaries](#client-binaries-4) + - [Server Binaries](#server-binaries-4) + - [Node Binaries](#node-binaries-4) + - [Changelog since v1.11.0-alpha.2](#changelog-since-v1110-alpha2) + - [Action Required](#action-required-2) + - [Other notable changes](#other-notable-changes-4) +- [v1.11.0-alpha.2](#v1110-alpha2) + - [Downloads for v1.11.0-alpha.2](#downloads-for-v1110-alpha2) + - [Client Binaries](#client-binaries-5) + - [Server Binaries](#server-binaries-5) + - [Node Binaries](#node-binaries-5) + - [Changelog since v1.11.0-alpha.1](#changelog-since-v1110-alpha1) + - [Other notable changes](#other-notable-changes-5) +- [v1.11.0-alpha.1](#v1110-alpha1) + - [Downloads for v1.11.0-alpha.1](#downloads-for-v1110-alpha1) + - [Client Binaries](#client-binaries-6) + - [Server Binaries](#server-binaries-6) + - [Node Binaries](#node-binaries-6) + - [Changelog since v1.10.0](#changelog-since-v1100) + - [Action Required](#action-required-3) + - [Other notable changes](#other-notable-changes-6) +# v1.11.0-rc.3 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.11/examples) + +## Downloads for v1.11.0-rc.3 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes.tar.gz) | `25879ba96d7baf1eb9002956cef3ee40597ed7507784262881a09c00d35ab4c6` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-src.tar.gz) | `748786c0847e278530c790f82af52797de8b5a9e494e727d0049d4b35e370327` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-darwin-386.tar.gz) | `7a3c1b89d6787e275b4b6b855237da6964145e0234b82243c7c6803f1cbd3b46` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-darwin-amd64.tar.gz) | `0265652c3d7f98e36d1d591e3e6ec5018825b6c0cd37bf65c4d043dc313279e3` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-386.tar.gz) | `600d9c83ba4d2126da1cfcd0c079d97c8ede75fad61bead1135dc9e4f7e325ce` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-amd64.tar.gz) | `143fdaf82480dab68b1c783ae9f21916783335f3e4eaa132d72a2c1f7b4b393f` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-arm.tar.gz) | `1bf4a0823c9c8128b19a2f0a8fbaf81226a313bc35132412a9fa1d251c2af07c` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-arm64.tar.gz) | `643b84a227838dd6f1dc6c874f6966e9f098b64fd7947ff940776613fa2addf0` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-ppc64le.tar.gz) | `f46e1952046e977defd1a308ebe6de3ba6a710d562d17de987966a630ea2f7a3` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-linux-s390x.tar.gz) | `7ba61a3d8e6b50b238814eb086c6f9a9354342be9ac1882d0751d6cd2ce9f295` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-windows-386.tar.gz) | `587ca7b09cd45864b8093a8aa10284d473db1f528a6173cd2e58f336673aade0` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-client-windows-amd64.tar.gz) | `a8b1aac95def9f2bf54a5bbd2d83a1dd7778d0a08f1986187063a9a288a9079b` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-server-linux-amd64.tar.gz) | `d19cc5604370eb2fa826420c99dcbdbbb9bf096ea2916549a46ace990c09e20e` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-server-linux-arm.tar.gz) | `47b4ac984a855df2c78443a527705e45909da27405bb7cd8f257a5cde0314518` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-server-linux-arm64.tar.gz) | `09f8c2692f8de291c522fc96a5cbefcd60fe7a1ba9235251be11e6dda8663360` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-server-linux-ppc64le.tar.gz) | `594ff5991206887a70ec0c13624fa940f7ef4ce9cb17f9d8906f7a124a7ae4d1` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-server-linux-s390x.tar.gz) | `43a635f34ce473dcf52870e1d8fad324776d4d958b9829a3dce49eb07f8c4412` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-linux-amd64.tar.gz) | `b3259ed3bf2063aca9e6061cc27752adc4d787dfada4498bc4495cbc962826a2` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-linux-arm.tar.gz) | `9c71370709c345e4495708d8a2c03c1698f59cc9ca60678f498e895170530f9f` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-linux-arm64.tar.gz) | `d3d1cb767da267ebe8c03c7c6176490d5d047e33596704d099597ff50e5ae3b6` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-linux-ppc64le.tar.gz) | `d7c623d9ccce9cbb4c8a5d1432ac00222b54f420699d565416e09555e2cc7ff3` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-linux-s390x.tar.gz) | `288cd27f2e428a3e805c7fcc2c3945c0c6ee2db4812ad293e2bfd9f85bccf428` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.3/kubernetes-node-windows-amd64.tar.gz) | `991765513e0f778ec5416de456dfd709ed90a2fa97741f50dfdb0d30ee4ccbc0` + +## Changelog since v1.11.0-rc.2 + +### Other notable changes + +* Pass cluster_location argument to Heapster ([#65176](https://github.com/kubernetes/kubernetes/pull/65176), [@kawych](https://github.com/kawych)) +* Fix concurrent map access panic ([#65331](https://github.com/kubernetes/kubernetes/pull/65331), [@dashpole](https://github.com/dashpole)) + * Don't watch .mount cgroups to reduce number of inotify watches + * Fix NVML initialization race condition + * Fix brtfs disk metrics when using a subdirectory of a subvolume +* User can now use `sudo crictl` on GCE cluster. ([#65389](https://github.com/kubernetes/kubernetes/pull/65389), [@Random-Liu](https://github.com/Random-Liu)) + + + +# v1.11.0-rc.2 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.11/examples) + +## Downloads for v1.11.0-rc.2 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes.tar.gz) | `30742ea1e24ade88e148db872eeef58597813bc67d485c0ff6e4b7284d59500a` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-src.tar.gz) | `77e1f018820542088f1e9af453a139ae8ad0691cbde98ab01695a8f499dbe4cf` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-darwin-386.tar.gz) | `2f8777fcb938bbc310fb481a56dca62e14c27f6a85e61ab4650aeb28e5f9f05a` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-darwin-amd64.tar.gz) | `30a5ed844d2b6b6b75e19e1f68f5c18ff8ec4f268c149737a6e715bc0a6e297f` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-386.tar.gz) | `e4c60f463366fdf62e9c10c45c6f6b75d63aa3bd6665a0b56c9c2e2104ea9da6` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-amd64.tar.gz) | `1d62f9ac92f23897d4545ebaf15d78b13b04157d83a839e347f4bd02cc484af4` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-arm.tar.gz) | `8f52c6da9f95c7e127a6945a164e66d5266ebf2f4d02261653c5dd6936ec6b00` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-arm64.tar.gz) | `e6b677601f0d78cf9463a86d6cc33b4861a88d2fbf3728b9c449a216fb84578e` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-ppc64le.tar.gz) | `2cd49eb1d5f6d97f1342ee7f4803e9713a9cf4bfa419c86f4e1f82182d27f535` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-linux-s390x.tar.gz) | `e8134efaea3146336b24e76ae2f6f5cdc63f6aeecc65b52cd0aae92edb8432ac` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-windows-386.tar.gz) | `226b8c687251c877d5876f95f086b131ff3f831fca01dd07caf168269ee2c51d` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-client-windows-amd64.tar.gz) | `c590a3a7f2e08f8046752b5bbc0d0b11f174f750fdd7912a68dd5335fcedc03d` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-server-linux-amd64.tar.gz) | `13c518091348c1b4355bf6b1a72514e71f68ad68a51df7d0706666c488e51158` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-server-linux-arm.tar.gz) | `d4b4fa98ece74d2cc240cf43b59629fe0115d3750d5938ae5ece972251a96018` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-server-linux-arm64.tar.gz) | `6b9e9de414619fb28dbbee05537697c2fdce130abe65372b477d3858571bfabd` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-server-linux-ppc64le.tar.gz) | `537f27284ad47d37d9ab8c4f4113b90f55948f88cd5dbab203349a34a9ddeccb` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-server-linux-s390x.tar.gz) | `71299a59bd4b7b38242631b3f441885ca9dcd99934427c8399b4f4598cc47fbb` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-linux-amd64.tar.gz) | `792da4aa3c06dee14b10f219591af8e967e466c5d5646d8973abfb1071cb5202` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-linux-arm.tar.gz) | `40a276dd0efdd6e87206d9b2a994ba49c336a455bad7076ddb22a4a6aa0a885f` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-linux-arm64.tar.gz) | `867504f25a864130c28f18aa5e99be0b2a8e0223ea86d46a4033e76cbe865533` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-linux-ppc64le.tar.gz) | `b1ff4471acf84a0d4f43854c778d6e18f8d0358da1323d1812f1d1a922b56662` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-linux-s390x.tar.gz) | `b527ab6ad8f7a3220e743780412c2d6c7fdaccc4eaa71ccfe90ad3e4e98d1d80` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.2/kubernetes-node-windows-amd64.tar.gz) | `1643e19c7dd5b139a6ab81768249d62392fcad5f6f2aec7edab279009368898b` + +## Changelog since v1.11.0-rc.1 + +### Other notable changes + +* Prevents a `kubectl delete` hang when deleting controller managed lists ([#65367](https://github.com/kubernetes/kubernetes/pull/65367), [@deads2k](https://github.com/deads2k)) +* fixes a memory leak in the kube-controller-manager observed when large numbers of pods with tolerations are created/deleted ([#65339](https://github.com/kubernetes/kubernetes/pull/65339), [@liggitt](https://github.com/liggitt)) +* The "kubectl cp" command now supports path shortcuts (../) in remote paths. ([#65189](https://github.com/kubernetes/kubernetes/pull/65189), [@juanvallejo](https://github.com/juanvallejo)) +* Split 'scheduling_latency_seconds' metric into finer steps (predicate, priority, premption) ([#65306](https://github.com/kubernetes/kubernetes/pull/65306), [@shyamjvs](https://github.com/shyamjvs)) +* fixed incorrect OpenAPI schema for CustomResourceDefinition objects ([#65256](https://github.com/kubernetes/kubernetes/pull/65256), [@liggitt](https://github.com/liggitt)) + + + +# v1.11.0-rc.1 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.11/examples) + +## Downloads for v1.11.0-rc.1 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes.tar.gz) | `f4d6126030d76f4340bf36ba02562388ea6984aa3d3f3ece39359c2a0f605b73` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-src.tar.gz) | `6383966a2bc5b252f1938fdfe4a7c35fafaa7642da22f86a017e2b718dedda92` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-darwin-386.tar.gz) | `1582a21d8e7c9ec8719a003cd79a7c51e984f2b7b703f0816af50efa4b838c6f` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-darwin-amd64.tar.gz) | `77ae2765fcac147095d2791f42b212a6c150764a311dfb6e7740a70d0c155574` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-386.tar.gz) | `87f6e22ef05bcd468424b02da2a58c0d695bd875e2130cb94adb842988aa532c` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-amd64.tar.gz) | `978147f7989b5669a74be5af7c6fe9b3039956c958d17dc53f65ae2364f8485c` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-arm.tar.gz) | `e7e13c6f500f86641f62fcaa34715fd8aa40913fe97ac507a73a726fb6d2f3f4` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-arm64.tar.gz) | `5e35f3c80f0811b252c725c938dc4803034b4925d6fa1c2f0042132fd19d6db2` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-ppc64le.tar.gz) | `0cec908e2f85763e9f066661c2f12122b13901004f552729ced66673f12669da` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-linux-s390x.tar.gz) | `ae6e0d7eb75647531b224d8a873528bb951858bfddc9595771def8a26dd2a709` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-windows-386.tar.gz) | `9eaba9edce7e06c15088612b90c8adc714509cab8ba612019c960dc3fe306b9d` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-client-windows-amd64.tar.gz) | `dae41cc0be99bec6b28c8bd96eccd6c41b2d51602bc6a374dff922c34708354f` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-server-linux-amd64.tar.gz) | `73510e5be3650bdeb219e93f78b042b4c9b616cbe672c68cab2e713c13f040ca` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-server-linux-arm.tar.gz) | `00475cb20dbabbc7f1a048f0907ef1b2cf34cfacab3ad82d2d86e2afae466eca` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-server-linux-arm64.tar.gz) | `00b1a2fa9e7c6b9929e09d7e0ec9aadc3e697d7527dcda9cd7d57e89daf618f5` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-server-linux-ppc64le.tar.gz) | `6c2d303a243ca4452c19b613bc71c92222c33c9322983f9a485231a7d2471681` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-server-linux-s390x.tar.gz) | `c93d9021bd00bd1adda521e6952c72e08beebe8d994ad92cc14c741555e429a9` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-linux-amd64.tar.gz) | `7d84cd7f60186d59e84e4b48bc5cd25ddd0fbcef4ebb2a2a3bd06831433c0135` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-linux-arm.tar.gz) | `4fa046b5c0b3d860e741b33f4da722a16d4b7de9674ab6a60da2d5749b3175ef` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-linux-arm64.tar.gz) | `db80b1916da3262b1e3aeb658b9a9c829a76e85f97e30c5fc1b07a3ef331003a` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-linux-ppc64le.tar.gz) | `c693a8b7827f9098e8f407182febc24041dd396fdd66c61f8b666252fbbb342a` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-linux-s390x.tar.gz) | `ee5becf3f2034157e4c50488278095c3685a01b7f715693a1053fa986d983dcf` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-rc.1/kubernetes-node-windows-amd64.tar.gz) | `65f4f7a96f89c8dcba6c21e79aeac677790c8338c3f8f0e9e27fb16154d7e06f` + +## Changelog since v1.11.0-beta.2 + +### Action Required + +* A cluster-autoscaler ClusterRole is added to cover only the functionality required by Cluster Autoscaler and avoid abusing system:cluster-admin role. ([#64503](https://github.com/kubernetes/kubernetes/pull/64503), [@kgolab](https://github.com/kgolab)) + * action required: Cloud providers other than GCE might want to update their deployments or sample yaml files to reuse the role created via add-on. + +### Other notable changes + +* The "kubectl cp" command now supports path shortcuts (../) in remote paths. ([#65189](https://github.com/kubernetes/kubernetes/pull/65189), [@juanvallejo](https://github.com/juanvallejo)) +* Update crictl on GCE to v1.11.0. ([#65254](https://github.com/kubernetes/kubernetes/pull/65254), [@Random-Liu](https://github.com/Random-Liu)) +* kubeadm: Use the release-1.11 branch by default ([#65229](https://github.com/kubernetes/kubernetes/pull/65229), [@luxas](https://github.com/luxas)) +* Updates Cluster Autoscaler version to 1.3.0. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.0 ([#65219](https://github.com/kubernetes/kubernetes/pull/65219), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +* The deprecated `--service-account-private-key-file` flag has been removed from the cloud-controller-manager. The flag is still present and supported in the kube-controller-manager. ([#65182](https://github.com/kubernetes/kubernetes/pull/65182), [@liggitt](https://github.com/liggitt)) +* Update Cluster Autoscaler to v1.3.0-beta.2. Release notes for this version: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.0-beta.2 ([#65148](https://github.com/kubernetes/kubernetes/pull/65148), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +* Fixed API server panic during concurrent GET or LIST requests with non-empty `resourceVersion`. ([#65092](https://github.com/kubernetes/kubernetes/pull/65092), [@sttts](https://github.com/sttts)) +* Kubernetes json deserializer is now case-sensitive to restore compatibility with pre-1.8 servers. ([#65034](https://github.com/kubernetes/kubernetes/pull/65034), [@caesarxuchao](https://github.com/caesarxuchao)) + * If your config files contains fields with wrong case, the config files will be now invalid. +* GCE: Fixes operation polling to adhere to the specified interval. Furthermore, operation errors are now returned instead of ignored. ([#64630](https://github.com/kubernetes/kubernetes/pull/64630), [@nicksardo](https://github.com/nicksardo)) +* Updated hcsshim dependency to v0.6.11 ([#64272](https://github.com/kubernetes/kubernetes/pull/64272), [@jessfraz](https://github.com/jessfraz)) +* Include kms-plugin-container.manifest to master manifests tarball. ([#65035](https://github.com/kubernetes/kubernetes/pull/65035), [@immutableT](https://github.com/immutableT)) +* kubeadm - Ensure the peer port is secured by explicitly setting the peer URLs for the default etcd instance. ([#64988](https://github.com/kubernetes/kubernetes/pull/64988), [@detiber](https://github.com/detiber)) + * kubeadm - Ensure that the etcd certificates are generated using a proper CN + * kubeadm - Update generated etcd peer certificate to include localhost addresses for the default configuration. + * kubeadm - Increase the manifest update timeout to make upgrades a bit more reliable. +* Kubernetes depends on v0.30.1 of cAdvisor ([#64987](https://github.com/kubernetes/kubernetes/pull/64987), [@dashpole](https://github.com/dashpole)) +* Update Cluster Autoscaler version to 1.3.0-beta.1. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.0-beta.1 ([#64977](https://github.com/kubernetes/kubernetes/pull/64977), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +* Webhooks for the mutating admission controller now support "remove" operation. ([#64255](https://github.com/kubernetes/kubernetes/pull/64255), [@rojkov](https://github.com/rojkov)) +* deprecated and inactive option '--enable-custom-metrics' is removed in 1.11 ([#60699](https://github.com/kubernetes/kubernetes/pull/60699), [@CaoShuFeng](https://github.com/CaoShuFeng)) +* kubernetes now packages cri-tools (crictl) in addition to all the other kubeadm tools in a deb and rpm. ([#64836](https://github.com/kubernetes/kubernetes/pull/64836), [@chuckha](https://github.com/chuckha)) +* Fix setup of configmap/secret/projected/downwardapi volumes ([#64855](https://github.com/kubernetes/kubernetes/pull/64855), [@gnufied](https://github.com/gnufied)) +* Setup dns servers and search domains for Windows Pods in dockershim. Docker EE version >= 17.10.0 is required for propagating DNS to containers. ([#63905](https://github.com/kubernetes/kubernetes/pull/63905), [@feiskyer](https://github.com/feiskyer)) + + + +# v1.11.0-beta.2 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.11/examples) + +## Downloads for v1.11.0-beta.2 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes.tar.gz) | `0addbff3fc61047460da0fca7413f4cc679fac7482c3f09aa4f4a60d8ec8dd5c` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-src.tar.gz) | `943629abc5b046cc5db280417e5cf3a8342c5f67c8deb3d7283b02de67b3a3c3` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-darwin-386.tar.gz) | `9b714bb99e9d8c51c718d9ec719412b2006c921e6a5566acf387797b57014386` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-darwin-amd64.tar.gz) | `11fc9f94c82b2adc860964be8e84ed1e17ae711329cac3c7aff58067caeeffe2` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-386.tar.gz) | `016abd161dc394ab6e1e8f57066ff413b523c71ac2af458bfc8dfa2107530910` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-amd64.tar.gz) | `f98c223c24680aae583ff63fa8e1ef49421ddd660bd748fea493841c24ad6417` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-arm.tar.gz) | `78cf5dca303314023d6f82c7570e92b814304029fb7d3941d7c04855679e120d` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-arm64.tar.gz) | `c35e03687d491d9ca955121912c56d00741c86381370ed5890b0ee8b629a3e01` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-ppc64le.tar.gz) | `4e848a58f822f971dbda607d26128d1b718fc07665d2f65b87936eec40b037b2` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-linux-s390x.tar.gz) | `ead83a70e4782efdaea3645ca2a59e51209041ce41f9d805d5c1d10f029b1cb0` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-windows-386.tar.gz) | `c357b28c83e769517d7b19e357260d62485e861005d98f84c752d109fa48bd20` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-client-windows-amd64.tar.gz) | `2ae78921a35a8a582b226521f904f0840c17e3e097364d6a3fcd10d196bec0dc` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-server-linux-amd64.tar.gz) | `26bd6e05a4bf942534f0578b1cdbd11b8c868aa3331e2681734ecc93d75f6b85` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-server-linux-arm.tar.gz) | `df706ccad0a235613e644eda363c49bfb858860a2ae5219b17b996f36669a7fc` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-server-linux-arm64.tar.gz) | `73f3e7a82d7c78a9f03ce0c84ae4904942f0bf88b3bf045fc9b1707b686cb04e` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-server-linux-ppc64le.tar.gz) | `ebeb67e45e630469d55b442d2c6092065f1c1403d1965c4340d0b6c1fa7f6676` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-server-linux-s390x.tar.gz) | `c82e6a41b8e451600fb5bfdad3addf3c35b5edb518a7bf9ebd03af0574d57975` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-linux-amd64.tar.gz) | `e6dbd56c10fee83f400e76ae02325eda0a583347f6b965eeb610c90d664d7990` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-linux-arm.tar.gz) | `df9d18c3af4d6ee237a238b3029823f6e90b2ae3f0d25b741d4b3fedb7ea14f8` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-linux-arm64.tar.gz) | `d84e98702651615336256d3453516df9ad39f39400f6091d9e2b4c95b4111ede` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-linux-ppc64le.tar.gz) | `a62037f00ab29302f72aa23116c304b676cc41a6f47f79a2faf4e4ea18059178` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-linux-s390x.tar.gz) | `bef66f2080f7ebf442234d841ec9c994089fa02b400d98e1b01021f1f66c4cd0` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.2/kubernetes-node-windows-amd64.tar.gz) | `2b029715b98c3355a172ed5a6e08e73ad4ef264c74a26ed5a3da67f90764b7dc` + +## Changelog since v1.11.0-beta.1 + +### Action Required + +* [action required] `kubeadm join` is now blocking on the kubelet performing the TLS Bootstrap properly. ([#64792](https://github.com/kubernetes/kubernetes/pull/64792), [@luxas](https://github.com/luxas)) + * Earlier, `kubeadm join` only did the discovery part and exited successfully without checking that the + * kubelet actually started properly and performed the TLS bootstrap correctly. Now, as kubeadm runs + * some post-join steps (e.g. annotating the Node API object with the CRISocket as in this PR, as a + * stop-gap until this is discoverable automatically), `kubeadm join` is now waiting for the kubelet to + * perform the TLS Bootstrap, and then uses that credential to perform further actions. This also + * improves the UX, as `kubeadm` will exit with a non-zero code if the kubelet isn't in a functional + * state, instead of pretending like everything's fine. +* [action required] The structure of the kubelet dropin in the kubeadm deb package has changed significantly. ([#64780](https://github.com/kubernetes/kubernetes/pull/64780), [@luxas](https://github.com/luxas)) + * Instead of hard-coding the parameters for the kubelet in the dropin, a structured configuration file + * for the kubelet is used, and is expected to be present in `/var/lib/kubelet/config.yaml`. + * For runtime-detected, instance-specific configuration values, a environment file with + * dynamically-generated flags at `kubeadm init` or `kubeadm join` run time is used. + * Finally, if the user wants to override something specific for the kubelet that can't be done via + * the kubeadm Configuration file (which is preferred), they might add flags to the + * `KUBELET_EXTRA_ARGS` environment variable in either `/etc/default/kubelet` + * or `/etc/sysconfig/kubelet`, depending on the system you're running on. +* [action required] The `--node-name` flag for kubeadm now dictates the Node API object name the ([#64706](https://github.com/kubernetes/kubernetes/pull/64706), [@liztio](https://github.com/liztio)) + * kubelet uses for registration, in all cases but where you might use an in-tree cloud provider. + * If you're not using an in-tree cloud provider, `--node-name` will set the Node API object name. + * If you're using an in-tree cloud provider, you MUST make `--node-name` match the name the + * in-tree cloud provider decides to use. +* [action required] kubeadm: The Token-related fields in the `MasterConfiguration` object have now been refactored. Instead of the top-level `.Token`, `.TokenTTL`, `.TokenUsages`, `.TokenGroups` fields, there is now a `BootstrapTokens` slice of `BootstrapToken` objects that support the same features under the `.Token`, `.TTL`, `.Usages`, `.Groups` fields. ([#64408](https://github.com/kubernetes/kubernetes/pull/64408), [@luxas](https://github.com/luxas)) + +### Other notable changes + +* Add Vertical Pod Autoscaler to autoscaling/v2beta1 ([#63797](https://github.com/kubernetes/kubernetes/pull/63797), [@kgrygiel](https://github.com/kgrygiel)) +* kubeadm: only run kube-proxy on architecture consistent nodes ([#64696](https://github.com/kubernetes/kubernetes/pull/64696), [@dixudx](https://github.com/dixudx)) +* kubeadm: Add a new `kubeadm upgrade node config` command ([#64624](https://github.com/kubernetes/kubernetes/pull/64624), [@luxas](https://github.com/luxas)) +* Orphan delete is now supported for custom resources ([#63386](https://github.com/kubernetes/kubernetes/pull/63386), [@roycaihw](https://github.com/roycaihw)) +* Update version of Istio addon from 0.6.0 to 0.8.0. ([#64537](https://github.com/kubernetes/kubernetes/pull/64537), [@ostromart](https://github.com/ostromart)) + * See https://istio.io/about/notes/0.8.html for full Isto release notes. +* Provides API support for external CSI storage drivers to support block volumes. ([#64723](https://github.com/kubernetes/kubernetes/pull/64723), [@vladimirvivien](https://github.com/vladimirvivien)) +* kubectl will list all allowed print formats when an invalid format is passed. ([#64371](https://github.com/kubernetes/kubernetes/pull/64371), [@CaoShuFeng](https://github.com/CaoShuFeng)) +* Use IONice to reduce IO priority of du and find ([#64800](https://github.com/kubernetes/kubernetes/pull/64800), [@dashpole](https://github.com/dashpole)) + * cAdvisor ContainerReference no longer contains Labels. Use ContainerSpec instead. + * Fix a bug where cadvisor failed to discover a sub-cgroup that was created soon after the parent cgroup. +* Kubelet will set extended resource capacity to zero after it restarts. If the extended resource is exported by a device plugin, its capacity will change to a valid value after the device plugin re-connects with the Kubelet. If the extended resource is exported by an external component through direct node status capacity patching, the component should repatch the field after kubelet becomes ready again. During the time gap, pods previously assigned with such resources may fail kubelet admission but their controller should create new pods in response to such failures. ([#64784](https://github.com/kubernetes/kubernetes/pull/64784), [@jiayingz](https://github.com/jiayingz)) +* Introduce ContainersReady condition in Pod Status ([#64646](https://github.com/kubernetes/kubernetes/pull/64646), [@freehan](https://github.com/freehan)) +* The Sysctls experimental feature has been promoted to beta (enabled by default via the `Sysctls` feature flag). PodSecurityPolicy and Pod objects now have fields for specifying and controlling sysctls. Alpha sysctl annotations will be ignored by 1.11+ kubelets. All alpha sysctl annotations in existing deployments must be converted to API fields to be effective. ([#63717](https://github.com/kubernetes/kubernetes/pull/63717), [@ingvagabund](https://github.com/ingvagabund)) +* kubeadm now configures the etcd liveness probe correctly when etcd is listening on all interfaces ([#64670](https://github.com/kubernetes/kubernetes/pull/64670), [@stealthybox](https://github.com/stealthybox)) +* Fix regression in `v1.JobSpec.backoffLimit` that caused failed Jobs to be restarted indefinitely. ([#63650](https://github.com/kubernetes/kubernetes/pull/63650), [@soltysh](https://github.com/soltysh)) +* GCE: Update cloud provider to use TPU v1 API ([#64727](https://github.com/kubernetes/kubernetes/pull/64727), [@yguo0905](https://github.com/yguo0905)) +* Kubelet: Add security context for Windows containers ([#64009](https://github.com/kubernetes/kubernetes/pull/64009), [@feiskyer](https://github.com/feiskyer)) +* Volume topology aware dynamic provisioning ([#63193](https://github.com/kubernetes/kubernetes/pull/63193), [@lichuqiang](https://github.com/lichuqiang)) +* CoreDNS deployment configuration now uses k8s.gcr.io imageRepository ([#64775](https://github.com/kubernetes/kubernetes/pull/64775), [@rajansandeep](https://github.com/rajansandeep)) +* Updated Container Storage Interface specification version to v0.3.0 ([#64719](https://github.com/kubernetes/kubernetes/pull/64719), [@davidz627](https://github.com/davidz627)) +* Kubeadm: Make CoreDNS run in read-only mode and drop all unneeded privileges ([#64473](https://github.com/kubernetes/kubernetes/pull/64473), [@nberlee](https://github.com/nberlee)) +* Add a volume projection that is able to project service account tokens. ([#62005](https://github.com/kubernetes/kubernetes/pull/62005), [@mikedanese](https://github.com/mikedanese)) +* Fix kubectl auth can-i exit code. It will return 1 if the user is not allowed and 0 if it's allowed. ([#59579](https://github.com/kubernetes/kubernetes/pull/59579), [@fbac](https://github.com/fbac)) +* apply global flag "context" for kubectl config view --minify ([#64608](https://github.com/kubernetes/kubernetes/pull/64608), [@dixudx](https://github.com/dixudx)) +* Fix kube-controller-manager panic while provisioning Azure security group rules ([#64739](https://github.com/kubernetes/kubernetes/pull/64739), [@feiskyer](https://github.com/feiskyer)) +* API change for volume topology aware dynamic provisioning ([#63233](https://github.com/kubernetes/kubernetes/pull/63233), [@lichuqiang](https://github.com/lichuqiang)) +* Add azuredisk PV size grow feature ([#64386](https://github.com/kubernetes/kubernetes/pull/64386), [@andyzhangx](https://github.com/andyzhangx)) +* Modify e2e tests to use priorityClass beta version & switch priorityClass feature to beta ([#63724](https://github.com/kubernetes/kubernetes/pull/63724), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +* Adding CSI driver registration code. ([#64560](https://github.com/kubernetes/kubernetes/pull/64560), [@sbezverk](https://github.com/sbezverk)) +* fixes a potential deadlock in the garbage collection controller ([#64235](https://github.com/kubernetes/kubernetes/pull/64235), [@liggitt](https://github.com/liggitt)) +* Fixes issue for readOnly subpath mounts for SELinux systems and when the volume mountPath already existed in the container image. ([#64351](https://github.com/kubernetes/kubernetes/pull/64351), [@msau42](https://github.com/msau42)) +* Add log and fs stats for Windows containers ([#62266](https://github.com/kubernetes/kubernetes/pull/62266), [@feiskyer](https://github.com/feiskyer)) +* client-go: credential exec plugins have been promoted to beta ([#64482](https://github.com/kubernetes/kubernetes/pull/64482), [@ericchiang](https://github.com/ericchiang)) +* Revert [#64364](https://github.com/kubernetes/kubernetes/pull/64364) to resurrect rescheduler. More info https://github.com/kubernetes/kubernetes/issues/64725 :) ([#64592](https://github.com/kubernetes/kubernetes/pull/64592), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +* Add RequestedToCapacityRatioPriority priority function. Function is parametrized with set of points mapping node utilization (0-100) to score (0-10). ([#63929](https://github.com/kubernetes/kubernetes/pull/63929), [@losipiuk](https://github.com/losipiuk)) + * Function is linear between points. Resource utilization is defined as one minus ratio of total amount of resource requested by pods on node and node's capacity (scaled to 100). + * Final utilization used for computation is arithmetic mean of cpu utilization and memory utilization. + * Function is disabled by default and can be enabled via scheduler policy config file. + * If no parametrization is specified in config file it defaults to one which gives score 10 to utilization 0 and score 0 to utilization 100. +* `kubeadm init` detects if systemd-resolved is running and configures the kubelet to use a working resolv.conf. ([#64665](https://github.com/kubernetes/kubernetes/pull/64665), [@stealthybox](https://github.com/stealthybox)) +* fix data loss issue if using existing azure disk with partitions in disk mount ([#63270](https://github.com/kubernetes/kubernetes/pull/63270), [@andyzhangx](https://github.com/andyzhangx)) +* Meta data of CustomResources is now pruned and schema checked during deserialization of requests and when read from etcd. In the former case, invalid meta data is rejected, in the later it is dropped from the CustomResource objects. ([#64267](https://github.com/kubernetes/kubernetes/pull/64267), [@sttts](https://github.com/sttts)) +* Add Alpha support for dynamic volume limits based on node type ([#64154](https://github.com/kubernetes/kubernetes/pull/64154), [@gnufied](https://github.com/gnufied)) +* Fixed CSI gRPC connection leak during volume operations. ([#64519](https://github.com/kubernetes/kubernetes/pull/64519), [@vladimirvivien](https://github.com/vladimirvivien)) +* in-tree support for openstack credentials is now deprecated. please use the "client-keystone-auth" from the cloud-provider-openstack repository. details on how to use this new capability is documented here - https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-client-keystone-auth.md ([#64346](https://github.com/kubernetes/kubernetes/pull/64346), [@dims](https://github.com/dims)) +* `ScheduleDaemonSetPods` is an alpha feature (since v1.11) that causes DaemonSet Pods ([#63223](https://github.com/kubernetes/kubernetes/pull/63223), [@k82cn](https://github.com/k82cn)) + * to be scheduler by default scheduler, instead of Daemonset controller. When it is enabled, + * the `NodeAffinity` term (instead of `.spec.nodeName`) is added to the DaemonSet Pods; + * this enables the default scheduler to bind the Pod to the target host. If node affinity + * of DaemonSet Pod already exists, it will be replaced. + * DaemonSet controller will only perform these operations when creating DaemonSet Pods; + * and those operations will only modify the Pods of DaemonSet, no changes are made to the + * `.spec.template` of DaemonSet. +* fix formatAndMount func issue on Windows ([#63248](https://github.com/kubernetes/kubernetes/pull/63248), [@andyzhangx](https://github.com/andyzhangx)) +* AWS EBS, Azure Disk, GCE PD and Ceph RBD volume plugins support dynamic provisioning of raw block volumes. ([#64447](https://github.com/kubernetes/kubernetes/pull/64447), [@jsafrane](https://github.com/jsafrane)) +* kubeadm upgrade apply can now ignore version errors with --force ([#64570](https://github.com/kubernetes/kubernetes/pull/64570), [@liztio](https://github.com/liztio)) +* Adds feature gate for plugin watcher ([#64605](https://github.com/kubernetes/kubernetes/pull/64605), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) +* Kubelet now proxies container streaming between apiserver and container runtime. The connection between kubelet and apiserver is authenticated. Container runtime should change streaming server to serve on localhost, to make the connection between kubelet and container runtime local. ([#64006](https://github.com/kubernetes/kubernetes/pull/64006), [@Random-Liu](https://github.com/Random-Liu)) + * In this way, the whole container streaming connection is secure. To switch back to the old behavior, set `--redirect-container-streaming=true` flag. +* TokenRequests now are required to have an expiration duration between 10 minutes and 2^32 seconds. ([#63999](https://github.com/kubernetes/kubernetes/pull/63999), [@mikedanese](https://github.com/mikedanese)) +* Expose `/debug/flags/v` to allow dynamically set glog logging level, if want to change glog level to 3, you only have to send a PUT request with like `curl -X PUT http://127.0.0.1:8080/debug/flags/v -d "3"`. ([#63777](https://github.com/kubernetes/kubernetes/pull/63777), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) +* New conformance test added for Watch. ([#61424](https://github.com/kubernetes/kubernetes/pull/61424), [@jennybuckley](https://github.com/jennybuckley)) +* The GitRepo volume type is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. ([#63445](https://github.com/kubernetes/kubernetes/pull/63445), [@ericchiang](https://github.com/ericchiang)) +* kubeadm now preserves previous manifests after upgrades ([#64337](https://github.com/kubernetes/kubernetes/pull/64337), [@liztio](https://github.com/liztio)) +* Implement kubelet side online file system resizing ([#62460](https://github.com/kubernetes/kubernetes/pull/62460), [@mlmhl](https://github.com/mlmhl)) + + + # v1.11.0-beta.1 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.11/examples) diff --git a/vendor/k8s.io/kubernetes/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/Godeps/Godeps.json index 91a1a90d6944..1e3f61864c79 100644 --- a/vendor/k8s.io/kubernetes/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/Godeps/Godeps.json @@ -114,8 +114,8 @@ }, { "ImportPath": "github.com/Microsoft/hcsshim", - "Comment": "V0.6.3", - "Rev": "6ea7fe54f719d95721e7d9b26ac0add224c9b923" + "Comment": "v0.6.11", + "Rev": "800683ae704ac360b2f3f47fa88f3a6c8c9091b5" }, { "ImportPath": "github.com/NYTimes/gziphandler", @@ -1508,218 +1508,218 @@ }, { "ImportPath": "github.com/google/cadvisor/accelerators", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/api", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/cache/memory", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/client/v2", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/collector", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/common", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/containerd", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/crio", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/docker", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/libcontainer", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/raw", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/rkt", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/container/systemd", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/devicemapper", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/events", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/fs", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/healthz", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/http", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/http/mux", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/info/v1", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/info/v2", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/machine", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/manager", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/raw", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/metrics", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/pages", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/pages/static", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/storage", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/summary", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/cloudinfo", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/docker", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/oomparser", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/sysfs", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/utils/sysinfo", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/validate", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/version", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/cadvisor/zfs", - "Comment": "v0.30.0", - "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" + "Comment": "v0.30.2", + "Rev": "de723a090f4dd5390dc7c2acee37ba9c62f0cc09" }, { "ImportPath": "github.com/google/certificate-transparency-go", @@ -2029,8 +2029,8 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Comment": "1.1.3-16-g2ddf6d7", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Comment": "1.1.3-22-gf2b4162", + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/jteeuwen/go-bindata", @@ -3357,39 +3357,39 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/aggregator", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/generators", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto/testing", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto/validation", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/utils/clock", diff --git a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json index 7624869a49f9..8b6137ec1548 100644 --- a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json +++ b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json @@ -85607,16 +85607,7 @@ } }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - "required": [ - "Raw" - ], - "properties": { - "Raw": { - "type": "string", - "format": "byte" - } - } + "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", @@ -85768,57 +85759,16 @@ } }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - "required": [ - "Schema", - "JSONSchemas" - ], - "properties": { - "JSONSchemas": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } + "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - "required": [ - "Allows", - "Schema" - ], - "properties": { - "Allows": { - "type": "boolean" - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } + "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - "required": [ - "Schema", - "Property" - ], - "properties": { - "Property": { - "type": "array", - "items": { - "type": "string" - } - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } + "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." }, "io.k8s.apimachinery.pkg.api.resource.Quantity": { + "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and Int64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNOTE: We reserve the right to amend this canonical format, perhaps to\n allow 1.5 to be canonical.\n or after March 2015.\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", "type": "string" }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { @@ -86342,6 +86292,7 @@ } }, "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { + "description": "MicroTime is version of Time with microsecond level precision.", "type": "string", "format": "date-time" }, @@ -86591,6 +86542,7 @@ } }, "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { + "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, @@ -86796,6 +86748,7 @@ } }, "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { + "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", "type": "string", "format": "int-or-string" }, diff --git a/vendor/k8s.io/kubernetes/build/debs/BUILD b/vendor/k8s.io/kubernetes/build/debs/BUILD index 31700d04524a..17ee17563cd1 100644 --- a/vendor/k8s.io/kubernetes/build/debs/BUILD +++ b/vendor/k8s.io/kubernetes/build/debs/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load("@io_kubernetes_build//defs:deb.bzl", "k8s_deb", "deb_data") load("@io_kubernetes_build//defs:build.bzl", "release_filegroup") load("@io_kubernetes_build//defs:pkg.bzl", "pkg_tar") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") # We do not include kube-scheduler, kube-controller-manager, # kube-apiserver, and kube-proxy in this list even though we @@ -13,6 +14,7 @@ release_filegroup( name = "debs", srcs = [ ":cloud-controller-manager.deb", + ":cri-tools.deb", ":kubeadm.deb", ":kubectl.deb", ":kubelet.deb", @@ -86,6 +88,12 @@ pkg_tar( deps = ["@kubernetes_cni//file"], ) +pkg_tar( + name = "cri-tools-data", + package_dir = "/usr/bin", + deps = ["@cri_tools//file"], +) + k8s_deb( name = "cloud-controller-manager", description = "Kubernetes Cloud Controller Manager", @@ -167,6 +175,12 @@ The Container Networking Interface tools for provisioning container networks. version_file = "//build:cni_package_version", ) +k8s_deb( + name = "cri-tools", + description = """Container Runtime Interface tools (crictl)""", + version = CRI_TOOLS_VERSION, +) + filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/vendor/k8s.io/kubernetes/build/lib/release.sh b/vendor/k8s.io/kubernetes/build/lib/release.sh index aaec30f52e06..27008de5f230 100644 --- a/vendor/k8s.io/kubernetes/build/lib/release.sh +++ b/vendor/k8s.io/kubernetes/build/lib/release.sh @@ -382,6 +382,7 @@ function kube::release::package_kube_manifests_tarball() { cp "${src_dir}/cluster-autoscaler.manifest" "${dst_dir}/" cp "${src_dir}/etcd.manifest" "${dst_dir}" cp "${src_dir}/kube-scheduler.manifest" "${dst_dir}" + cp "${src_dir}/kms-plugin-container.manifest" "${dst_dir}" cp "${src_dir}/kube-apiserver.manifest" "${dst_dir}" cp "${src_dir}/abac-authz-policy.jsonl" "${dst_dir}" cp "${src_dir}/kube-controller-manager.manifest" "${dst_dir}" diff --git a/vendor/k8s.io/kubernetes/build/root/WORKSPACE b/vendor/k8s.io/kubernetes/build/root/WORKSPACE index bef78c3677bb..8d055577812a 100644 --- a/vendor/k8s.io/kubernetes/build/root/WORKSPACE +++ b/vendor/k8s.io/kubernetes/build/root/WORKSPACE @@ -1,4 +1,5 @@ load("//build:workspace_mirror.bzl", "mirror") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") http_archive( name = "io_bazel_rules_go", @@ -58,6 +59,12 @@ http_file( urls = mirror("https://storage.googleapis.com/kubernetes-release/network-plugins/cni-plugins-amd64-v0.6.0.tgz"), ) +http_file( + name = "cri_tools", + sha256 = "bdc838174778223a1af4bdeaaed4bd266120c0e152588f78750fb86221677fb4", + urls = mirror("https://github.com/kubernetes-incubator/cri-tools/releases/download/v%s/crictl-v%s-linux-amd64.tar.gz" % (CRI_TOOLS_VERSION, CRI_TOOLS_VERSION)), +) + docker_pull( name = "debian-iptables-amd64", digest = "sha256:fb18678f8203ca1bd2fad2671e3ebd80cb408a1baae423d4ad39c05f4caac4e1", diff --git a/vendor/k8s.io/kubernetes/build/rpms/BUILD b/vendor/k8s.io/kubernetes/build/rpms/BUILD index 041607c94bde..b9a6a9e26c08 100644 --- a/vendor/k8s.io/kubernetes/build/rpms/BUILD +++ b/vendor/k8s.io/kubernetes/build/rpms/BUILD @@ -1,10 +1,12 @@ package(default_visibility = ["//visibility:public"]) load("@bazel_tools//tools/build_defs/pkg:rpm.bzl", "pkg_rpm") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") filegroup( name = "rpms", srcs = [ + ":cri-tools", ":kubeadm", ":kubectl", ":kubelet", @@ -65,6 +67,18 @@ pkg_rpm( version_file = "//build:cni_package_version", ) +pkg_rpm( + name = "cri-tools", + architecture = "x86_64", + data = [ + "@cri_tools//file", + ], + spec_file = "cri-tools.spec", + tags = ["manual"], + # dashes are not allowed in rpm versions + version = CRI_TOOLS_VERSION.replace("-", "_"), +) + filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/vendor/k8s.io/kubernetes/build/rpms/cri-tools.spec b/vendor/k8s.io/kubernetes/build/rpms/cri-tools.spec new file mode 100644 index 000000000000..c82b8232cffb --- /dev/null +++ b/vendor/k8s.io/kubernetes/build/rpms/cri-tools.spec @@ -0,0 +1,21 @@ +Name: cri-tools +Version: OVERRIDE_THIS +Release: 00 +License: ASL 2.0 +Summary: Container Runtime Interface tools + +URL: https://kubernetes.io + +%description +Binaries to interface with the container runtime. + +%prep +# TODO(chuckha): update this to use %{version} when the dash is removed from the release +tar -xzf {crictl-v1.0.0-beta.1-linux-amd64.tar.gz} + +%install +install -m 755 -d %{buildroot}%{_bindir} +install -p -m 755 -t %{buildroot}%{_bindir} crictl + +%files +%{_bindir}/crictl diff --git a/vendor/k8s.io/kubernetes/build/workspace.bzl b/vendor/k8s.io/kubernetes/build/workspace.bzl new file mode 100644 index 000000000000..f2dd5ddee1ea --- /dev/null +++ b/vendor/k8s.io/kubernetes/build/workspace.bzl @@ -0,0 +1,15 @@ +# Copyright 2018 The Kubernetes Authors. +# +# 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. + +CRI_TOOLS_VERSION = "1.0.0-beta.1" diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml index 2d3e6bd2849b..a0a98b8cc71e 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml @@ -1,5 +1,4 @@ apiVersion: apiextensions.k8s.io/v1beta1 -description: Calico Global BGP Configuration kind: CustomResourceDefinition metadata: name: globalbgpconfigs.crd.projectcalico.org diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml index 7e5c7b196993..619bdb91ece6 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml @@ -1,5 +1,4 @@ apiVersion: apiextensions.k8s.io/v1beta1 -description: Calico Global Felix Configuration kind: CustomResourceDefinition metadata: name: globalfelixconfigs.crd.projectcalico.org diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml index 398c05949b5f..1a9ede8e60bd 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml @@ -1,5 +1,4 @@ apiVersion: apiextensions.k8s.io/v1beta1 -description: Calico Global Network Policies kind: CustomResourceDefinition metadata: name: globalnetworkpolicies.crd.projectcalico.org diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml index c09f73c188a7..c0ffcea34f56 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml @@ -1,5 +1,4 @@ apiVersion: apiextensions.k8s.io/v1beta1 -description: Calico IP Pools kind: CustomResourceDefinition metadata: name: ippools.crd.projectcalico.org diff --git a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml index add0b2264bf1..800c5b7a1bd4 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml @@ -59,7 +59,7 @@ spec: command: - /heapster - --source=kubernetes.summary_api:'' - - --sink=stackdriver:?cluster_name={{ cluster_name }}&use_old_resources={{ use_old_resources }}&use_new_resources={{ use_new_resources }}&min_interval_sec=100&batch_export_timeout_sec=110 + - --sink=stackdriver:?cluster_name={{ cluster_name }}&use_old_resources={{ use_old_resources }}&use_new_resources={{ use_new_resources }}&min_interval_sec=100&batch_export_timeout_sec=110&cluster_location={{ cluster_location }} # BEGIN_PROMETHEUS_TO_SD - name: prom-to-sd image: k8s.gcr.io/prometheus-to-sd:v0.2.4 diff --git a/vendor/k8s.io/kubernetes/cluster/addons/istio/auth/istio-auth.yaml b/vendor/k8s.io/kubernetes/cluster/addons/istio/auth/istio-auth.yaml index 5b30bb3b9d56..6ecd26d599ca 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/istio/auth/istio-auth.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/istio/auth/istio-auth.yaml @@ -2595,7 +2595,7 @@ spec: name: istio-statsd-prom-bridge containers: - name: statsd-prom-bridge - image: "gcr.io/istio-release/prom/statsd-exporter:latest" + image: "gcr.io/istio-release/prom/statsd-exporter:v0.6.0" imagePullPolicy: IfNotPresent ports: - containerPort: 9102 @@ -3477,7 +3477,7 @@ spec: containers: - name: prometheus - image: "gcr.io/istio-release/prom/prometheus:latest" + image: "gcr.io/istio-release/prom/prometheus:v2.3.1" imagePullPolicy: IfNotPresent args: - '--storage.tsdb.retention=6h' diff --git a/vendor/k8s.io/kubernetes/cluster/addons/istio/noauth/istio.yaml b/vendor/k8s.io/kubernetes/cluster/addons/istio/noauth/istio.yaml index 363ecb9d8001..cd44cbef4c12 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/istio/noauth/istio.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/istio/noauth/istio.yaml @@ -2582,7 +2582,7 @@ spec: name: istio-statsd-prom-bridge containers: - name: statsd-prom-bridge - image: "gcr.io/istio-release/prom/statsd-exporter:latest" + image: "gcr.io/istio-release/prom/statsd-exporter:v0.6.0" imagePullPolicy: IfNotPresent ports: - containerPort: 9102 @@ -3464,7 +3464,7 @@ spec: containers: - name: prometheus - image: "gcr.io/istio-release/prom/prometheus:latest" + image: "gcr.io/istio-release/prom/prometheus:v2.3.1" imagePullPolicy: IfNotPresent args: - '--storage.tsdb.retention=6h' diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml new file mode 100644 index 000000000000..822f3c7b4c12 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml @@ -0,0 +1,68 @@ +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: cluster-autoscaler + labels: + addonmanager.kubernetes.io/mode: Reconcile +rules: + # leader election + - apiGroups: [""] + resources: ["endpoints"] + verbs: ["create"] + - apiGroups: [""] + resources: ["endpoints"] + resourceNames: ["cluster-autoscaler"] + verbs: ["get", "update", "patch", "delete"] + # accessing & modifying cluster state (nodes & pods) + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["pods/eviction"] + verbs: ["create"] + # read-only access to cluster state + - apiGroups: [""] + resources: ["services", "replicationcontrollers", "persistentvolumes", "persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: ["apps", "extensions"] + resources: ["daemonsets", "replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["apps"] + resources: ["statefulsets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["policy"] + resources: ["poddisruptionbudgets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + # misc access + - apiGroups: [""] + resources: ["events"] + verbs: ["create", "update", "patch"] + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["create"] + - apiGroups: [""] + resources: ["configmaps"] + resourceNames: ["cluster-autoscaler-status"] + verbs: ["get", "update", "patch", "delete"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: cluster-autoscaler + labels: + addonmanager.kubernetes.io/mode: Reconcile +subjects: + - kind: User + name: cluster-autoscaler + namespace: kube-system +roleRef: + kind: ClusterRole + name: cluster-autoscaler + apiGroup: rbac.authorization.k8s.io + diff --git a/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh b/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh index 98c712d4f0fa..506806a986ec 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh @@ -191,6 +191,12 @@ TEST_CLUSTER_RESYNC_PERIOD="${TEST_CLUSTER_RESYNC_PERIOD:---min-resync-period=3m TEST_CLUSTER_API_CONTENT_TYPE="${TEST_CLUSTER_API_CONTENT_TYPE:-}" KUBELET_TEST_ARGS="${KUBELET_TEST_ARGS:-} --serialize-image-pulls=false ${TEST_CLUSTER_API_CONTENT_TYPE}" +if [[ "${NODE_OS_DISTRIBUTION}" == "gci" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "ubuntu" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "custom" ]]; then + NODE_KUBELET_TEST_ARGS="${NODE_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true" +fi +if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]] || [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then + MASTER_KUBELET_TEST_ARGS="${MASTER_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true" +fi APISERVER_TEST_ARGS="${APISERVER_TEST_ARGS:-} --vmodule=httplog=3 --runtime-config=extensions/v1beta1,scheduling.k8s.io/v1alpha1,settings.k8s.io/v1alpha1 ${TEST_CLUSTER_DELETE_COLLECTION_WORKERS} ${TEST_CLUSTER_MAX_REQUESTS_INFLIGHT}" CONTROLLER_MANAGER_TEST_ARGS="${CONTROLLER_MANAGER_TEST_ARGS:-} ${TEST_CLUSTER_RESYNC_PERIOD} ${TEST_CLUSTER_API_CONTENT_TYPE}" SCHEDULER_TEST_ARGS="${SCHEDULER_TEST_ARGS:-} ${TEST_CLUSTER_API_CONTENT_TYPE}" diff --git a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh index 092b4becd848..1a384ff4cb65 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh @@ -545,6 +545,9 @@ function create-master-auth { if [[ -n "${KUBE_SCHEDULER_TOKEN:-}" ]]; then append_or_replace_prefixed_line "${known_tokens_csv}" "${KUBE_SCHEDULER_TOKEN}," "system:kube-scheduler,uid:system:kube-scheduler" fi + if [[ -n "${KUBE_CLUSTER_AUTOSCALER_TOKEN:-}" ]]; then + append_or_replace_prefixed_line "${known_tokens_csv}" "${KUBE_CLUSTER_AUTOSCALER_TOKEN}," "cluster-autoscaler,uid:cluster-autoscaler" + fi if [[ -n "${KUBE_PROXY_TOKEN:-}" ]]; then append_or_replace_prefixed_line "${known_tokens_csv}" "${KUBE_PROXY_TOKEN}," "system:kube-proxy,uid:kube_proxy" fi @@ -1006,6 +1009,30 @@ current-context: kube-scheduler EOF } +function create-clusterautoscaler-kubeconfig { + echo "Creating cluster-autoscaler kubeconfig file" + mkdir -p /etc/srv/kubernetes/cluster-autoscaler + cat </etc/srv/kubernetes/cluster-autoscaler/kubeconfig +apiVersion: v1 +kind: Config +users: +- name: cluster-autoscaler + user: + token: ${KUBE_CLUSTER_AUTOSCALER_TOKEN} +clusters: +- name: local + cluster: + insecure-skip-tls-verify: true + server: https://localhost:443 +contexts: +- context: + cluster: local + user: cluster-autoscaler + name: cluster-autoscaler +current-context: cluster-autoscaler +EOF +} + function create-kubescheduler-policy-config { echo "Creating kube-scheduler policy config file" mkdir -p /etc/srv/kubernetes/kube-scheduler @@ -1978,12 +2005,15 @@ function start-kube-scheduler { function start-cluster-autoscaler { if [[ "${ENABLE_CLUSTER_AUTOSCALER:-}" == "true" ]]; then echo "Start kubernetes cluster autoscaler" + setup-addon-manifests "addons" "rbac/cluster-autoscaler" + create-clusterautoscaler-kubeconfig prepare-log-file /var/log/cluster-autoscaler.log # Remove salt comments and replace variables with values local -r src_file="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/cluster-autoscaler.manifest" local params="${AUTOSCALER_MIG_CONFIG} ${CLOUD_CONFIG_OPT} ${AUTOSCALER_EXPANDER_CONFIG:---expander=price}" + params+=" --kubeconfig=/etc/srv/kubernetes/cluster-autoscaler/kubeconfig" sed -i -e "s@{{params}}@${params}@g" "${src_file}" sed -i -e "s@{{cloud_config_mount}}@${CLOUD_CONFIG_MOUNT}@g" "${src_file}" sed -i -e "s@{{cloud_config_volume}}@${CLOUD_CONFIG_VOLUME}@g" "${src_file}" @@ -2323,6 +2353,7 @@ EOF fi sed -i -e "s@{{ cluster_name }}@${CLUSTER_NAME}@g" "${controller_yaml}" + sed -i -e "s@{{ cluster_location }}@${ZONE}@g" "${controller_yaml}" sed -i -e "s@{{ *base_metrics_memory *}}@${base_metrics_memory}@g" "${controller_yaml}" sed -i -e "s@{{ *base_metrics_cpu *}}@${base_metrics_cpu}@g" "${controller_yaml}" sed -i -e "s@{{ *base_eventer_memory *}}@${base_eventer_memory}@g" "${controller_yaml}" @@ -2527,6 +2558,16 @@ EOF function override-kubectl { echo "overriding kubectl" echo "export PATH=${KUBE_HOME}/bin:\$PATH" > /etc/profile.d/kube_env.sh + # Add ${KUBE_HOME}/bin into sudoer secure path. + local sudo_path + sudo_path=$(sudo env | grep "^PATH=") + if [[ -n "${sudo_path}" ]]; then + sudo_path=${sudo_path#PATH=} + ( + umask 027 + echo "Defaults secure_path=\"${KUBE_HOME}/bin:${sudo_path}\"" > /etc/sudoers.d/kube_secure_path + ) + fi } function override-pv-recycler { @@ -2595,9 +2636,10 @@ function main() { fi fi - # generate the controller manager and scheduler tokens here since they are only used on the master. + # generate the controller manager, scheduler and cluster autoscaler tokens here since they are only used on the master. KUBE_CONTROLLER_MANAGER_TOKEN=$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d "=+/" | dd bs=32 count=1 2>/dev/null) KUBE_SCHEDULER_TOKEN=$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d "=+/" | dd bs=32 count=1 2>/dev/null) + KUBE_CLUSTER_AUTOSCALER_TOKEN=$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d "=+/" | dd bs=32 count=1 2>/dev/null) setup-os-params config-ip-firewall diff --git a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh index 6ef58a876107..30c7948e3484 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh @@ -28,8 +28,8 @@ DEFAULT_CNI_VERSION="v0.6.0" DEFAULT_CNI_SHA1="d595d3ded6499a64e8dac02466e2f5f2ce257c9f" DEFAULT_NPD_VERSION="v0.4.1" DEFAULT_NPD_SHA1="a57a3fe64cab8a18ec654f5cef0aec59dae62568" -DEFAULT_CRICTL_VERSION="v1.0.0-beta.1" -DEFAULT_CRICTL_SHA1="6816982ea1b83506945ce02949199171fee17b0b" +DEFAULT_CRICTL_VERSION="v1.11.0" +DEFAULT_CRICTL_SHA1="8f5142b985d314cdebb51afd55054d5ec00c442a" DEFAULT_MOUNTER_TAR_SHA="8003b798cf33c7f91320cd6ee5cec4fa22244571" ### diff --git a/vendor/k8s.io/kubernetes/cluster/gce/manifests/BUILD b/vendor/k8s.io/kubernetes/cluster/gce/manifests/BUILD index d3cfddf1d234..ed258fdc4ded 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/manifests/BUILD +++ b/vendor/k8s.io/kubernetes/cluster/gce/manifests/BUILD @@ -9,6 +9,7 @@ pkg_tar( mode = "0644", ) +# if you update this, also update function kube::release::package_kube_manifests_tarball() in build/lib/release.sh filegroup( name = "manifests", srcs = [ diff --git a/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest b/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest index babfd0815e29..553e82c41a60 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest +++ b/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest @@ -17,7 +17,7 @@ "containers": [ { "name": "cluster-autoscaler", - "image": "k8s.gcr.io/cluster-autoscaler:v1.2.2", + "image": "k8s.gcr.io/cluster-autoscaler:v1.3.0", "livenessProbe": { "httpGet": { "path": "/health-check", @@ -28,7 +28,7 @@ }, "command": [ "./run.sh", - "--kubernetes=http://127.0.0.1:8080?inClusterConfig=f", + "--kubernetes=https://127.0.0.1:443", "--v=4", "--logtostderr=true", "--write-status-configmap=true", @@ -59,6 +59,11 @@ "readOnly": true, "mountPath": "/usr/share/ca-certificates" }, + { + "name": "srvkube", + "readOnly": true, + "mountPath": "/etc/srv/kubernetes/cluster-autoscaler" + }, { "name": "logfile", "mountPath": "/var/log/cluster-autoscaler.log", @@ -83,6 +88,12 @@ "path": "/usr/share/ca-certificates" } }, + { + "name": "srvkube", + "hostPath": { + "path": "/etc/srv/kubernetes/cluster-autoscaler" + } + }, { "name": "logfile", "hostPath": { diff --git a/vendor/k8s.io/kubernetes/cluster/gce/manifests/rescheduler.manifest b/vendor/k8s.io/kubernetes/cluster/gce/manifests/rescheduler.manifest index b496449a780f..6bbd4fa882ad 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/manifests/rescheduler.manifest +++ b/vendor/k8s.io/kubernetes/cluster/gce/manifests/rescheduler.manifest @@ -1,19 +1,19 @@ apiVersion: v1 kind: Pod metadata: - name: rescheduler-v0.3.1 + name: rescheduler-v0.4.0 namespace: kube-system annotations: scheduler.alpha.kubernetes.io/critical-pod: '' labels: k8s-app: rescheduler - version: v0.3.1 + version: v0.4.0 kubernetes.io/cluster-service: "true" kubernetes.io/name: "Rescheduler" spec: hostNetwork: true containers: - - image: k8s.gcr.io/rescheduler:v0.3.1 + - image: k8s.gcr.io/rescheduler:v0.4.0 name: rescheduler volumeMounts: - mountPath: /var/log/rescheduler.log diff --git a/vendor/k8s.io/kubernetes/cluster/gce/util.sh b/vendor/k8s.io/kubernetes/cluster/gce/util.sh index cf38be117288..fd446852bb5b 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/util.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/util.sh @@ -660,9 +660,6 @@ function construct-kubelet-flags { flags+=" --non-masquerade-cidr=${NON_MASQUERADE_CIDR}" fi flags+=" --volume-plugin-dir=${VOLUME_PLUGIN_DIR}" - if [[ -n "${ENABLE_CUSTOM_METRICS:-}" ]]; then - flags+=" --enable-custom-metrics=${ENABLE_CUSTOM_METRICS}" - fi local node_labels=$(build-node-labels ${master}) if [[ -n "${node_labels:-}" ]]; then flags+=" --node-labels=${node_labels}" diff --git a/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh b/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh index 719ee31aba01..662001fa63dc 100755 --- a/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh +++ b/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh @@ -294,7 +294,7 @@ function dump_nodes_with_logexporter() { local -r service_account_credentials="$(cat ${GOOGLE_APPLICATION_CREDENTIALS} | base64 | tr -d '\n')" local -r cloud_provider="${KUBERNETES_PROVIDER}" local -r enable_hollow_node_logs="${ENABLE_HOLLOW_NODE_LOGS:-false}" - local -r logexport_sleep_seconds="$(( 90 + NUM_NODES / 5 ))" + local -r logexport_sleep_seconds="$(( 90 + NUM_NODES / 3 ))" # Fill in the parameters in the logexporter daemonset template. sed -i'' -e "s@{{.LogexporterNamespace}}@${logexporter_namespace}@g" "${KUBE_ROOT}/cluster/log-dump/logexporter-daemonset.yaml" @@ -345,6 +345,7 @@ function dump_nodes_with_logexporter() { done # Delete the logexporter resources and dump logs for the failed nodes (if any) through SSH. + "${KUBECTL}" get pods --namespace "${logexporter_namespace}" || true "${KUBECTL}" delete namespace "${logexporter_namespace}" || true if [[ "${#failed_nodes[@]}" != 0 ]]; then echo -e "Dumping logs through SSH for the following nodes:\n${failed_nodes[@]}" diff --git a/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/kubecloudshared.go b/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/kubecloudshared.go index d9607bf54b57..c92c4a51b398 100644 --- a/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/kubecloudshared.go +++ b/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/kubecloudshared.go @@ -36,7 +36,6 @@ type KubeCloudSharedOptions struct { AllocateNodeCIDRs bool CIDRAllocatorType string ConfigureCloudRoutes bool - ServiceAccountKeyFile string NodeSyncPeriod metav1.Duration } @@ -74,9 +73,6 @@ func (o *KubeCloudSharedOptions) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&o.CIDRAllocatorType, "cidr-allocator-type", "RangeAllocator", "Type of CIDR allocator to use") fs.BoolVar(&o.ConfigureCloudRoutes, "configure-cloud-routes", true, "Should CIDRs allocated by allocate-node-cidrs be configured on the cloud provider.") - // TODO: remove --service-account-private-key-file 6 months after 1.8 is released (~1.10) - fs.StringVar(&o.ServiceAccountKeyFile, "service-account-private-key-file", o.ServiceAccountKeyFile, "Filename containing a PEM-encoded private RSA or ECDSA key used to sign service account tokens.") - fs.MarkDeprecated("service-account-private-key-file", "This flag is currently no-op and will be deleted.") fs.DurationVar(&o.NodeSyncPeriod.Duration, "node-sync-period", 0, ""+ "This flag is deprecated and will be removed in future releases. See node-monitor-period for Node health checking or "+ "route-reconciliation-period for cloud provider's route configuration settings.") @@ -100,7 +96,6 @@ func (o *KubeCloudSharedOptions) ApplyTo(cfg *componentconfig.KubeCloudSharedCon cfg.AllocateNodeCIDRs = o.AllocateNodeCIDRs cfg.CIDRAllocatorType = o.CIDRAllocatorType cfg.ConfigureCloudRoutes = o.ConfigureCloudRoutes - cfg.ServiceAccountKeyFile = o.ServiceAccountKeyFile cfg.NodeSyncPeriod = o.NodeSyncPeriod return nil diff --git a/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/serviceaccountcontroller.go b/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/serviceaccountcontroller.go index cb6f4a908240..80b26fe9b5dc 100644 --- a/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/serviceaccountcontroller.go +++ b/vendor/k8s.io/kubernetes/cmd/controller-manager/app/options/serviceaccountcontroller.go @@ -23,6 +23,7 @@ import ( // SAControllerOptions holds the ServiceAccountController options. type SAControllerOptions struct { + ServiceAccountKeyFile string ConcurrentSATokenSyncs int32 RootCAFile string } @@ -33,6 +34,7 @@ func (o *SAControllerOptions) AddFlags(fs *pflag.FlagSet) { return } + fs.StringVar(&o.ServiceAccountKeyFile, "service-account-private-key-file", o.ServiceAccountKeyFile, "Filename containing a PEM-encoded private RSA or ECDSA key used to sign service account tokens.") fs.Int32Var(&o.ConcurrentSATokenSyncs, "concurrent-serviceaccount-token-syncs", o.ConcurrentSATokenSyncs, "The number of service account token objects that are allowed to sync concurrently. Larger number = more responsive token generation, but more CPU (and network) load") fs.StringVar(&o.RootCAFile, "root-ca-file", o.RootCAFile, "If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.") } @@ -43,6 +45,7 @@ func (o *SAControllerOptions) ApplyTo(cfg *componentconfig.SAControllerConfigura return nil } + cfg.ServiceAccountKeyFile = o.ServiceAccountKeyFile cfg.ConcurrentSATokenSyncs = o.ConcurrentSATokenSyncs cfg.RootCAFile = o.RootCAFile diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go index 06a27e7bcca8..41aa3eab3529 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go @@ -157,7 +157,7 @@ func Run(c *config.CompletedConfig) error { } var clientBuilder controller.ControllerClientBuilder if c.ComponentConfig.KubeCloudShared.UseServiceAccountCredentials { - if len(c.ComponentConfig.KubeCloudShared.ServiceAccountKeyFile) == 0 { + if len(c.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 { // It'c possible another controller process is creating the tokens for us. // If one isn't, we'll timeout and exit when our client builder is unable to create the tokens. glog.Warningf("--use-service-account-credentials was specified without providing a --service-account-private-key-file") @@ -503,11 +503,11 @@ func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController return false, nil } - if len(ctx.ComponentConfig.KubeCloudShared.ServiceAccountKeyFile) == 0 { + if len(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 { glog.Warningf("%q is disabled because there is no private key", saTokenControllerName) return false, nil } - privateKey, err := certutil.PrivateKeyFromFile(ctx.ComponentConfig.KubeCloudShared.ServiceAccountKeyFile) + privateKey, err := certutil.PrivateKeyFromFile(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) if err != nil { return true, fmt.Errorf("error reading key for service account token controller: %v", err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options_test.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options_test.go index d32848ed8e34..2fadaea9c986 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options_test.go @@ -149,7 +149,6 @@ func TestAddFlags(t *testing.T) { AllocateNodeCIDRs: true, CIDRAllocatorType: "CloudAllocator", ConfigureCloudRoutes: false, - ServiceAccountKeyFile: "/service-account-private-key", }, AttachDetachController: &cmoptions.AttachDetachControllerOptions{ ReconcilerSyncLoopPeriod: metav1.Duration{Duration: 30 * time.Second}, @@ -247,6 +246,7 @@ func TestAddFlags(t *testing.T) { ConcurrentResourceQuotaSyncs: 10, }, SAController: &cmoptions.SAControllerOptions{ + ServiceAccountKeyFile: "/service-account-private-key", ConcurrentSATokenSyncs: 10, }, ServiceController: &cmoptions.ServiceControllerOptions{ diff --git a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/BUILD index 1d3dcc40692a..d44dddd46d56 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/BUILD @@ -56,7 +56,10 @@ filegroup( go_test( name = "go_default_test", - srcs = ["insecure_serving_test.go"], + srcs = [ + "insecure_serving_test.go", + "options_test.go", + ], embed = [":go_default_library"], deps = [ "//cmd/controller-manager/app/options:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go index 871c7d8c5112..431354d61cdc 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go @@ -197,37 +197,37 @@ func (o *Options) Validate() []error { // Config return a scheduler config object func (o *Options) Config() (*schedulerappconfig.Config, error) { + c := &schedulerappconfig.Config{} + if err := o.ApplyTo(c); err != nil { + return nil, err + } + // prepare kube clients. - client, leaderElectionClient, eventClient, err := createClients(o.ComponentConfig.ClientConnection, o.Master) + client, leaderElectionClient, eventClient, err := createClients(c.ComponentConfig.ClientConnection, o.Master) if err != nil { return nil, err } // Prepare event clients. eventBroadcaster := record.NewBroadcaster() - recorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, corev1.EventSource{Component: o.ComponentConfig.SchedulerName}) + recorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, corev1.EventSource{Component: c.ComponentConfig.SchedulerName}) // Set up leader election if enabled. var leaderElectionConfig *leaderelection.LeaderElectionConfig - if o.ComponentConfig.LeaderElection.LeaderElect { - leaderElectionConfig, err = makeLeaderElectionConfig(o.ComponentConfig.LeaderElection, leaderElectionClient, recorder) + if c.ComponentConfig.LeaderElection.LeaderElect { + leaderElectionConfig, err = makeLeaderElectionConfig(c.ComponentConfig.LeaderElection, leaderElectionClient, recorder) if err != nil { return nil, err } } - c := &schedulerappconfig.Config{ - Client: client, - InformerFactory: informers.NewSharedInformerFactory(client, 0), - PodInformer: factory.NewPodInformer(client, 0), - EventClient: eventClient, - Recorder: recorder, - Broadcaster: eventBroadcaster, - LeaderElection: leaderElectionConfig, - } - if err := o.ApplyTo(c); err != nil { - return nil, err - } + c.Client = client + c.InformerFactory = informers.NewSharedInformerFactory(client, 0) + c.PodInformer = factory.NewPodInformer(client, 0) + c.EventClient = eventClient + c.Recorder = recorder + c.Broadcaster = eventBroadcaster + c.LeaderElection = leaderElectionConfig return c, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options_test.go b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options_test.go new file mode 100644 index 000000000000..455b4d6ef268 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options_test.go @@ -0,0 +1,193 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 options + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "strings" + "testing" + + "k8s.io/kubernetes/pkg/apis/componentconfig" +) + +func TestSchedulerOptions(t *testing.T) { + // temp dir + tmpDir, err := ioutil.TempDir("", "scheduler-options") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(tmpDir) + + // record the username requests were made with + username := "" + // https server + server := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + username, _, _ = req.BasicAuth() + if username == "" { + username = "none, tls" + } + w.WriteHeader(200) + w.Write([]byte(`ok`)) + })) + defer server.Close() + // http server + insecureserver := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + username, _, _ = req.BasicAuth() + if username == "" { + username = "none, http" + } + w.WriteHeader(200) + w.Write([]byte(`ok`)) + })) + defer insecureserver.Close() + + // config file and kubeconfig + configFile := filepath.Join(tmpDir, "scheduler.yaml") + configKubeconfig := filepath.Join(tmpDir, "config.kubeconfig") + if err := ioutil.WriteFile(configFile, []byte(fmt.Sprintf(` +apiVersion: componentconfig/v1alpha1 +kind: KubeSchedulerConfiguration +clientConnection: + kubeconfig: "%s" +leaderElection: + leaderElect: true`, configKubeconfig)), os.FileMode(0600)); err != nil { + t.Fatal(err) + } + if err := ioutil.WriteFile(configKubeconfig, []byte(fmt.Sprintf(` +apiVersion: v1 +kind: Config +clusters: +- cluster: + insecure-skip-tls-verify: true + server: %s + name: default +contexts: +- context: + cluster: default + user: default + name: default +current-context: default +users: +- name: default + user: + username: config +`, server.URL)), os.FileMode(0600)); err != nil { + t.Fatal(err) + } + + // flag-specified kubeconfig + flagKubeconfig := filepath.Join(tmpDir, "flag.kubeconfig") + if err := ioutil.WriteFile(flagKubeconfig, []byte(fmt.Sprintf(` +apiVersion: v1 +kind: Config +clusters: +- cluster: + insecure-skip-tls-verify: true + server: %s + name: default +contexts: +- context: + cluster: default + user: default + name: default +current-context: default +users: +- name: default + user: + username: flag +`, server.URL)), os.FileMode(0600)); err != nil { + t.Fatal(err) + } + + // Insulate this test from picking up in-cluster config when run inside a pod + // We can't assume we have permissions to write to /var/run/secrets/... from a unit test to mock in-cluster config for testing + originalHost := os.Getenv("KUBERNETES_SERVICE_HOST") + if len(originalHost) > 0 { + os.Setenv("KUBERNETES_SERVICE_HOST", "") + defer os.Setenv("KUBERNETES_SERVICE_HOST", originalHost) + } + + testcases := []struct { + name string + options *Options + expectedUsername string + expectedError string + }{ + { + name: "config file", + options: &Options{ConfigFile: configFile}, + expectedUsername: "config", + }, + { + name: "kubeconfig flag", + options: &Options{ + ComponentConfig: componentconfig.KubeSchedulerConfiguration{ + ClientConnection: componentconfig.ClientConnectionConfiguration{ + KubeConfigFile: flagKubeconfig}}}, + expectedUsername: "flag", + }, + { + name: "overridden master", + options: &Options{Master: insecureserver.URL}, + expectedUsername: "none, http", + }, + { + name: "no config", + options: &Options{}, + expectedError: "no configuration has been provided", + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + // create the config + config, err := tc.options.Config() + + // handle errors + if err != nil { + if tc.expectedError == "" { + t.Error(err) + } else if !strings.Contains(err.Error(), tc.expectedError) { + t.Errorf("expected %q, got %q", tc.expectedError, err.Error()) + } + return + } + + // ensure we have a client + if config.Client == nil { + t.Error("unexpected nil client") + return + } + + // test the client talks to the endpoint we expect with the credentials we expect + username = "" + _, err = config.Client.Discovery().RESTClient().Get().AbsPath("/").DoRaw() + if err != nil { + t.Error(err) + return + } + if username != tc.expectedUsername { + t.Errorf("expected server call with user %s, got %s", tc.expectedUsername, username) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD index 3bbaa0da8f16..8315ddde7d4f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD @@ -58,7 +58,6 @@ go_library( "//pkg/proxy/apis/kubeproxyconfig/scheme:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//pkg/util/pointer:go_default_library", - "//vendor/github.com/json-iterator/go:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/conversion.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/conversion.go index a4fb369da9a9..3bbad16e79d7 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/conversion.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/conversion.go @@ -113,9 +113,13 @@ func UpgradeCloudProvider(in *MasterConfiguration, out *kubeadm.MasterConfigurat if out.ControllerManagerExtraArgs == nil { out.ControllerManagerExtraArgs = map[string]string{} } + if out.NodeRegistration.KubeletExtraArgs == nil { + out.NodeRegistration.KubeletExtraArgs = map[string]string{} + } out.APIServerExtraArgs["cloud-provider"] = in.CloudProvider out.ControllerManagerExtraArgs["cloud-provider"] = in.CloudProvider + out.NodeRegistration.KubeletExtraArgs["cloud-provider"] = in.CloudProvider } } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index c0439cbc07a4..bb30de78c39d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -39,7 +39,7 @@ const ( // DefaultClusterDNSIP defines default DNS IP DefaultClusterDNSIP = "10.96.0.10" // DefaultKubernetesVersion defines default kubernetes version - DefaultKubernetesVersion = "stable-1.10" + DefaultKubernetesVersion = "stable-1.11" // DefaultAPIBindPort defines default API port DefaultAPIBindPort = 6443 // DefaultAuthorizationModes defines default authorization modes diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/upgrade.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/upgrade.go index 5e94ff558da1..7c3dd133febb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/upgrade.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/upgrade.go @@ -23,7 +23,6 @@ import ( "strconv" "strings" - jsoniter "github.com/json-iterator/go" "github.com/ugorji/go/codec" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -31,8 +30,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" ) -var json = jsoniter.ConfigCompatibleWithStandardLibrary - type configMutationFunc func(map[string]interface{}) error // These migrations are a stop-gap until we get a properly-versioned configuration file for MasterConfiguration. diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/defaults.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/defaults.go index f085904efbd8..c9b8980bdcd2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/defaults.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/defaults.go @@ -38,7 +38,7 @@ const ( // DefaultClusterDNSIP defines default DNS IP DefaultClusterDNSIP = "10.96.0.10" // DefaultKubernetesVersion defines default kubernetes version - DefaultKubernetesVersion = "stable-1.10" + DefaultKubernetesVersion = "stable-1.11" // DefaultAPIBindPort defines default API port DefaultAPIBindPort = 6443 // DefaultCertificatesDir defines default certificate directory diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/types.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/types.go index b68184150cad..7af1f79bea36 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/types.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2/types.go @@ -131,10 +131,10 @@ type NodeRegistrationOptions struct { // Name is the `.Metadata.Name` field of the Node API object that will be created in this `kubeadm init` or `kubeadm joiń` operation. // This field is also used in the CommonName field of the kubelet's client certificate to the API server. // Defaults to the hostname of the node if not provided. - Name string `json:"name"` + Name string `json:"name,omitempty"` // CRISocket is used to retrieve container runtime info. This information will be annotated to the Node API object, for later re-use - CRISocket string `json:"criSocket"` + CRISocket string `json:"criSocket,omitempty"` // Taints specifies the taints the Node API object should be registered with. If this field is unset, i.e. nil, in the `kubeadm init` process // it will be defaulted to []v1.Taint{'node-role.kubernetes.io/master=""'}. If you don't want to taint your master node, set this field to an diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD index 253e2a1c4fb8..abff6526c40d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD @@ -19,7 +19,6 @@ go_library( "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/validation:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", - "//pkg/util/node:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index ad542f36f005..a85ba40a04ff 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -44,7 +44,6 @@ import ( kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" proxyvalidation "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" - "k8s.io/kubernetes/pkg/util/node" ) // ValidateMasterConfiguration validates master configuration and collects all encountered errors @@ -92,7 +91,11 @@ func ValidateNodeConfiguration(c *kubeadm.NodeConfiguration) field.ErrorList { // ValidateNodeRegistrationOptions validates the NodeRegistrationOptions object func ValidateNodeRegistrationOptions(nro *kubeadm.NodeRegistrationOptions, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - allErrs = append(allErrs, ValidateNodeName(nro.Name, fldPath.Child("name"))...) + if len(nro.Name) == 0 { + allErrs = append(allErrs, field.Required(fldPath, "--node-name or .nodeRegistration.name in the config file is a required value. It seems like this value couldn't be automatically detected in your environment, please specify the desired value using the CLI or config file.")) + } else { + allErrs = append(allErrs, apivalidation.ValidateDNS1123Subdomain(nro.Name, field.NewPath("name"))...) + } allErrs = append(allErrs, ValidateAbsolutePath(nro.CRISocket, fldPath.Child("criSocket"))...) // TODO: Maybe validate .Taints as well in the future using something like validateNodeTaints() in pkg/apis/core/validation return allErrs @@ -356,15 +359,6 @@ func ValidateAbsolutePath(path string, fldPath *field.Path) field.ErrorList { return allErrs } -// ValidateNodeName validates the name of a node -func ValidateNodeName(nodename string, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if node.GetHostname(nodename) != nodename { - allErrs = append(allErrs, field.Invalid(fldPath, nodename, "nodename is not valid, must be lower case")) - } - return allErrs -} - // ValidateMixedArguments validates passed arguments func ValidateMixedArguments(flag *pflag.FlagSet) error { // If --config isn't set, we have nothing to validate diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go index d4454fb4655b..151cde50b0ae 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go @@ -104,24 +104,31 @@ func TestValidateTokenGroups(t *testing.T) { } } -func TestValidateNodeName(t *testing.T) { +func TestValidateNodeRegistrationOptions(t *testing.T) { var tests = []struct { - s string - f *field.Path - expected bool + nodeName string + criSocket string + expectedErrors bool }{ - {"", nil, false}, // ok if not provided - {"1234", nil, true}, // supported - {"valid-nodename", nil, true}, // supported - {"INVALID-NODENAME", nil, false}, // Upper cases is invalid + {"", "/some/path", true}, // node name can't be empty + {"valid-nodename", "", true}, // crisocket can't be empty + {"INVALID-NODENAME", "/some/path", true}, // Upper cases is invalid + {"invalid-nodename-", "/some/path", true}, // Can't have trailing dashes + {"invalid-node?name", "/some/path", true}, // Unsupported characters + {"valid-nodename", "relative/path", true}, // crisocket must be an absolute path + {"valid-nodename", "/some/path", false}, // supported + {"valid-nodename-with-numbers01234", "/some/path/with/numbers/01234/", false}, // supported, with numbers as well } for _, rt := range tests { - actual := ValidateNodeName(rt.s, rt.f) - if (len(actual) == 0) != rt.expected { + nro := kubeadm.NodeRegistrationOptions{Name: rt.nodeName, CRISocket: rt.criSocket} + actual := ValidateNodeRegistrationOptions(&nro, field.NewPath("nodeRegistration")) + actualErrors := len(actual) > 0 + if actualErrors != rt.expectedErrors { t.Errorf( - "failed ValidateNodeRegistration: kubeadm.NodeRegistrationOptions{Name:\n\texpected: %t\n\t actual: %t", - rt.expected, - (len(actual) == 0), + "failed ValidateNodeRegistrationOptions: value: %v\n\texpected: %t\n\t actual: %t", + nro, + rt.expectedErrors, + actualErrors, ) } } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD index 80ecf7ce9f1a..171dc94d4554 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD @@ -134,6 +134,7 @@ go_test( ":go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha2:go_default_library", "//cmd/kubeadm/app/features:go_default_library", + "//cmd/kubeadm/app/util/config:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go index 34bcb441bf51..91cb09632740 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go @@ -202,7 +202,7 @@ func NewCmdConfigMigrate(out io.Writer) *cobra.Command { } if newCfgPath == "" { - fmt.Fprintf(out, string(outputBytes)) + fmt.Fprint(out, string(outputBytes)) } else { if err := ioutil.WriteFile(newCfgPath, outputBytes, 0644); err != nil { kubeadmutil.CheckErr(fmt.Errorf("failed to write the new configuration to the file %q: %v", newCfgPath, err)) @@ -358,7 +358,7 @@ func NewCmdConfigImages(out io.Writer) *cobra.Command { Short: "Interact with container images used by kubeadm.", RunE: cmdutil.SubCmdRunE("images"), } - cmd.AddCommand(NewCmdConfigImagesList(out)) + cmd.AddCommand(NewCmdConfigImagesList(out, nil)) cmd.AddCommand(NewCmdConfigImagesPull()) return cmd } @@ -416,12 +416,18 @@ func (ip *ImagesPull) PullAll() error { } // NewCmdConfigImagesList returns the "kubeadm config images list" command -func NewCmdConfigImagesList(out io.Writer) *cobra.Command { +func NewCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Command { cfg := &kubeadmapiv1alpha2.MasterConfiguration{} kubeadmscheme.Scheme.Default(cfg) var cfgPath, featureGatesString string var err error + // This just sets the kubernetes version for unit testing so kubeadm won't try to + // lookup the latest release from the internet. + if mockK8sVersion != nil { + cfg.KubernetesVersion = *mockK8sVersion + } + cmd := &cobra.Command{ Use: "list", Short: "Print a list of images kubeadm will use. The configuration file is used in case any images or image repositories are customized.", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config_test.go index 622d6983e268..18db0ec99ca6 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config_test.go @@ -29,15 +29,20 @@ import ( kubeadmapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2" "k8s.io/kubernetes/cmd/kubeadm/app/cmd" "k8s.io/kubernetes/cmd/kubeadm/app/features" + "k8s.io/kubernetes/cmd/kubeadm/app/util/config" ) const ( defaultNumberOfImages = 8 + // dummyKubernetesVersion is just used for unit testing, in order to not make + // kubeadm lookup dl.k8s.io to resolve what the latest stable release is + dummyKubernetesVersion = "v1.10.0" ) func TestNewCmdConfigImagesList(t *testing.T) { var output bytes.Buffer - images := cmd.NewCmdConfigImagesList(&output) + mockK8sVersion := dummyKubernetesVersion + images := cmd.NewCmdConfigImagesList(&output, &mockK8sVersion) images.Run(nil, nil) actual := strings.Split(output.String(), "\n") if len(actual) != defaultNumberOfImages { @@ -53,11 +58,6 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) { expectedImageSubstrings []string configContents []byte }{ - { - name: "empty config contents", - expectedImageCount: defaultNumberOfImages, - configContents: []byte{}, - }, { name: "set k8s version", expectedImageCount: defaultNumberOfImages, @@ -67,7 +67,7 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) { configContents: []byte(dedent.Dedent(` apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration - kubernetesVersion: 1.10.1 + kubernetesVersion: v1.10.1 `)), }, { @@ -79,8 +79,9 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) { configContents: []byte(dedent.Dedent(` apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration + kubernetesVersion: v1.11.0 featureGates: - CoreDNS: True + CoreDNS: True `)), }, } @@ -99,7 +100,9 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) { t.Fatalf("Failed writing a config file: %v", err) } - i, err := cmd.NewImagesList(configFilePath, &kubeadmapiv1alpha2.MasterConfiguration{}) + i, err := cmd.NewImagesList(configFilePath, &kubeadmapiv1alpha2.MasterConfiguration{ + KubernetesVersion: dummyKubernetesVersion, + }) if err != nil { t.Fatalf("Failed getting the kubeadm images command: %v", err) } @@ -130,6 +133,9 @@ func TestConfigImagesListRunWithoutPath(t *testing.T) { { name: "empty config", expectedImages: defaultNumberOfImages, + cfg: kubeadmapiv1alpha2.MasterConfiguration{ + KubernetesVersion: dummyKubernetesVersion, + }, }, { name: "external etcd configuration", @@ -139,6 +145,7 @@ func TestConfigImagesListRunWithoutPath(t *testing.T) { Endpoints: []string{"https://some.etcd.com:2379"}, }, }, + KubernetesVersion: dummyKubernetesVersion, }, expectedImages: defaultNumberOfImages - 1, }, @@ -148,6 +155,7 @@ func TestConfigImagesListRunWithoutPath(t *testing.T) { FeatureGates: map[string]bool{ features.CoreDNS: true, }, + KubernetesVersion: dummyKubernetesVersion, }, expectedImages: defaultNumberOfImages, }, @@ -196,3 +204,43 @@ func TestImagesPull(t *testing.T) { t.Fatalf("expected 2 but found %v", puller.count["a"]) } } + +func TestMigrate(t *testing.T) { + cfg := []byte(dedent.Dedent(` + apiVersion: kubeadm.k8s.io/v1alpha2 + kind: MasterConfiguration + kubernetesVersion: v1.10.0 + `)) + configFile, cleanup := tempConfig(t, cfg) + defer cleanup() + + var output bytes.Buffer + command := cmd.NewCmdConfigMigrate(&output) + err := command.Flags().Set("old-config", configFile) + if err != nil { + t.Fatalf("failed to set old-config flag") + } + command.Run(nil, nil) + _, err = config.BytesToInternalConfig(output.Bytes()) + if err != nil { + t.Fatalf("Could not read output back into internal type: %v", err) + } +} + +// Returns the name of the file created and a cleanup callback +func tempConfig(t *testing.T, config []byte) (string, func()) { + t.Helper() + tmpDir, err := ioutil.TempDir("", "kubeadm-migration-test") + if err != nil { + t.Fatalf("Unable to create temporary directory: %v", err) + } + configFilePath := filepath.Join(tmpDir, "test-config-file") + err = ioutil.WriteFile(configFilePath, config, 0644) + if err != nil { + os.RemoveAll(tmpDir) + t.Fatalf("Failed writing a config file: %v", err) + } + return configFilePath, func() { + os.RemoveAll(tmpDir) + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go index e3c3aafd9eb9..5467b59956e3 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go @@ -259,8 +259,16 @@ func NewInit(cfgPath string, externalcfg *kubeadmapiv1alpha2.MasterConfiguration if err := preflight.RunInitMasterChecks(utilsexec.New(), cfg, ignorePreflightErrors); err != nil { return nil, err } - if err := preflight.RunPullImagesCheck(utilsexec.New(), cfg, ignorePreflightErrors); err != nil { - return nil, err + + if !dryRun { + fmt.Println("[preflight/images] Pulling images required for setting up a Kubernetes cluster") + fmt.Println("[preflight/images] This might take a minute or two, depending on the speed of your internet connection") + fmt.Println("[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'") + if err := preflight.RunPullImagesCheck(utilsexec.New(), cfg, ignorePreflightErrors); err != nil { + return nil, err + } + } else { + fmt.Println("[preflight/images] Would pull the required images (like 'kubeadm config images pull')") } return &Init{cfg: cfg, skipTokenPrint: skipTokenPrint, dryRun: dryRun, ignorePreflightErrors: ignorePreflightErrors}, nil @@ -287,8 +295,10 @@ func (i *Init) Run(out io.Writer) error { // First off, configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet // Try to stop the kubelet service so no race conditions occur when configuring it - glog.V(1).Infof("Stopping the kubelet") - preflight.TryStopKubelet(i.ignorePreflightErrors) + if !i.dryRun { + glog.V(1).Infof("Stopping the kubelet") + preflight.TryStopKubelet() + } // Write env file with flags for the kubelet to use. We do not need to write the --register-with-taints for the master, // as we handle that ourselves in the markmaster phase @@ -302,9 +312,11 @@ func (i *Init) Run(out io.Writer) error { return fmt.Errorf("error writing kubelet configuration to disk: %v", err) } - // Try to start the kubelet service in case it's inactive - glog.V(1).Infof("Starting the kubelet") - preflight.TryStartKubelet(i.ignorePreflightErrors) + if !i.dryRun { + // Try to start the kubelet service in case it's inactive + glog.V(1).Infof("Starting the kubelet") + preflight.TryStartKubelet() + } // certsDirToWriteTo is gonna equal cfg.CertificatesDir in the normal case, but gonna be a temp directory if dryrunning i.cfg.CertificatesDir = certsDirToWriteTo @@ -597,9 +609,10 @@ func getWaiter(i *Init, client clientset.Interface) apiclient.Waiter { return dryrunutil.NewWaiter() } - // TODO: List images locally using `crictl` and pull in preflight checks if not available - // When we do that, we can always assume the images exist at this point and have a shorter timeout. - timeout := 30 * time.Minute + // We know that the images should be cached locally already as we have pulled them using + // crictl in the preflight checks. Hence we can have a pretty short timeout for the kubelet + // to start creating Static Pods. + timeout := 4 * time.Minute return apiclient.NewKubeWaiter(client, timeout, os.Stdout) } @@ -610,6 +623,7 @@ func waitForKubeletAndFunc(waiter apiclient.Waiter, f func() error) error { go func(errC chan error, waiter apiclient.Waiter) { // This goroutine can only make kubeadm init fail. If this check succeeds, it won't do anything special + // TODO: Make 10248 a constant somewhere if err := waiter.WaitForHealthyKubelet(40*time.Second, "http://localhost:10248/healthz"); err != nil { errC <- err } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go index 4c1f32c180a5..20ccfb4f048b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go @@ -281,7 +281,7 @@ func (j *Join) Run(out io.Writer) error { // Configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet // Try to stop the kubelet service so no race conditions occur when configuring it glog.V(1).Infof("Stopping the kubelet") - preflight.TryStopKubelet(j.ignorePreflightErrors) + preflight.TryStopKubelet() // Write the configuration for the kubelet (using the bootstrap token credentials) to disk so the kubelet can start if err := kubeletphase.DownloadConfig(bootstrapClient, kubeletVersion, kubeadmconstants.KubeletRunDirectory); err != nil { @@ -295,7 +295,7 @@ func (j *Join) Run(out io.Writer) error { // Try to start the kubelet service in case it's inactive glog.V(1).Infof("Starting the kubelet") - preflight.TryStartKubelet(j.ignorePreflightErrors) + preflight.TryStartKubelet() // Now the kubelet will perform the TLS Bootstrap, transforming /etc/kubernetes/bootstrap-kubelet.conf to /etc/kubernetes/kubelet.conf // Wait for the kubelet to create the /etc/kubernetes/kubelet.conf KubeConfig file. If this process diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/options/token.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/options/token.go index 2b793f143223..d875eb9d5a5d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/options/token.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/options/token.go @@ -52,8 +52,13 @@ func (bto *BootstrapTokenOptions) AddTokenFlag(fs *pflag.FlagSet) { // AddTTLFlag adds the --token-ttl flag to the given flagset func (bto *BootstrapTokenOptions) AddTTLFlag(fs *pflag.FlagSet) { + bto.AddTTLFlagWithName(fs, "token-ttl") +} + +// AddTTLFlagWithName adds the --token-ttl flag with a custom flag name given flagset +func (bto *BootstrapTokenOptions) AddTTLFlagWithName(fs *pflag.FlagSet, flagName string) { fs.DurationVar( - &bto.TTL.Duration, "token-ttl", bto.TTL.Duration, + &bto.TTL.Duration, flagName, bto.TTL.Duration, "The duration before the token is automatically deleted (e.g. 1s, 2m, 3h). If set to '0', the token will never expire", ) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go index b7939664062a..0dfee95e7399 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go @@ -80,8 +80,8 @@ func NewCmdReset(in io.Reader, out io.Writer) *cobra.Command { "The path to the CRI socket to use with crictl when cleaning up containers.", ) - cmd.PersistentFlags().BoolVar( - &forceReset, "force", false, + cmd.PersistentFlags().BoolVarP( + &forceReset, "force", "f", false, "Reset the node without prompting for confirmation.", ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go index 4b52ecafe02c..9368a656a846 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go @@ -138,7 +138,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") createCmd.Flags().BoolVar(&printJoinCommand, "print-join-command", false, "Instead of printing only the token, print the full 'kubeadm join' flag needed to join the cluster using the token.") - bto.AddTTLFlag(createCmd.Flags()) + bto.AddTTLFlagWithName(createCmd.Flags(), "ttl") bto.AddUsagesFlag(createCmd.Flags()) bto.AddGroupsFlag(createCmd.Flags()) bto.AddDescriptionFlag(createCmd.Flags()) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD index 254d16c08722..c55c9c6d1a31 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD @@ -35,6 +35,7 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go index 0a1db0d42d2f..e5922edb97ac 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go @@ -42,19 +42,23 @@ import ( ) const ( - upgradeManifestTimeout = 1 * time.Minute + upgradeManifestTimeout = 5 * time.Minute + + defaultImagePullTimeout = 15 * time.Minute ) // applyFlags holds the information about the flags that can be passed to apply type applyFlags struct { + *applyPlanFlags + nonInteractiveMode bool force bool dryRun bool etcdUpgrade bool + criSocket string newK8sVersionStr string newK8sVersion *version.Version imagePullTimeout time.Duration - parent *cmdUpgradeFlags } // SessionIsInteractive returns true if the session is of an interactive type (the default, can be opted out of with -y, -f or --dry-run) @@ -63,11 +67,12 @@ func (f *applyFlags) SessionIsInteractive() bool { } // NewCmdApply returns the cobra command for `kubeadm upgrade apply` -func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { +func NewCmdApply(apf *applyPlanFlags) *cobra.Command { flags := &applyFlags{ - parent: parentFlags, - imagePullTimeout: 15 * time.Minute, + applyPlanFlags: apf, + imagePullTimeout: defaultImagePullTimeout, etcdUpgrade: true, + criSocket: kubeadmapiv1alpha2.DefaultCRISocket, } cmd := &cobra.Command{ @@ -76,18 +81,18 @@ func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { Short: "Upgrade your Kubernetes cluster to the specified version.", Run: func(cmd *cobra.Command, args []string) { var err error - flags.parent.ignorePreflightErrorsSet, err = validation.ValidateIgnorePreflightErrors(flags.parent.ignorePreflightErrors, flags.parent.skipPreFlight) + flags.ignorePreflightErrorsSet, err = validation.ValidateIgnorePreflightErrors(flags.ignorePreflightErrors, flags.skipPreFlight) kubeadmutil.CheckErr(err) // Ensure the user is root glog.V(1).Infof("running preflight checks") - err = runPreflightChecks(flags.parent.ignorePreflightErrorsSet) + err = runPreflightChecks(flags.ignorePreflightErrorsSet) kubeadmutil.CheckErr(err) // If the version is specified in config file, pick up that value. - if flags.parent.cfgPath != "" { - glog.V(1).Infof("fetching configuration from file", flags.parent.cfgPath) - cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(parentFlags.cfgPath, &kubeadmapiv1alpha2.MasterConfiguration{}) + if flags.cfgPath != "" { + glog.V(1).Infof("fetching configuration from file", flags.cfgPath) + cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1alpha2.MasterConfiguration{}) kubeadmutil.CheckErr(err) if cfg.KubernetesVersion != "" { @@ -115,13 +120,16 @@ func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { }, } + // Register the common flags for apply and plan + addApplyPlanFlags(cmd.Flags(), flags.applyPlanFlags) // Specify the valid flags specific for apply cmd.Flags().BoolVarP(&flags.nonInteractiveMode, "yes", "y", flags.nonInteractiveMode, "Perform the upgrade and do not prompt for confirmation (non-interactive mode).") cmd.Flags().BoolVarP(&flags.force, "force", "f", flags.force, "Force upgrading although some requirements might not be met. This also implies non-interactive mode.") cmd.Flags().BoolVar(&flags.dryRun, "dry-run", flags.dryRun, "Do not change any state, just output what actions would be performed.") cmd.Flags().BoolVar(&flags.etcdUpgrade, "etcd-upgrade", flags.etcdUpgrade, "Perform the upgrade of etcd.") cmd.Flags().DurationVar(&flags.imagePullTimeout, "image-pull-timeout", flags.imagePullTimeout, "The maximum amount of time to wait for the control plane pods to be downloaded.") - + // TODO: Register this flag in a generic place + cmd.Flags().StringVar(&flags.criSocket, "cri-socket", flags.criSocket, "Specify the CRI socket to connect to.") return cmd } @@ -142,11 +150,16 @@ func RunApply(flags *applyFlags) error { // Start with the basics, verify that the cluster is healthy and get the configuration from the cluster (using the ConfigMap) glog.V(1).Infof("[upgrade/apply] verifying health of cluster") glog.V(1).Infof("[upgrade/apply] retrieving configuration from cluster") - upgradeVars, err := enforceRequirements(flags.parent, flags.dryRun, flags.newK8sVersionStr) + upgradeVars, err := enforceRequirements(flags.applyPlanFlags, flags.dryRun, flags.newK8sVersionStr) if err != nil { return err } + if len(flags.criSocket) != 0 { + fmt.Println("[upgrade/apply] Respecting the --cri-socket flag that is set with higher priority than the config file.") + upgradeVars.cfg.NodeRegistration.CRISocket = flags.criSocket + } + // Validate requested and validate actual version glog.V(1).Infof("[upgrade/apply] validating requested and actual version") if err := configutil.NormalizeKubernetesVersion(upgradeVars.cfg); err != nil { @@ -228,7 +241,7 @@ func SetImplicitFlags(flags *applyFlags) error { func EnforceVersionPolicies(flags *applyFlags, versionGetter upgrade.VersionGetter) error { fmt.Printf("[upgrade/version] You have chosen to change the cluster version to %q\n", flags.newK8sVersionStr) - versionSkewErrs := upgrade.EnforceVersionPolicies(versionGetter, flags.newK8sVersionStr, flags.newK8sVersion, flags.parent.allowExperimentalUpgrades, flags.parent.allowRCUpgrades) + versionSkewErrs := upgrade.EnforceVersionPolicies(versionGetter, flags.newK8sVersionStr, flags.newK8sVersion, flags.allowExperimentalUpgrades, flags.allowRCUpgrades) if versionSkewErrs != nil { if len(versionSkewErrs.Mandatory) > 0 { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go index 23269ec9ddf9..9480c46611f9 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go @@ -53,12 +53,7 @@ type upgradeVariables struct { } // enforceRequirements verifies that it's okay to upgrade and then returns the variables needed for the rest of the procedure -func enforceRequirements(flags *cmdUpgradeFlags, dryRun bool, newK8sVersion string) (*upgradeVariables, error) { - - // Set the default for the kubeconfig path if the user didn't override with the flags - if flags.kubeConfigPath == "" { - flags.kubeConfigPath = "/etc/kubernetes/admin.conf" - } +func enforceRequirements(flags *applyPlanFlags, dryRun bool, newK8sVersion string) (*upgradeVariables, error) { client, err := getClient(flags.kubeConfigPath, dryRun) if err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go index 19b32e098067..7c0465515b5c 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go @@ -65,9 +65,7 @@ func TestPrintConfiguration(t *testing.T) { dnsDomain: "" podSubnet: "" serviceSubnet: "" - nodeRegistration: - criSocket: "" - name: "" + nodeRegistration: {} unifiedControlPlaneImage: "" `), }, @@ -109,9 +107,7 @@ func TestPrintConfiguration(t *testing.T) { dnsDomain: "" podSubnet: "" serviceSubnet: 10.96.0.1/12 - nodeRegistration: - criSocket: "" - name: "" + nodeRegistration: {} unifiedControlPlaneImage: "" `), }, diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff.go index cf87756c6781..47180a54f093 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff.go @@ -18,6 +18,7 @@ package upgrade import ( "fmt" + "io" "io/ioutil" "github.com/golang/glog" @@ -39,7 +40,8 @@ type diffFlags struct { schedulerManifestPath string newK8sVersionStr string contextLines int - parent *cmdUpgradeFlags + cfgPath string + out io.Writer } var ( @@ -49,19 +51,22 @@ var ( ) // NewCmdDiff returns the cobra command for `kubeadm upgrade diff` -func NewCmdDiff(parentflags *cmdUpgradeFlags) *cobra.Command { +func NewCmdDiff(out io.Writer) *cobra.Command { flags := &diffFlags{ - parent: parentflags, + out: out, } cmd := &cobra.Command{ Use: "diff [version]", Short: "Show what differences would be applied to existing static pod manifests. See also: kubeadm upgrade apply --dry-run", Run: func(cmd *cobra.Command, args []string) { + // TODO: Run preflight checks for diff to check that the manifests already exist. kubeadmutil.CheckErr(runDiff(flags, args)) }, } + // TODO: Use the generic options.AddConfigFlag method instead + cmd.Flags().StringVar(&flags.cfgPath, "config", flags.cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental!") cmd.Flags().StringVar(&flags.apiServerManifestPath, "api-server-manifest", defaultAPIServerManifestPath, "path to API server manifest") cmd.Flags().StringVar(&flags.controllerManagerManifestPath, "controller-manager-manifest", defaultControllerManagerManifestPath, "path to controller manifest") cmd.Flags().StringVar(&flags.schedulerManifestPath, "scheduler-manifest", defaultSchedulerManifestPath, "path to scheduler manifest") @@ -73,8 +78,8 @@ func NewCmdDiff(parentflags *cmdUpgradeFlags) *cobra.Command { func runDiff(flags *diffFlags, args []string) error { // If the version is specified in config file, pick up that value. - glog.V(1).Infof("fetching configuration from file", flags.parent.cfgPath) - cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.parent.cfgPath, &kubeadmv1alpha2.MasterConfiguration{}) + glog.V(1).Infof("fetching configuration from file", flags.cfgPath) + cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmv1alpha2.MasterConfiguration{}) if err != nil { return err } @@ -136,7 +141,7 @@ func runDiff(flags *diffFlags, args []string) error { Context: flags.contextLines, } - difflib.WriteUnifiedDiff(flags.parent.out, diff) + difflib.WriteUnifiedDiff(flags.out, diff) } return nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff_test.go index 2c7e28343997..a4de23b1048d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/diff_test.go @@ -27,13 +27,10 @@ const ( ) func TestRunDiff(t *testing.T) { - parentFlags := &cmdUpgradeFlags{ + flags := &diffFlags{ cfgPath: "", out: ioutil.Discard, } - flags := &diffFlags{ - parent: parentFlags, - } testCases := []struct { name string @@ -79,7 +76,7 @@ func TestRunDiff(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - parentFlags.cfgPath = tc.cfgPath + flags.cfgPath = tc.cfgPath if tc.setManifestPath { flags.apiServerManifestPath = tc.manifestPath flags.controllerManagerManifestPath = tc.manifestPath diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/node.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/node.go index 28415640d73d..0c51d7cb7d04 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/node.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/node.go @@ -51,28 +51,29 @@ var ( ) type nodeUpgradeFlags struct { - parent *cmdUpgradeFlags + kubeConfigPath string kubeletVersionStr string dryRun bool } // NewCmdNode returns the cobra command for `kubeadm upgrade node` -func NewCmdNode(parentFlags *cmdUpgradeFlags) *cobra.Command { +func NewCmdNode() *cobra.Command { cmd := &cobra.Command{ Use: "node", Short: "Upgrade commands for a node in the cluster. Currently only supports upgrading the configuration, not the kubelet itself.", RunE: cmdutil.SubCmdRunE("node"), } - cmd.AddCommand(NewCmdUpgradeNodeConfig(parentFlags)) + cmd.AddCommand(NewCmdUpgradeNodeConfig()) return cmd } // NewCmdUpgradeNodeConfig returns the cobra.Command for downloading the new/upgrading the kubelet configuration from the kubelet-config-1.X // ConfigMap in the cluster -func NewCmdUpgradeNodeConfig(parentFlags *cmdUpgradeFlags) *cobra.Command { +func NewCmdUpgradeNodeConfig() *cobra.Command { flags := &nodeUpgradeFlags{ - parent: parentFlags, + kubeConfigPath: constants.GetKubeletKubeConfigPath(), kubeletVersionStr: "", + dryRun: false, } cmd := &cobra.Command{ @@ -86,7 +87,8 @@ func NewCmdUpgradeNodeConfig(parentFlags *cmdUpgradeFlags) *cobra.Command { }, } - // TODO: Unify the registration of common flags + // TODO: Unify the registration of common flags and e.g. use the generic options.AddKubeConfigFlag method instead + cmd.Flags().StringVar(&flags.kubeConfigPath, "kubeconfig", flags.kubeConfigPath, "The KubeConfig file to use when talking to the cluster.") cmd.Flags().BoolVar(&flags.dryRun, "dry-run", flags.dryRun, "Do not change any state, just output the actions that would be performed.") cmd.Flags().StringVar(&flags.kubeletVersionStr, "kubelet-version", flags.kubeletVersionStr, "The *desired* version for the kubelet after the upgrade.") return cmd @@ -104,15 +106,9 @@ func RunUpgradeNodeConfig(flags *nodeUpgradeFlags) error { return err } - // Set the default for the kubeconfig path if the user didn't override with the flags - // TODO: Be smarter about this and be able to load multiple kubeconfig files in different orders of precedence - if flags.parent.kubeConfigPath == "" { - flags.parent.kubeConfigPath = constants.GetKubeletKubeConfigPath() - } - - client, err := getClient(flags.parent.kubeConfigPath, flags.dryRun) + client, err := getClient(flags.kubeConfigPath, flags.dryRun) if err != nil { - return fmt.Errorf("couldn't create a Kubernetes client from file %q: %v", flags.parent.kubeConfigPath, err) + return fmt.Errorf("couldn't create a Kubernetes client from file %q: %v", flags.kubeConfigPath, err) } // Parse the desired kubelet version diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go index b769709f3702..c0409229cddb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go @@ -36,14 +36,15 @@ import ( ) type planFlags struct { + *applyPlanFlags + newK8sVersionStr string - parent *cmdUpgradeFlags } // NewCmdPlan returns the cobra command for `kubeadm upgrade plan` -func NewCmdPlan(parentFlags *cmdUpgradeFlags) *cobra.Command { +func NewCmdPlan(apf *applyPlanFlags) *cobra.Command { flags := &planFlags{ - parent: parentFlags, + applyPlanFlags: apf, } cmd := &cobra.Command{ @@ -51,16 +52,16 @@ func NewCmdPlan(parentFlags *cmdUpgradeFlags) *cobra.Command { Short: "Check which versions are available to upgrade to and validate whether your current cluster is upgradeable. To skip the internet check, pass in the optional [version] parameter.", Run: func(_ *cobra.Command, args []string) { var err error - parentFlags.ignorePreflightErrorsSet, err = validation.ValidateIgnorePreflightErrors(parentFlags.ignorePreflightErrors, parentFlags.skipPreFlight) + flags.ignorePreflightErrorsSet, err = validation.ValidateIgnorePreflightErrors(flags.ignorePreflightErrors, flags.skipPreFlight) kubeadmutil.CheckErr(err) // Ensure the user is root - err = runPreflightChecks(parentFlags.ignorePreflightErrorsSet) + err = runPreflightChecks(flags.ignorePreflightErrorsSet) kubeadmutil.CheckErr(err) // If the version is specified in config file, pick up that value. - if parentFlags.cfgPath != "" { - glog.V(1).Infof("fetching configuration from file", parentFlags.cfgPath) - cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(parentFlags.cfgPath, &kubeadmapiv1alpha2.MasterConfiguration{}) + if flags.cfgPath != "" { + glog.V(1).Infof("fetching configuration from file", flags.cfgPath) + cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1alpha2.MasterConfiguration{}) kubeadmutil.CheckErr(err) if cfg.KubernetesVersion != "" { @@ -77,6 +78,8 @@ func NewCmdPlan(parentFlags *cmdUpgradeFlags) *cobra.Command { }, } + // Register the common flags for apply and plan + addApplyPlanFlags(cmd.Flags(), flags.applyPlanFlags) return cmd } @@ -85,7 +88,7 @@ func RunPlan(flags *planFlags) error { // Start with the basics, verify that the cluster is healthy, build a client and a versionGetter. Never dry-run when planning. glog.V(1).Infof("[upgrade/plan] verifying health of cluster") glog.V(1).Infof("[upgrade/plan] retrieving configuration from cluster") - upgradeVars, err := enforceRequirements(flags.parent, false, flags.newK8sVersionStr) + upgradeVars, err := enforceRequirements(flags.applyPlanFlags, false, flags.newK8sVersionStr) if err != nil { return err } @@ -119,7 +122,7 @@ func RunPlan(flags *planFlags) error { // Compute which upgrade possibilities there are glog.V(1).Infof("[upgrade/plan] computing upgrade possibilities") - availUpgrades, err := upgrade.GetAvailableUpgrades(upgradeVars.versionGetter, flags.parent.allowExperimentalUpgrades, flags.parent.allowRCUpgrades, etcdClient, upgradeVars.cfg.FeatureGates, upgradeVars.client) + availUpgrades, err := upgrade.GetAvailableUpgrades(upgradeVars.versionGetter, flags.allowExperimentalUpgrades, flags.allowRCUpgrades, etcdClient, upgradeVars.cfg.FeatureGates, upgradeVars.client) if err != nil { return fmt.Errorf("[upgrade/versions] FATAL: %v", err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go index ad2c59b0c2d5..f361be6029ee 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go @@ -21,13 +21,15 @@ import ( "strings" "github.com/spf13/cobra" + "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/sets" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" "k8s.io/kubernetes/cmd/kubeadm/app/features" ) -// cmdUpgradeFlags holds the values for the common flags in `kubeadm upgrade` -type cmdUpgradeFlags struct { +// applyPlanFlags holds the values for the common flags in `kubeadm upgrade apply` and `kubeadm upgrade plan` +type applyPlanFlags struct { kubeConfigPath string cfgPath string featureGatesString string @@ -42,7 +44,7 @@ type cmdUpgradeFlags struct { // NewCmdUpgrade returns the cobra command for `kubeadm upgrade` func NewCmdUpgrade(out io.Writer) *cobra.Command { - flags := &cmdUpgradeFlags{ + flags := &applyPlanFlags{ kubeConfigPath: "/etc/kubernetes/admin.conf", cfgPath: "", featureGatesString: "", @@ -60,21 +62,24 @@ func NewCmdUpgrade(out io.Writer) *cobra.Command { RunE: cmdutil.SubCmdRunE("upgrade"), } - cmd.PersistentFlags().StringVar(&flags.kubeConfigPath, "kubeconfig", flags.kubeConfigPath, "The KubeConfig file to use when talking to the cluster.") - cmd.PersistentFlags().StringVar(&flags.cfgPath, "config", flags.cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental!") - cmd.PersistentFlags().BoolVar(&flags.allowExperimentalUpgrades, "allow-experimental-upgrades", flags.allowExperimentalUpgrades, "Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes.") - cmd.PersistentFlags().BoolVar(&flags.allowRCUpgrades, "allow-release-candidate-upgrades", flags.allowRCUpgrades, "Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes.") - cmd.PersistentFlags().BoolVar(&flags.printConfig, "print-config", flags.printConfig, "Specifies whether the configuration file that will be used in the upgrade should be printed or not.") - cmd.PersistentFlags().StringSliceVar(&flags.ignorePreflightErrors, "ignore-preflight-errors", flags.ignorePreflightErrors, "A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.") - cmd.PersistentFlags().BoolVar(&flags.skipPreFlight, "skip-preflight-checks", flags.skipPreFlight, "Skip preflight checks that normally run before modifying the system.") - cmd.PersistentFlags().MarkDeprecated("skip-preflight-checks", "it is now equivalent to --ignore-preflight-errors=all") - cmd.PersistentFlags().StringVar(&flags.featureGatesString, "feature-gates", flags.featureGatesString, "A set of key=value pairs that describe feature gates for various features."+ - "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) - cmd.AddCommand(NewCmdApply(flags)) cmd.AddCommand(NewCmdPlan(flags)) - cmd.AddCommand(NewCmdDiff(flags)) - cmd.AddCommand(NewCmdNode(flags)) - + cmd.AddCommand(NewCmdDiff(out)) + cmd.AddCommand(NewCmdNode()) return cmd } + +func addApplyPlanFlags(fs *pflag.FlagSet, flags *applyPlanFlags) { + // TODO: Use the generic options.AddKubeConfigFlag and options.AddConfigFlag methods instead + fs.StringVar(&flags.kubeConfigPath, "kubeconfig", flags.kubeConfigPath, "The KubeConfig file to use when talking to the cluster.") + fs.StringVar(&flags.cfgPath, "config", flags.cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental!") + + fs.BoolVar(&flags.allowExperimentalUpgrades, "allow-experimental-upgrades", flags.allowExperimentalUpgrades, "Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes.") + fs.BoolVar(&flags.allowRCUpgrades, "allow-release-candidate-upgrades", flags.allowRCUpgrades, "Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes.") + fs.BoolVar(&flags.printConfig, "print-config", flags.printConfig, "Specifies whether the configuration file that will be used in the upgrade should be printed or not.") + fs.StringSliceVar(&flags.ignorePreflightErrors, "ignore-preflight-errors", flags.ignorePreflightErrors, "A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.") + fs.BoolVar(&flags.skipPreFlight, "skip-preflight-checks", flags.skipPreFlight, "Skip preflight checks that normally run before modifying the system.") + fs.MarkDeprecated("skip-preflight-checks", "it is now equivalent to --ignore-preflight-errors=all") + fs.StringVar(&flags.featureGatesString, "feature-gates", flags.featureGatesString, "A set of key=value pairs that describe feature gates for various features."+ + "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go index 5ded24e0701b..dcffdd069c10 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go @@ -80,8 +80,6 @@ const ( EtcdServerCertName = "etcd/server.crt" // EtcdServerKeyName defines etcd's server key name EtcdServerKeyName = "etcd/server.key" - // EtcdServerCertCommonName defines etcd's server certificate common name (CN) - EtcdServerCertCommonName = "kube-etcd" // EtcdPeerCertAndKeyBaseName defines etcd's peer certificate and key base name EtcdPeerCertAndKeyBaseName = "etcd/peer" @@ -89,8 +87,6 @@ const ( EtcdPeerCertName = "etcd/peer.crt" // EtcdPeerKeyName defines etcd's peer key name EtcdPeerKeyName = "etcd/peer.key" - // EtcdPeerCertCommonName defines etcd's peer certificate common name (CN) - EtcdPeerCertCommonName = "kube-etcd-peer" // EtcdHealthcheckClientCertAndKeyBaseName defines etcd's healthcheck client certificate and key base name EtcdHealthcheckClientCertAndKeyBaseName = "etcd/healthcheck-client" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/BUILD index a5a450b3cc4e..487521176849 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/BUILD @@ -27,7 +27,10 @@ go_test( name = "go_default_test", srcs = ["images_test.go"], embed = [":go_default_library"], - deps = ["//cmd/kubeadm/app/constants:go_default_library"], + deps = [ + "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/constants:go_default_library", + ], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images.go index 2a2ca0c09ce9..f9260148c80a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images.go @@ -47,11 +47,14 @@ func GetCoreImage(image, repoPrefix, k8sVersion, overrideImage string) string { // GetAllImages returns a list of container images kubeadm expects to use on a control plane node func GetAllImages(cfg *kubeadmapi.MasterConfiguration) []string { + repoPrefix := cfg.GetControlPlaneImageRepository() imgs := []string{} - imgs = append(imgs, GetCoreImage(constants.KubeAPIServer, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) - imgs = append(imgs, GetCoreImage(constants.KubeControllerManager, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) - imgs = append(imgs, GetCoreImage(constants.KubeScheduler, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) - imgs = append(imgs, fmt.Sprintf("%v/%v-%v:%v", cfg.ImageRepository, constants.KubeProxy, runtime.GOARCH, kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion))) + imgs = append(imgs, GetCoreImage(constants.KubeAPIServer, repoPrefix, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) + imgs = append(imgs, GetCoreImage(constants.KubeControllerManager, repoPrefix, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) + imgs = append(imgs, GetCoreImage(constants.KubeScheduler, repoPrefix, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage)) + imgs = append(imgs, fmt.Sprintf("%v/%v-%v:%v", repoPrefix, constants.KubeProxy, runtime.GOARCH, kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion))) + + // pause, etcd and kube-dns are not available on the ci image repository so use the default image repository. imgs = append(imgs, fmt.Sprintf("%v/pause-%v:%v", cfg.ImageRepository, runtime.GOARCH, "3.1")) // if etcd is not external then add the image as it will be required @@ -61,7 +64,7 @@ func GetAllImages(cfg *kubeadmapi.MasterConfiguration) []string { dnsImage := fmt.Sprintf("%v/k8s-dns-kube-dns-%v:%v", cfg.ImageRepository, runtime.GOARCH, constants.KubeDNSVersion) if features.Enabled(cfg.FeatureGates, features.CoreDNS) { - dnsImage = fmt.Sprintf("coredns/coredns:%v", constants.CoreDNSVersion) + dnsImage = fmt.Sprintf("%v/coredns:%v", cfg.ImageRepository, constants.CoreDNSVersion) } imgs = append(imgs, dnsImage) return imgs diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images_test.go index 466f204500da..38f237cc9d7d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/images/images_test.go @@ -19,8 +19,10 @@ package images import ( "fmt" "runtime" + "strings" "testing" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) @@ -73,3 +75,46 @@ func TestGetCoreImage(t *testing.T) { } } } + +func TestGetAllImages(t *testing.T) { + testcases := []struct { + name string + cfg *kubeadmapi.MasterConfiguration + expect string + }{ + { + name: "defined CIImageRepository", + cfg: &kubeadmapi.MasterConfiguration{ + CIImageRepository: "test.repo", + }, + expect: "test.repo", + }, + { + name: "undefined CIImagerRepository should contain the default image prefix", + cfg: &kubeadmapi.MasterConfiguration{ + ImageRepository: "real.repo", + }, + expect: "real.repo", + }, + { + name: "test that etcd is returned when it is not external", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{ + Local: &kubeadmapi.LocalEtcd{}, + }, + }, + expect: constants.Etcd, + }, + } + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + imgs := GetAllImages(tc.cfg) + for _, img := range imgs { + if strings.Contains(img, tc.expect) { + return + } + } + t.Fatalf("did not find %q in %q", tc.expect, imgs) + }) + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go index 1e2b79b3c92f..fddda5902602 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go @@ -29,14 +29,21 @@ import ( // Run creates and executes new kubeadm command func Run() error { - // We do not want these flags to show up in --help - pflag.CommandLine.MarkHidden("version") - pflag.CommandLine.MarkHidden("google-json-key") - pflag.CommandLine.MarkHidden("log-flush-frequency") pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(flag.CommandLine) pflag.Set("logtostderr", "true") + // We do not want these flags to show up in --help + // These MarkHidden calls must be after the lines above + pflag.CommandLine.MarkHidden("version") + pflag.CommandLine.MarkHidden("google-json-key") + pflag.CommandLine.MarkHidden("log-flush-frequency") + pflag.CommandLine.MarkHidden("alsologtostderr") + pflag.CommandLine.MarkHidden("log-backtrace-at") + pflag.CommandLine.MarkHidden("log-dir") + pflag.CommandLine.MarkHidden("logtostderr") + pflag.CommandLine.MarkHidden("stderrthreshold") + pflag.CommandLine.MarkHidden("vmodule") cmd := cmd.NewKubeadmCommand(os.Stdin, os.Stdout, os.Stderr) return cmd.Execute() diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go index 5bf75c577d8a..50c2577e149f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -292,6 +292,10 @@ func createDNSService(dnsService *v1.Service, serviceBytes []byte, client client // translateStubDomainOfKubeDNSToProxyCoreDNS translates StubDomain Data in kube-dns ConfigMap // in the form of Proxy for the CoreDNS Corefile. func translateStubDomainOfKubeDNSToProxyCoreDNS(dataField string, kubeDNSConfigMap *v1.ConfigMap) (string, error) { + if kubeDNSConfigMap == nil { + return "", nil + } + if proxy, ok := kubeDNSConfigMap.Data[dataField]; ok { stubDomainData := make(map[string][]string) err := json.Unmarshal([]byte(proxy), &stubDomainData) @@ -328,6 +332,10 @@ func translateStubDomainOfKubeDNSToProxyCoreDNS(dataField string, kubeDNSConfigM // translateUpstreamNameServerOfKubeDNSToUpstreamProxyCoreDNS translates UpstreamNameServer Data in kube-dns ConfigMap // in the form of Proxy for the CoreDNS Corefile. func translateUpstreamNameServerOfKubeDNSToUpstreamProxyCoreDNS(dataField string, kubeDNSConfigMap *v1.ConfigMap) (string, error) { + if kubeDNSConfigMap == nil { + return "", nil + } + if upstreamValues, ok := kubeDNSConfigMap.Data[dataField]; ok { var upstreamProxyIP []string @@ -345,6 +353,10 @@ func translateUpstreamNameServerOfKubeDNSToUpstreamProxyCoreDNS(dataField string // translateFederationsofKubeDNSToCoreDNS translates Federations Data in kube-dns ConfigMap // to Federation for CoreDNS Corefile. func translateFederationsofKubeDNSToCoreDNS(dataField, coreDNSDomain string, kubeDNSConfigMap *v1.ConfigMap) (string, error) { + if kubeDNSConfigMap == nil { + return "", nil + } + if federation, ok := kubeDNSConfigMap.Data[dataField]; ok { var ( federationStanza []interface{} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs.go index d5f1fd441167..fe0ae21b7229 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs.go @@ -375,9 +375,9 @@ func NewEtcdServerCertAndKey(cfg *kubeadmapi.MasterConfiguration, caCert *x509.C } config := certutil.Config{ - CommonName: kubeadmconstants.EtcdServerCertCommonName, + CommonName: cfg.NodeRegistration.Name, AltNames: *altNames, - Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth}, } etcdServerCert, etcdServerKey, err := pkiutil.NewCertAndKey(caCert, caKey, config) if err != nil { @@ -396,7 +396,7 @@ func NewEtcdPeerCertAndKey(cfg *kubeadmapi.MasterConfiguration, caCert *x509.Cer } config := certutil.Config{ - CommonName: kubeadmconstants.EtcdPeerCertCommonName, + CommonName: cfg.NodeRegistration.Name, AltNames: *altNames, Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth}, } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go index 2e46abf16806..f3db29c11c66 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go @@ -324,6 +324,9 @@ func TestNewEtcdServerCertAndKey(t *testing.T) { proxyIP := "10.10.10.100" cfg := &kubeadmapi.MasterConfiguration{ + NodeRegistration: kubeadmapi.NodeRegistrationOptions{ + Name: "etcd-server-cert", + }, Etcd: kubeadmapi.Etcd{ Local: &kubeadmapi.LocalEtcd{ ServerCertSANs: []string{ diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go index e8da9462a226..e1d456b395fa 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go @@ -312,7 +312,7 @@ func GetAPIServerAltNames(cfg *kubeadmapi.MasterConfiguration) (*certutil.AltNam func GetEtcdAltNames(cfg *kubeadmapi.MasterConfiguration) (*certutil.AltNames, error) { // create AltNames with defaults DNSNames/IPs altNames := &certutil.AltNames{ - DNSNames: []string{"localhost"}, + DNSNames: []string{cfg.NodeRegistration.Name, "localhost"}, IPs: []net.IP{net.IPv4(127, 0, 0, 1), net.IPv6loopback}, } @@ -336,8 +336,8 @@ func GetEtcdPeerAltNames(cfg *kubeadmapi.MasterConfiguration) (*certutil.AltName // create AltNames with defaults DNSNames/IPs altNames := &certutil.AltNames{ - DNSNames: []string{cfg.NodeRegistration.Name}, - IPs: []net.IP{advertiseAddress}, + DNSNames: []string{cfg.NodeRegistration.Name, "localhost"}, + IPs: []net.IP{advertiseAddress, net.IPv4(127, 0, 0, 1), net.IPv6loopback}, } if cfg.Etcd.Local != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go index 80000dabe1ce..5240d3357487 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go @@ -77,18 +77,22 @@ func GetEtcdPodSpec(cfg *kubeadmapi.MasterConfiguration) v1.Pod { // getEtcdCommand builds the right etcd command from the given config object func getEtcdCommand(cfg *kubeadmapi.MasterConfiguration) []string { defaultArguments := map[string]string{ - "listen-client-urls": "https://127.0.0.1:2379", - "advertise-client-urls": "https://127.0.0.1:2379", - "data-dir": cfg.Etcd.Local.DataDir, - "cert-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdServerCertName), - "key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdServerKeyName), - "trusted-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdCACertName), - "client-cert-auth": "true", - "peer-cert-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdPeerCertName), - "peer-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdPeerKeyName), - "peer-trusted-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdCACertName), - "peer-client-cert-auth": "true", - "snapshot-count": "10000", + "name": cfg.GetNodeName(), + "listen-client-urls": "https://127.0.0.1:2379", + "advertise-client-urls": "https://127.0.0.1:2379", + "listen-peer-urls": "https://127.0.0.1:2380", + "initial-advertise-peer-urls": "https://127.0.0.1:2380", + "data-dir": cfg.Etcd.Local.DataDir, + "cert-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdServerCertName), + "key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdServerKeyName), + "trusted-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdCACertName), + "client-cert-auth": "true", + "peer-cert-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdPeerCertName), + "peer-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdPeerKeyName), + "peer-trusted-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.EtcdCACertName), + "peer-client-cert-auth": "true", + "snapshot-count": "10000", + "initial-cluster": fmt.Sprintf("%s=https://127.0.0.1:2380", cfg.GetNodeName()), } command := []string{"etcd"} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local_test.go index 7c884abc53b7..83f5f45ad411 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local_test.go @@ -87,12 +87,22 @@ func TestGetEtcdCommand(t *testing.T) { }{ { cfg: &kubeadmapi.MasterConfiguration{ - Etcd: kubeadmapi.Etcd{Local: &kubeadmapi.LocalEtcd{DataDir: "/var/lib/etcd"}}, + NodeRegistration: kubeadmapi.NodeRegistrationOptions{ + Name: "foo", + }, + Etcd: kubeadmapi.Etcd{ + Local: &kubeadmapi.LocalEtcd{ + DataDir: "/var/lib/etcd", + }, + }, }, expected: []string{ "etcd", + "--name=foo", "--listen-client-urls=https://127.0.0.1:2379", "--advertise-client-urls=https://127.0.0.1:2379", + "--listen-peer-urls=https://127.0.0.1:2380", + "--initial-advertise-peer-urls=https://127.0.0.1:2380", "--data-dir=/var/lib/etcd", "--cert-file=" + kubeadmconstants.EtcdServerCertName, "--key-file=" + kubeadmconstants.EtcdServerKeyName, @@ -103,10 +113,14 @@ func TestGetEtcdCommand(t *testing.T) { "--peer-trusted-ca-file=" + kubeadmconstants.EtcdCACertName, "--snapshot-count=10000", "--peer-client-cert-auth=true", + "--initial-cluster=foo=https://127.0.0.1:2380", }, }, { cfg: &kubeadmapi.MasterConfiguration{ + NodeRegistration: kubeadmapi.NodeRegistrationOptions{ + Name: "bar", + }, Etcd: kubeadmapi.Etcd{ Local: &kubeadmapi.LocalEtcd{ DataDir: "/var/lib/etcd", @@ -119,8 +133,11 @@ func TestGetEtcdCommand(t *testing.T) { }, expected: []string{ "etcd", + "--name=bar", "--listen-client-urls=https://10.0.1.10:2379", "--advertise-client-urls=https://10.0.1.10:2379", + "--listen-peer-urls=https://127.0.0.1:2380", + "--initial-advertise-peer-urls=https://127.0.0.1:2380", "--data-dir=/var/lib/etcd", "--cert-file=" + kubeadmconstants.EtcdServerCertName, "--key-file=" + kubeadmconstants.EtcdServerKeyName, @@ -131,16 +148,27 @@ func TestGetEtcdCommand(t *testing.T) { "--peer-trusted-ca-file=" + kubeadmconstants.EtcdCACertName, "--snapshot-count=10000", "--peer-client-cert-auth=true", + "--initial-cluster=bar=https://127.0.0.1:2380", }, }, { cfg: &kubeadmapi.MasterConfiguration{ - Etcd: kubeadmapi.Etcd{Local: &kubeadmapi.LocalEtcd{DataDir: "/etc/foo"}}, + NodeRegistration: kubeadmapi.NodeRegistrationOptions{ + Name: "wombat", + }, + Etcd: kubeadmapi.Etcd{ + Local: &kubeadmapi.LocalEtcd{ + DataDir: "/etc/foo", + }, + }, }, expected: []string{ "etcd", + "--name=wombat", "--listen-client-urls=https://127.0.0.1:2379", "--advertise-client-urls=https://127.0.0.1:2379", + "--listen-peer-urls=https://127.0.0.1:2380", + "--initial-advertise-peer-urls=https://127.0.0.1:2380", "--data-dir=/etc/foo", "--cert-file=" + kubeadmconstants.EtcdServerCertName, "--key-file=" + kubeadmconstants.EtcdServerKeyName, @@ -151,6 +179,7 @@ func TestGetEtcdCommand(t *testing.T) { "--peer-trusted-ca-file=" + kubeadmconstants.EtcdCACertName, "--snapshot-count=10000", "--peer-client-cert-auth=true", + "--initial-cluster=wombat=https://127.0.0.1:2380", }, }, } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/BUILD index 171771d880cd..ef5848e5a9ee 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/BUILD @@ -25,6 +25,7 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/config.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/config.go index 723f92a69db9..2f09b5347be8 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/config.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet/config.go @@ -19,10 +19,12 @@ package kubelet import ( "fmt" "io/ioutil" + "os" "path/filepath" "k8s.io/api/core/v1" rbac "k8s.io/api/rbac/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" @@ -129,6 +131,11 @@ func DownloadConfig(client clientset.Interface, kubeletVersion *version.Version, configMapName, metav1.NamespaceSystem) kubeletCfg, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(configMapName, metav1.GetOptions{}) + // If the ConfigMap wasn't found and the kubelet version is v1.10.x, where we didn't support the config file yet + // just return, don't error out + if apierrors.IsNotFound(err) && kubeletVersion.Minor() == 10 { + return nil + } if err != nil { return err } @@ -161,6 +168,11 @@ func writeConfigBytesToDisk(b []byte, kubeletDir string) error { configFile := filepath.Join(kubeletDir, kubeadmconstants.KubeletConfigurationFileName) fmt.Printf("[kubelet] Writing kubelet configuration to file %q\n", configFile) + // creates target folder if not already exists + if err := os.MkdirAll(kubeletDir, 0700); err != nil { + return fmt.Errorf("failed to create directory %q: %v", kubeletDir, err) + } + if err := ioutil.WriteFile(configFile, b, 0644); err != nil { return fmt.Errorf("failed to write kubelet configuration to the file %q: %v", configFile, err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster.go index c9d36989fece..1119708403fb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster.go @@ -43,8 +43,24 @@ func MarkMaster(client clientset.Interface, masterName string, taints []v1.Taint }) } +func taintExists(taint v1.Taint, taints []v1.Taint) bool { + for _, t := range taints { + if t == taint { + return true + } + } + + return false +} + func markMasterNode(n *v1.Node, taints []v1.Taint) { n.ObjectMeta.Labels[constants.LabelNodeRoleMaster] = "" - // TODO: Append taints, don't override? + + for _, nt := range n.Spec.Taints { + if !taintExists(nt, taints) { + taints = append(taints, nt) + } + } + n.Spec.Taints = taints } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster_test.go index 48b421cdbf7d..c8f937abd56d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster/markmaster_test.go @@ -82,11 +82,28 @@ func TestMarkMaster(t *testing.T) { "{}", }, { - "nothing missing but taint unwanted", + "has taint and no new taints wanted", kubeadmconstants.LabelNodeRoleMaster, - []v1.Taint{kubeadmconstants.MasterTaint}, + []v1.Taint{ + { + Key: "node.cloudprovider.kubernetes.io/uninitialized", + Effect: v1.TaintEffectNoSchedule, + }, + }, nil, - "{\"spec\":{\"taints\":null}}", + "{}", + }, + { + "has taint and should merge with wanted taint", + kubeadmconstants.LabelNodeRoleMaster, + []v1.Taint{ + { + Key: "node.cloudprovider.kubernetes.io/uninitialized", + Effect: v1.TaintEffectNoSchedule, + }, + }, + []v1.Taint{kubeadmconstants.MasterTaint}, + "{\"spec\":{\"taints\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"},{\"effect\":\"NoSchedule\",\"key\":\"node.cloudprovider.kubernetes.io/uninitialized\"}]}}", }, } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD index 7f8d4efac9ec..81a36153a824 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD @@ -28,6 +28,7 @@ go_library( "//cmd/kubeadm/app/phases/controlplane:go_default_library", "//cmd/kubeadm/app/phases/etcd:go_default_library", "//cmd/kubeadm/app/phases/kubelet:go_default_library", + "//cmd/kubeadm/app/phases/patchnode:go_default_library", "//cmd/kubeadm/app/phases/selfhosting:go_default_library", "//cmd/kubeadm/app/phases/uploadconfig:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go index 47a20ef70cb7..15a0b2f5ca6b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go @@ -18,6 +18,7 @@ package upgrade import ( "fmt" + "io/ioutil" "os" "path/filepath" "time" @@ -37,6 +38,7 @@ import ( nodebootstraptoken "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" kubeletphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet" + patchnodephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/patchnode" "k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting" "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" @@ -58,6 +60,23 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterC errs = append(errs, err) } + // Create the new, version-branched kubelet ComponentConfig ConfigMap + if err := kubeletphase.CreateConfigMap(cfg, client); err != nil { + errs = append(errs, fmt.Errorf("error creating kubelet configuration ConfigMap: %v", err)) + } + + // Write the new kubelet config down to disk and the env file if needed + if err := writeKubeletConfigFiles(client, cfg, newK8sVer, dryRun); err != nil { + errs = append(errs, err) + } + + // Annotate the node with the crisocket information, sourced either from the MasterConfiguration struct or + // --cri-socket. + // TODO: In the future we want to use something more official like NodeStatus or similar for detecting this properly + if err := patchnodephase.AnnotateCRISocket(client, cfg.NodeRegistration.Name, cfg.NodeRegistration.CRISocket); err != nil { + errs = append(errs, fmt.Errorf("error uploading crisocket: %v", err)) + } + // Create/update RBAC rules that makes the bootstrap tokens able to post CSRs if err := nodebootstraptoken.AllowBootstrapTokensToPostCSRs(client); err != nil { errs = append(errs, err) @@ -88,24 +107,9 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterC errs = append(errs, err) } - certAndKeyDir := kubeadmapiv1alpha2.DefaultCertificatesDir - shouldBackup, err := shouldBackupAPIServerCertAndKey(certAndKeyDir) - // Don't fail the upgrade phase if failing to determine to backup kube-apiserver cert and key. - if err != nil { - fmt.Printf("[postupgrade] WARNING: failed to determine to backup kube-apiserver cert and key: %v", err) - } else if shouldBackup { - // Don't fail the upgrade phase if failing to backup kube-apiserver cert and key. - if err := backupAPIServerCertAndKey(certAndKeyDir); err != nil { - fmt.Printf("[postupgrade] WARNING: failed to backup kube-apiserver cert and key: %v", err) - } - if err := certsphase.CreateAPIServerCertAndKeyFiles(cfg); err != nil { - errs = append(errs, err) - } - } - - // Create the new, version-branched kubelet ComponentConfig ConfigMap - if err := kubeletphase.CreateConfigMap(cfg, client); err != nil { - errs = append(errs, fmt.Errorf("error creating kubelet configuration ConfigMap: %v", err)) + // Rotate the kube-apiserver cert and key if needed + if err := backupAPIServerCertIfNeeded(cfg, dryRun); err != nil { + errs = append(errs, err) } // Upgrade kube-dns/CoreDNS and kube-proxy @@ -113,10 +117,8 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterC errs = append(errs, err) } // Remove the old DNS deployment if a new DNS service is now used (kube-dns to CoreDNS or vice versa) - if !dryRun { - if err := removeOldDNSDeploymentIfAnotherDNSIsUsed(cfg, client); err != nil { - errs = append(errs, err) - } + if err := removeOldDNSDeploymentIfAnotherDNSIsUsed(cfg, client, dryRun); err != nil { + errs = append(errs, err) } if err := proxy.EnsureProxyAddon(cfg, client); err != nil { @@ -125,7 +127,7 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterC return errors.NewAggregate(errs) } -func removeOldDNSDeploymentIfAnotherDNSIsUsed(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface) error { +func removeOldDNSDeploymentIfAnotherDNSIsUsed(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface, dryRun bool) error { return apiclient.TryRunCommand(func() error { installedDeploymentName := kubeadmconstants.KubeDNS deploymentToDelete := kubeadmconstants.CoreDNS @@ -134,14 +136,21 @@ func removeOldDNSDeploymentIfAnotherDNSIsUsed(cfg *kubeadmapi.MasterConfiguratio installedDeploymentName = kubeadmconstants.CoreDNS deploymentToDelete = kubeadmconstants.KubeDNS } - dnsDeployment, err := client.AppsV1().Deployments(metav1.NamespaceSystem).Get(installedDeploymentName, metav1.GetOptions{}) - if err != nil { - return err - } - if dnsDeployment.Status.ReadyReplicas == 0 { - return fmt.Errorf("the DNS deployment isn't ready yet") + + // If we're dry-running, we don't need to wait for the new DNS addon to become ready + if !dryRun { + dnsDeployment, err := client.AppsV1().Deployments(metav1.NamespaceSystem).Get(installedDeploymentName, metav1.GetOptions{}) + if err != nil { + return err + } + if dnsDeployment.Status.ReadyReplicas == 0 { + return fmt.Errorf("the DNS deployment isn't ready yet") + } } - err = apiclient.DeleteDeploymentForeground(client, metav1.NamespaceSystem, deploymentToDelete) + + // We don't want to wait for the DNS deployment above to become ready when dryrunning (as it never will) + // but here we should execute the DELETE command against the dryrun clientset, as it will only be logged + err := apiclient.DeleteDeploymentForeground(client, metav1.NamespaceSystem, deploymentToDelete) if err != nil && !apierrors.IsNotFound(err) { return err } @@ -163,6 +172,69 @@ func upgradeToSelfHosting(client clientset.Interface, cfg *kubeadmapi.MasterConf return nil } +func backupAPIServerCertIfNeeded(cfg *kubeadmapi.MasterConfiguration, dryRun bool) error { + certAndKeyDir := kubeadmapiv1alpha2.DefaultCertificatesDir + shouldBackup, err := shouldBackupAPIServerCertAndKey(certAndKeyDir) + if err != nil { + // Don't fail the upgrade phase if failing to determine to backup kube-apiserver cert and key. + return fmt.Errorf("[postupgrade] WARNING: failed to determine to backup kube-apiserver cert and key: %v", err) + } + + if !shouldBackup { + return nil + } + + // If dry-running, just say that this would happen to the user and exit + if dryRun { + fmt.Println("[postupgrade] Would rotate the API server certificate and key.") + return nil + } + + // Don't fail the upgrade phase if failing to backup kube-apiserver cert and key, just continue rotating the cert + // TODO: We might want to reconsider this choice. + if err := backupAPIServerCertAndKey(certAndKeyDir); err != nil { + fmt.Printf("[postupgrade] WARNING: failed to backup kube-apiserver cert and key: %v", err) + } + return certsphase.CreateAPIServerCertAndKeyFiles(cfg) +} + +func writeKubeletConfigFiles(client clientset.Interface, cfg *kubeadmapi.MasterConfiguration, newK8sVer *version.Version, dryRun bool) error { + kubeletDir, err := getKubeletDir(dryRun) + if err != nil { + // The error here should never occur in reality, would only be thrown if /tmp doesn't exist on the machine. + return err + } + errs := []error{} + // Write the configuration for the kubelet down to disk so the upgraded kubelet can start with fresh config + if err := kubeletphase.DownloadConfig(client, newK8sVer, kubeletDir); err != nil { + // Tolerate the error being NotFound when dryrunning, as there is a pretty common scenario: the dryrun process + // *would* post the new kubelet-config-1.X configmap that doesn't exist now when we're trying to download it + // again. + if !(apierrors.IsNotFound(err) && dryRun) { + errs = append(errs, fmt.Errorf("error downloading kubelet configuration from the ConfigMap: %v", err)) + } + } + + if dryRun { // Print what contents would be written + dryrunutil.PrintDryRunFile(kubeadmconstants.KubeletConfigurationFileName, kubeletDir, kubeadmconstants.KubeletRunDirectory, os.Stdout) + } + + envFilePath := filepath.Join(kubeadmconstants.KubeletRunDirectory, kubeadmconstants.KubeletEnvFileName) + if _, err := os.Stat(envFilePath); os.IsNotExist(err) { + // Write env file with flags for the kubelet to use. We do not need to write the --register-with-taints for the master, + // as we handle that ourselves in the markmaster phase + // TODO: Maybe we want to do that some time in the future, in order to remove some logic from the markmaster phase? + if err := kubeletphase.WriteKubeletDynamicEnvFile(&cfg.NodeRegistration, cfg.FeatureGates, false, kubeletDir); err != nil { + errs = append(errs, fmt.Errorf("error writing a dynamic environment file for the kubelet: %v", err)) + } + + if dryRun { // Print what contents would be written + dryrunutil.PrintDryRunFile(kubeadmconstants.KubeletEnvFileName, kubeletDir, kubeadmconstants.KubeletRunDirectory, os.Stdout) + } + } + return errors.NewAggregate(errs) +} + // getWaiter gets the right waiter implementation for the right occasion // TODO: Consolidate this with what's in init.go? func getWaiter(dryRun bool, client clientset.Interface) apiclient.Waiter { @@ -172,6 +244,15 @@ func getWaiter(dryRun bool, client clientset.Interface) apiclient.Waiter { return apiclient.NewKubeWaiter(client, 30*time.Minute, os.Stdout) } +// getKubeletDir gets the kubelet directory based on whether the user is dry-running this command or not. +// TODO: Consolidate this with similar funcs? +func getKubeletDir(dryRun bool) (string, error) { + if dryRun { + return ioutil.TempDir("", "kubeadm-upgrade-dryrun") + } + return kubeadmconstants.KubeletRunDirectory, nil +} + // backupAPIServerCertAndKey backups the old cert and key of kube-apiserver to a specified directory. func backupAPIServerCertAndKey(certAndKeyDir string) error { subDir := filepath.Join(certAndKeyDir, "expired") diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go index f8b85d89c590..9a4fe92f9ae8 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go @@ -210,10 +210,7 @@ func (spm *fakeStaticPodPathManager) CleanupDirs() error { if err := os.RemoveAll(spm.BackupManifestDir()); err != nil { return err } - if err := os.RemoveAll(spm.BackupEtcdDir()); err != nil { - return err - } - return nil + return os.RemoveAll(spm.BackupEtcdDir()) } type fakeTLSEtcdClient struct{ TLS bool } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go index accaff0904e5..327f4f9e2b40 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go @@ -72,6 +72,10 @@ func TestUploadConfiguration(t *testing.T) { }, }, }, + NodeRegistration: kubeadmapi.NodeRegistrationOptions{ + Name: "node-foo", + CRISocket: "/var/run/custom-cri.sock", + }, } client := clientsetfake.NewSimpleClientset() if tt.errOnCreate != nil { @@ -122,6 +126,11 @@ func TestUploadConfiguration(t *testing.T) { t.Errorf("Decoded value contains .BootstrapTokens (sensitive info), decoded = %#v, expected = empty", decodedCfg.BootstrapTokens) } + // Make sure no information from NodeRegistrationOptions was uploaded. + if decodedCfg.NodeRegistration.Name == cfg.NodeRegistration.Name || decodedCfg.NodeRegistration.CRISocket != kubeadmapiv1alpha2.DefaultCRISocket { + t.Errorf("Decoded value contains .NodeRegistration (node-specific info shouldn't be uploaded), decoded = %#v, expected = empty", decodedCfg.NodeRegistration) + } + if decodedExtCfg.Kind != "MasterConfiguration" { t.Errorf("Expected kind MasterConfiguration, got %v", decodedExtCfg.Kind) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD index 93d117e21b70..aae4c5d45d0e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD @@ -53,7 +53,6 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/images:go_default_library", - "//pkg/apis/core/validation:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", "//pkg/util/initsystem:go_default_library", "//pkg/util/ipvs:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go index 6b26e73b6731..28d98e6ebbbe 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go @@ -19,6 +19,8 @@ package preflight import ( "bufio" "bytes" + "crypto/tls" + "crypto/x509" "encoding/json" "errors" "fmt" @@ -26,28 +28,23 @@ import ( "io/ioutil" "net" "net/http" + "net/url" "os" "path/filepath" "runtime" "strings" "time" - "crypto/tls" - "crypto/x509" - "github.com/PuerkitoBio/purell" "github.com/blang/semver" "github.com/golang/glog" - "net/url" - netutil "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmdefaults "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/images" - "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/util/initsystem" ipvsutil "k8s.io/kubernetes/pkg/util/ipvs" @@ -411,12 +408,9 @@ func (HostnameCheck) Name() string { // Check validates if hostname match dns sub domain regex. func (hc HostnameCheck) Check() (warnings, errors []error) { - glog.V(1).Infof("validating if hostname match dns sub domain") + glog.V(1).Infof("checking whether the given node name is reachable using net.LookupHost") errors = []error{} warnings = []error{} - for _, msg := range validation.ValidateNodeName(hc.nodeName, false) { - errors = append(errors, fmt.Errorf("hostname \"%s\" %s", hc.nodeName, msg)) - } addr, err := net.LookupHost(hc.nodeName) if addr == nil { warnings = append(warnings, fmt.Errorf("hostname \"%s\" could not be reached", hc.nodeName)) @@ -843,6 +837,7 @@ func (ImagePullCheck) Name() string { // Check pulls images required by kubeadm. This is a mutating check func (i ImagePullCheck) Check() (warnings, errors []error) { for _, image := range i.ImageList { + glog.V(1).Infoln("pulling ", image) if err := i.Images.Exists(image); err == nil { continue } @@ -975,6 +970,7 @@ func addCommonChecks(execer utilsexec.Interface, cfg kubeadmapi.CommonConfigurat FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, FileContentCheck{Path: ipv4Forward, Content: []byte{'1'}}, SwapCheck{}, + InPathCheck{executable: "crictl", mandatory: true, exec: execer}, InPathCheck{executable: "ip", mandatory: true, exec: execer}, InPathCheck{executable: "iptables", mandatory: true, exec: execer}, InPathCheck{executable: "mount", mandatory: true, exec: execer}, @@ -1056,10 +1052,8 @@ func RunChecks(checks []Checker, ww io.Writer, ignorePreflightErrors sets.String } // TryStartKubelet attempts to bring up kubelet service -func TryStartKubelet(ignorePreflightErrors sets.String) { - if setHasItemOrAll(ignorePreflightErrors, "StartKubelet") { - return - } +// TODO: Move these kubelet start/stop functions to some other place, e.g. phases/kubelet +func TryStartKubelet() { // If we notice that the kubelet service is inactive, try to start it initSystem, err := initsystem.GetInitSystem() if err != nil { @@ -1080,10 +1074,7 @@ func TryStartKubelet(ignorePreflightErrors sets.String) { } // TryStopKubelet attempts to bring down the kubelet service momentarily -func TryStopKubelet(ignorePreflightErrors sets.String) { - if setHasItemOrAll(ignorePreflightErrors, "StopKubelet") { - return - } +func TryStopKubelet() { // If we notice that the kubelet service is inactive, try to start it initSystem, err := initsystem.GetInitSystem() if err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go index 34b20dc38d9f..3841a715fce2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go @@ -20,6 +20,7 @@ import ( "encoding/json" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/dynamic" @@ -72,6 +73,8 @@ func NewClientBackedDryRunGetterFromKubeconfig(file string) (*ClientBackedDryRun // HandleGetAction handles GET actions to the dryrun clientset this interface supports func (clg *ClientBackedDryRunGetter) HandleGetAction(action core.GetAction) (bool, runtime.Object, error) { unstructuredObj, err := clg.dynamicClient.Resource(action.GetResource()).Namespace(action.GetNamespace()).Get(action.GetName(), metav1.GetOptions{}) + // Inform the user that the requested object wasn't found. + printIfNotExists(err) if err != nil { return true, nil, err } @@ -120,3 +123,9 @@ func decodeUnstructuredIntoAPIObject(action core.Action, unstructuredObj runtime } return newObj, nil } + +func printIfNotExists(err error) { + if apierrors.IsNotFound(err) { + fmt.Println("[dryrun] The GET request didn't yield any result, the API Server returned a NotFound error.") + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/init_dryrun.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/init_dryrun.go index 875ff3f6aee1..f4da31f8c3cf 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/init_dryrun.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/init_dryrun.go @@ -61,7 +61,6 @@ func (idr *InitDryRunGetter) HandleGetAction(action core.GetAction) (bool, runti idr.handleGetNode, idr.handleSystemNodesClusterRoleBinding, idr.handleGetBootstrapToken, - idr.handleGetKubeDNSConfigMap, } for _, f := range funcs { handled, obj, err := f(action) @@ -133,6 +132,7 @@ func (idr *InitDryRunGetter) handleGetNode(action core.GetAction) (bool, runtime Labels: map[string]string{ "kubernetes.io/hostname": idr.masterName, }, + Annotations: map[string]string{}, }, }, nil } @@ -158,20 +158,3 @@ func (idr *InitDryRunGetter) handleGetBootstrapToken(action core.GetAction) (boo // We can safely return a NotFound error here as the code will just proceed normally and create the Bootstrap Token return true, nil, apierrors.NewNotFound(action.GetResource().GroupResource(), "secret not found") } - -// handleGetKubeDNSConfigMap handles the case where kubeadm init will try to read the kube-dns ConfigMap in the cluster -// in order to transform information there to core-dns configuration. We can safely return an empty configmap here -func (idr *InitDryRunGetter) handleGetKubeDNSConfigMap(action core.GetAction) (bool, runtime.Object, error) { - if !strings.HasPrefix(action.GetName(), "kube-dns") || action.GetNamespace() != metav1.NamespaceSystem || action.GetResource().Resource != "configmaps" { - // We can't handle this event - return false, nil, nil - } - // We can safely return an empty configmap here, as we don't have any kube-dns specific config to convert to coredns config - return true, &v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: "kube-dns", - Namespace: metav1.NamespaceSystem, - }, - Data: map[string]string{}, - }, nil -} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml index 9996fa33f24e..3364c14fd6e7 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml @@ -64,7 +64,7 @@ KubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml index 75f36c4279f3..1ad3415af1dd 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml @@ -53,7 +53,7 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml index e8065236caef..dfaccd795345 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml @@ -50,7 +50,7 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml index c83e9bc1471b..f8af262b3fba 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml @@ -54,7 +54,7 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted.yaml index 693080ec2d63..70ea5986e111 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted.yaml @@ -49,7 +49,7 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml index 045df0ad360e..a08a94a5402b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml @@ -49,7 +49,7 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: - ExcludeCIDRs: null + excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun/dryrun.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun/dryrun.go index 0dcdb6ccb555..7c18df0672a3 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun/dryrun.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun/dryrun.go @@ -20,6 +20,7 @@ import ( "fmt" "io" "io/ioutil" + "path/filepath" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -43,6 +44,13 @@ func NewFileToPrint(realPath, printPath string) FileToPrint { } } +// PrintDryRunFile is a helper method around PrintDryRunFiles +func PrintDryRunFile(fileName, realDir, printDir string, w io.Writer) error { + return PrintDryRunFiles([]FileToPrint{ + NewFileToPrint(filepath.Join(realDir, fileName), filepath.Join(printDir, fileName)), + }, w) +} + // PrintDryRunFiles prints the contents of the FileToPrints given to it to the writer w func PrintDryRunFiles(files []FileToPrint, w io.Writer) error { errs := []error{} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/test/util.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/test/util.go index cb7ae225a686..afe20702cd0d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/test/util.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/test/util.go @@ -61,6 +61,7 @@ func SetupMasterConfigurationFile(t *testing.T, tmpdir string, cfg *kubeadmapi.M bindPort: {{.API.BindPort}} nodeRegistration: name: {{.NodeRegistration.Name}} + kubernetesVersion: v1.10.0 `))) f, err := os.Create(cfgPath) diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go index 8d98135254e7..be724911ec06 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go @@ -195,8 +195,6 @@ type KubeletFlags struct { // This flag, if set, instructs the kubelet to keep volumes from terminated pods mounted to the node. // This can be useful for debugging volume related issues. KeepTerminatedPodVolumes bool - // enable gathering custom metrics. - EnableCustomMetrics bool // allowPrivileged enables containers to request privileged mode. // Defaults to true. AllowPrivileged bool @@ -234,15 +232,13 @@ func NewKubeletFlags() *KubeletFlags { RegisterSchedulable: true, ExperimentalKernelMemcgNotification: false, RemoteRuntimeEndpoint: remoteRuntimeEndpoint, - // TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated. - EnableCustomMetrics: false, - NodeLabels: make(map[string]string), - VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", - RegisterNode: true, - SeccompProfileRoot: filepath.Join(defaultRootDir, "seccomp"), - HostNetworkSources: []string{kubetypes.AllSource}, - HostPIDSources: []string{kubetypes.AllSource}, - HostIPCSources: []string{kubetypes.AllSource}, + NodeLabels: make(map[string]string), + VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", + RegisterNode: true, + SeccompProfileRoot: filepath.Join(defaultRootDir, "seccomp"), + HostNetworkSources: []string{kubetypes.AllSource}, + HostPIDSources: []string{kubetypes.AllSource}, + HostIPCSources: []string{kubetypes.AllSource}, // TODO(#56523:v1.12.0): Remove --cadvisor-port, it has been deprecated since v1.10 CAdvisorPort: 0, // TODO(#58010:v1.13.0): Remove --allow-privileged, it is deprecated @@ -421,9 +417,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) { fs.MarkDeprecated("non-masquerade-cidr", "will be removed in a future version") fs.BoolVar(&f.KeepTerminatedPodVolumes, "keep-terminated-pod-volumes", f.KeepTerminatedPodVolumes, "Keep terminated pod volumes mounted to the node after the pod terminates. Can be useful for debugging volume related issues.") fs.MarkDeprecated("keep-terminated-pod-volumes", "will be removed in a future version") - // TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated. - fs.BoolVar(&f.EnableCustomMetrics, "enable-custom-metrics", f.EnableCustomMetrics, "Support for gathering custom metrics.") - fs.MarkDeprecated("enable-custom-metrics", "will be removed in a future version") // TODO(#58010:v1.13.0): Remove --allow-privileged, it is deprecated fs.BoolVar(&f.AllowPrivileged, "allow-privileged", f.AllowPrivileged, "If true, allow containers to request privileged mode. Default: true") fs.MarkDeprecated("allow-privileged", "will be removed in a future version") diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh index ff34c4088eaa..91f08751d679 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh @@ -1781,12 +1781,49 @@ __EOF__ # Post-Condition: assertion crd with non-matching kind and resource exists kube::test::get_object_assert customresourcedefinitions "{{range.items}}{{$id_field}}:{{end}}" 'bars.company.com:foos.company.com:resources.mygroup.example.com:' + # This test ensures that we can create complex validation without client-side validation complaining + kubectl "${kube_flags_with_token[@]}" create -f - << __EOF__ +{ + "kind": "CustomResourceDefinition", + "apiVersion": "apiextensions.k8s.io/v1beta1", + "metadata": { + "name": "validfoos.company.com" + }, + "spec": { + "group": "company.com", + "version": "v1", + "scope": "Namespaced", + "names": { + "plural": "validfoos", + "kind": "ValidFoo" + }, + "validation": { + "openAPIV3Schema": { + "properties": { + "spec": { + "type": "array", + "items": { + "type": "number" + } + } + } + } + } + } +} +__EOF__ + + # Post-Condition: assertion crd with non-matching kind and resource exists + kube::test::get_object_assert customresourcedefinitions "{{range.items}}{{$id_field}}:{{end}}" 'bars.company.com:foos.company.com:resources.mygroup.example.com:validfoos.company.com:' + run_non_native_resource_tests # teardown kubectl delete customresourcedefinitions/foos.company.com "${kube_flags_with_token[@]}" kubectl delete customresourcedefinitions/bars.company.com "${kube_flags_with_token[@]}" - + kubectl delete customresourcedefinitions/resources.mygroup.example.com "${kube_flags_with_token[@]}" + kubectl delete customresourcedefinitions/validfoos.company.com "${kube_flags_with_token[@]}" + set +o nounset set +o errexit } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD index 5b7ba9b52a3c..677c51b6df83 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD @@ -96,6 +96,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go index e02fcfff17d7..cccccedb8c08 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go @@ -19,12 +19,13 @@ package testing import ( "bytes" "encoding/hex" + "encoding/json" "io/ioutil" "math/rand" "reflect" "testing" - "github.com/ugorji/go/codec" + jsoniter "github.com/json-iterator/go" "k8s.io/api/core/v1" "k8s.io/api/extensions/v1beta1" @@ -36,10 +37,9 @@ import ( "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - serializerjson "k8s.io/apimachinery/pkg/runtime/serializer/json" + k8s_json "k8s.io/apimachinery/pkg/runtime/serializer/json" "k8s.io/apimachinery/pkg/runtime/serializer/streaming" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api/legacyscheme" @@ -551,13 +551,38 @@ func BenchmarkDecodeIntoJSONCodecGenConfigFast(b *testing.B) { encoded[i] = data } - handler := serializerjson.NewUgorjiHandler() + b.ResetTimer() + for i := 0; i < b.N; i++ { + obj := v1.Pod{} + if err := jsoniter.ConfigFastest.Unmarshal(encoded[i%width], &obj); err != nil { + b.Fatal(err) + } + } + b.StopTimer() +} + +// BenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary provides a +// baseline for JSON decode performance with +// jsoniter.ConfigCompatibleWithStandardLibrary, but with case sensitivity set +// to true +func BenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary(b *testing.B) { + kcodec := testapi.Default.Codec() + items := benchmarkItems(b) + width := len(items) + encoded := make([][]byte, width) + for i := range items { + data, err := runtime.Encode(kcodec, &items[i]) + if err != nil { + b.Fatal(err) + } + encoded[i] = data + } b.ResetTimer() + iter := k8s_json.CaseSensitiveJsonIterator() for i := 0; i < b.N; i++ { obj := v1.Pod{} - // if err := jsoniter.ConfigFastest.Unmarshal(encoded[i%width], &obj); err != nil { - if err := codec.NewDecoderBytes(encoded[i%width], handler).Decode(&obj); err != nil { + if err := iter.Unmarshal(encoded[i%width], &obj); err != nil { b.Fatal(err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go index f0319577b4ae..5489742db90a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go @@ -420,210 +420,3 @@ type HorizontalPodAutoscalerList struct { // Items is the list of horizontal pod autoscaler objects. Items []HorizontalPodAutoscaler } - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects. -type VerticalPodAutoscalerList struct { - metav1.TypeMeta - // metadata is the standard list metadata. - // +optional - metav1.ListMeta - - // items is the list of vertical pod autoscaler objects. - Items []VerticalPodAutoscaler -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// VerticalPodAutoscaler is the configuration for a vertical pod -// autoscaler, which automatically manages pod resources based on historical and -// real time resource utilization. -type VerticalPodAutoscaler struct { - metav1.TypeMeta - // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - metav1.ObjectMeta - - // Specification of the behavior of the autoscaler. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - Spec VerticalPodAutoscalerSpec - - // Current information about the autoscaler. - // +optional - Status VerticalPodAutoscalerStatus -} - -// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. -type VerticalPodAutoscalerSpec struct { - // A label query that determines the set of pods controlled by the Autoscaler. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - Selector *metav1.LabelSelector - - // Describes the rules on how changes are applied to the pods. - // If not specified, all fields in the `PodUpdatePolicy` are set to their - // default values. - // +optional - UpdatePolicy *PodUpdatePolicy - - // Controls how the autoscaler computes recommended resources. - // The resource policy may be used to set constraints on the recommendations - // for individual containers. If not specified, the autoscaler computes recommended - // resources for all containers in the pod, without additional constraints. - // +optional - ResourcePolicy *PodResourcePolicy -} - -// PodUpdatePolicy describes the rules on how changes are applied to the pods. -type PodUpdatePolicy struct { - // Controls when autoscaler applies changes to the pod resources. - // The default is 'Auto'. - // +optional - UpdateMode *UpdateMode -} - -// UpdateMode controls when autoscaler applies changes to the pod resoures. -type UpdateMode string - -const ( - // UpdateModeOff means that autoscaler never changes Pod resources. - // The recommender still sets the recommended resources in the - // VerticalPodAutoscaler object. This can be used for a "dry run". - UpdateModeOff UpdateMode = "Off" - // UpdateModeInitial means that autoscaler only assigns resources on pod - // creation and does not change them during the lifetime of the pod. - UpdateModeInitial UpdateMode = "Initial" - // UpdateModeRecreate means that autoscaler assigns resources on pod - // creation and additionally can update them during the lifetime of the - // pod by deleting and recreating the pod. - UpdateModeRecreate UpdateMode = "Recreate" - // UpdateModeAuto means that autoscaler assigns resources on pod creation - // and additionally can update them during the lifetime of the pod, - // using any available update method. Currently this is equivalent to - // Recreate, which is the only available update method. - UpdateModeAuto UpdateMode = "Auto" -) - -// PodResourcePolicy controls how autoscaler computes the recommended resources -// for containers belonging to the pod. There can be at most one entry for every -// named container and optionally a single wildcard entry with `containerName` = '*', -// which handles all containers that don't have individual policies. -type PodResourcePolicy struct { - // Per-container resource policies. - // +optional - // +patchMergeKey=containerName - // +patchStrategy=merge - ContainerPolicies []ContainerResourcePolicy -} - -// ContainerResourcePolicy controls how autoscaler computes the recommended -// resources for a specific container. -type ContainerResourcePolicy struct { - // Name of the container or DefaultContainerResourcePolicy, in which - // case the policy is used by the containers that don't have their own - // policy specified. - ContainerName string - // Whether autoscaler is enabled for the container. The default is "Auto". - // +optional - Mode *ContainerScalingMode - // Specifies the minimal amount of resources that will be recommended - // for the container. The default is no minimum. - // +optional - MinAllowed api.ResourceList - // Specifies the maximum amount of resources that will be recommended - // for the container. The default is no maximum. - // +optional - MaxAllowed api.ResourceList -} - -const ( - // DefaultContainerResourcePolicy can be passed as - // ContainerResourcePolicy.ContainerName to specify the default policy. - DefaultContainerResourcePolicy = "*" -) - -// ContainerScalingMode controls whether autoscaler is enabled for a specific -// container. -type ContainerScalingMode string - -const ( - // ContainerScalingModeAuto means autoscaling is enabled for a container. - ContainerScalingModeAuto ContainerScalingMode = "Auto" - // ContainerScalingModeOff means autoscaling is disabled for a container. - ContainerScalingModeOff ContainerScalingMode = "Off" -) - -// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. -type VerticalPodAutoscalerStatus struct { - // The most recently computed amount of resources recommended by the - // autoscaler for the controlled pods. - // +optional - Recommendation *RecommendedPodResources - - // Conditions is the set of conditions required for this autoscaler to scale its target, - // and indicates whether or not those conditions are met. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []VerticalPodAutoscalerCondition -} - -// RecommendedPodResources is the recommendation of resources computed by -// autoscaler. It contains a recommendation for each container in the pod -// (except for those with `ContainerScalingMode` set to 'Off'). -type RecommendedPodResources struct { - // Resources recommended by the autoscaler for each container. - // +optional - ContainerRecommendations []RecommendedContainerResources -} - -// RecommendedContainerResources is the recommendation of resources computed by -// autoscaler for a specific container. Respects the container resource policy -// if present in the spec. In particular the recommendation is not produced for -// containers with `ContainerScalingMode` set to 'Off'. -type RecommendedContainerResources struct { - // Name of the container. - ContainerName string - // Recommended amount of resources. - Target api.ResourceList - // Minimum recommended amount of resources. - // This amount is not guaranteed to be sufficient for the application to operate in a stable way, however - // running with less resources is likely to have significant impact on performance/availability. - // +optional - LowerBound api.ResourceList - // Maximum recommended amount of resources. - // Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum - // amount of application is actually capable of consuming. - // +optional - UpperBound api.ResourceList -} - -// VerticalPodAutoscalerConditionType are the valid conditions of -// a VerticalPodAutoscaler. -type VerticalPodAutoscalerConditionType string - -var ( - // RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation. - RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided" -) - -// VerticalPodAutoscalerCondition describes the state of -// a VerticalPodAutoscaler at a certain point. -type VerticalPodAutoscalerCondition struct { - // type describes the current condition - Type VerticalPodAutoscalerConditionType - // status is the status of the condition (True, False, Unknown) - Status api.ConditionStatus - // lastTransitionTime is the last time the condition transitioned from - // one status to another - // +optional - LastTransitionTime metav1.Time - // reason is the reason for the condition's last transition. - // +optional - Reason string - // message is a human-readable explanation containing details about - // the transition - // +optional - Message string -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD index 43270221edef..740638b00822 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/core:go_default_library", - "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go index 7a1f99fc7956..0b4cecc7f327 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go @@ -24,9 +24,9 @@ import ( unsafe "unsafe" v2beta1 "k8s.io/api/autoscaling/v2beta1" - v1 "k8s.io/api/core/v1" + core_v1 "k8s.io/api/core/v1" resource "k8s.io/apimachinery/pkg/api/resource" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" @@ -41,8 +41,6 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( - Convert_v2beta1_ContainerResourcePolicy_To_autoscaling_ContainerResourcePolicy, - Convert_autoscaling_ContainerResourcePolicy_To_v2beta1_ContainerResourcePolicy, Convert_v2beta1_CrossVersionObjectReference_To_autoscaling_CrossVersionObjectReference, Convert_autoscaling_CrossVersionObjectReference_To_v2beta1_CrossVersionObjectReference, Convert_v2beta1_ExternalMetricSource_To_autoscaling_ExternalMetricSource, @@ -67,61 +65,17 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_autoscaling_ObjectMetricSource_To_v2beta1_ObjectMetricSource, Convert_v2beta1_ObjectMetricStatus_To_autoscaling_ObjectMetricStatus, Convert_autoscaling_ObjectMetricStatus_To_v2beta1_ObjectMetricStatus, - Convert_v2beta1_PodResourcePolicy_To_autoscaling_PodResourcePolicy, - Convert_autoscaling_PodResourcePolicy_To_v2beta1_PodResourcePolicy, - Convert_v2beta1_PodUpdatePolicy_To_autoscaling_PodUpdatePolicy, - Convert_autoscaling_PodUpdatePolicy_To_v2beta1_PodUpdatePolicy, Convert_v2beta1_PodsMetricSource_To_autoscaling_PodsMetricSource, Convert_autoscaling_PodsMetricSource_To_v2beta1_PodsMetricSource, Convert_v2beta1_PodsMetricStatus_To_autoscaling_PodsMetricStatus, Convert_autoscaling_PodsMetricStatus_To_v2beta1_PodsMetricStatus, - Convert_v2beta1_RecommendedContainerResources_To_autoscaling_RecommendedContainerResources, - Convert_autoscaling_RecommendedContainerResources_To_v2beta1_RecommendedContainerResources, - Convert_v2beta1_RecommendedPodResources_To_autoscaling_RecommendedPodResources, - Convert_autoscaling_RecommendedPodResources_To_v2beta1_RecommendedPodResources, Convert_v2beta1_ResourceMetricSource_To_autoscaling_ResourceMetricSource, Convert_autoscaling_ResourceMetricSource_To_v2beta1_ResourceMetricSource, Convert_v2beta1_ResourceMetricStatus_To_autoscaling_ResourceMetricStatus, Convert_autoscaling_ResourceMetricStatus_To_v2beta1_ResourceMetricStatus, - Convert_v2beta1_VerticalPodAutoscaler_To_autoscaling_VerticalPodAutoscaler, - Convert_autoscaling_VerticalPodAutoscaler_To_v2beta1_VerticalPodAutoscaler, - Convert_v2beta1_VerticalPodAutoscalerCondition_To_autoscaling_VerticalPodAutoscalerCondition, - Convert_autoscaling_VerticalPodAutoscalerCondition_To_v2beta1_VerticalPodAutoscalerCondition, - Convert_v2beta1_VerticalPodAutoscalerList_To_autoscaling_VerticalPodAutoscalerList, - Convert_autoscaling_VerticalPodAutoscalerList_To_v2beta1_VerticalPodAutoscalerList, - Convert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec, - Convert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec, - Convert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus, - Convert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus, ) } -func autoConvert_v2beta1_ContainerResourcePolicy_To_autoscaling_ContainerResourcePolicy(in *v2beta1.ContainerResourcePolicy, out *autoscaling.ContainerResourcePolicy, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Mode = (*autoscaling.ContainerScalingMode)(unsafe.Pointer(in.Mode)) - out.MinAllowed = *(*core.ResourceList)(unsafe.Pointer(&in.MinAllowed)) - out.MaxAllowed = *(*core.ResourceList)(unsafe.Pointer(&in.MaxAllowed)) - return nil -} - -// Convert_v2beta1_ContainerResourcePolicy_To_autoscaling_ContainerResourcePolicy is an autogenerated conversion function. -func Convert_v2beta1_ContainerResourcePolicy_To_autoscaling_ContainerResourcePolicy(in *v2beta1.ContainerResourcePolicy, out *autoscaling.ContainerResourcePolicy, s conversion.Scope) error { - return autoConvert_v2beta1_ContainerResourcePolicy_To_autoscaling_ContainerResourcePolicy(in, out, s) -} - -func autoConvert_autoscaling_ContainerResourcePolicy_To_v2beta1_ContainerResourcePolicy(in *autoscaling.ContainerResourcePolicy, out *v2beta1.ContainerResourcePolicy, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Mode = (*v2beta1.ContainerScalingMode)(unsafe.Pointer(in.Mode)) - out.MinAllowed = *(*v1.ResourceList)(unsafe.Pointer(&in.MinAllowed)) - out.MaxAllowed = *(*v1.ResourceList)(unsafe.Pointer(&in.MaxAllowed)) - return nil -} - -// Convert_autoscaling_ContainerResourcePolicy_To_v2beta1_ContainerResourcePolicy is an autogenerated conversion function. -func Convert_autoscaling_ContainerResourcePolicy_To_v2beta1_ContainerResourcePolicy(in *autoscaling.ContainerResourcePolicy, out *v2beta1.ContainerResourcePolicy, s conversion.Scope) error { - return autoConvert_autoscaling_ContainerResourcePolicy_To_v2beta1_ContainerResourcePolicy(in, out, s) -} - func autoConvert_v2beta1_CrossVersionObjectReference_To_autoscaling_CrossVersionObjectReference(in *v2beta1.CrossVersionObjectReference, out *autoscaling.CrossVersionObjectReference, s conversion.Scope) error { out.Kind = in.Kind out.Name = in.Name @@ -148,7 +102,7 @@ func Convert_autoscaling_CrossVersionObjectReference_To_v2beta1_CrossVersionObje func autoConvert_v2beta1_ExternalMetricSource_To_autoscaling_ExternalMetricSource(in *v2beta1.ExternalMetricSource, out *autoscaling.ExternalMetricSource, s conversion.Scope) error { out.MetricName = in.MetricName - out.MetricSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) + out.MetricSelector = (*v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) out.TargetValue = (*resource.Quantity)(unsafe.Pointer(in.TargetValue)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -161,7 +115,7 @@ func Convert_v2beta1_ExternalMetricSource_To_autoscaling_ExternalMetricSource(in func autoConvert_autoscaling_ExternalMetricSource_To_v2beta1_ExternalMetricSource(in *autoscaling.ExternalMetricSource, out *v2beta1.ExternalMetricSource, s conversion.Scope) error { out.MetricName = in.MetricName - out.MetricSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) + out.MetricSelector = (*v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) out.TargetValue = (*resource.Quantity)(unsafe.Pointer(in.TargetValue)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -174,7 +128,7 @@ func Convert_autoscaling_ExternalMetricSource_To_v2beta1_ExternalMetricSource(in func autoConvert_v2beta1_ExternalMetricStatus_To_autoscaling_ExternalMetricStatus(in *v2beta1.ExternalMetricStatus, out *autoscaling.ExternalMetricStatus, s conversion.Scope) error { out.MetricName = in.MetricName - out.MetricSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) + out.MetricSelector = (*v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) out.CurrentValue = in.CurrentValue out.CurrentAverageValue = (*resource.Quantity)(unsafe.Pointer(in.CurrentAverageValue)) return nil @@ -187,7 +141,7 @@ func Convert_v2beta1_ExternalMetricStatus_To_autoscaling_ExternalMetricStatus(in func autoConvert_autoscaling_ExternalMetricStatus_To_v2beta1_ExternalMetricStatus(in *autoscaling.ExternalMetricStatus, out *v2beta1.ExternalMetricStatus, s conversion.Scope) error { out.MetricName = in.MetricName - out.MetricSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) + out.MetricSelector = (*v1.LabelSelector)(unsafe.Pointer(in.MetricSelector)) out.CurrentValue = in.CurrentValue out.CurrentAverageValue = (*resource.Quantity)(unsafe.Pointer(in.CurrentAverageValue)) return nil @@ -246,7 +200,7 @@ func Convert_v2beta1_HorizontalPodAutoscalerCondition_To_autoscaling_HorizontalP func autoConvert_autoscaling_HorizontalPodAutoscalerCondition_To_v2beta1_HorizontalPodAutoscalerCondition(in *autoscaling.HorizontalPodAutoscalerCondition, out *v2beta1.HorizontalPodAutoscalerCondition, s conversion.Scope) error { out.Type = v2beta1.HorizontalPodAutoscalerConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) + out.Status = core_v1.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason out.Message = in.Message @@ -312,7 +266,7 @@ func Convert_autoscaling_HorizontalPodAutoscalerSpec_To_v2beta1_HorizontalPodAut func autoConvert_v2beta1_HorizontalPodAutoscalerStatus_To_autoscaling_HorizontalPodAutoscalerStatus(in *v2beta1.HorizontalPodAutoscalerStatus, out *autoscaling.HorizontalPodAutoscalerStatus, s conversion.Scope) error { out.ObservedGeneration = (*int64)(unsafe.Pointer(in.ObservedGeneration)) - out.LastScaleTime = (*meta_v1.Time)(unsafe.Pointer(in.LastScaleTime)) + out.LastScaleTime = (*v1.Time)(unsafe.Pointer(in.LastScaleTime)) out.CurrentReplicas = in.CurrentReplicas out.DesiredReplicas = in.DesiredReplicas out.CurrentMetrics = *(*[]autoscaling.MetricStatus)(unsafe.Pointer(&in.CurrentMetrics)) @@ -327,7 +281,7 @@ func Convert_v2beta1_HorizontalPodAutoscalerStatus_To_autoscaling_HorizontalPodA func autoConvert_autoscaling_HorizontalPodAutoscalerStatus_To_v2beta1_HorizontalPodAutoscalerStatus(in *autoscaling.HorizontalPodAutoscalerStatus, out *v2beta1.HorizontalPodAutoscalerStatus, s conversion.Scope) error { out.ObservedGeneration = (*int64)(unsafe.Pointer(in.ObservedGeneration)) - out.LastScaleTime = (*meta_v1.Time)(unsafe.Pointer(in.LastScaleTime)) + out.LastScaleTime = (*v1.Time)(unsafe.Pointer(in.LastScaleTime)) out.CurrentReplicas = in.CurrentReplicas out.DesiredReplicas = in.DesiredReplicas out.CurrentMetrics = *(*[]v2beta1.MetricStatus)(unsafe.Pointer(&in.CurrentMetrics)) @@ -452,46 +406,6 @@ func Convert_autoscaling_ObjectMetricStatus_To_v2beta1_ObjectMetricStatus(in *au return autoConvert_autoscaling_ObjectMetricStatus_To_v2beta1_ObjectMetricStatus(in, out, s) } -func autoConvert_v2beta1_PodResourcePolicy_To_autoscaling_PodResourcePolicy(in *v2beta1.PodResourcePolicy, out *autoscaling.PodResourcePolicy, s conversion.Scope) error { - out.ContainerPolicies = *(*[]autoscaling.ContainerResourcePolicy)(unsafe.Pointer(&in.ContainerPolicies)) - return nil -} - -// Convert_v2beta1_PodResourcePolicy_To_autoscaling_PodResourcePolicy is an autogenerated conversion function. -func Convert_v2beta1_PodResourcePolicy_To_autoscaling_PodResourcePolicy(in *v2beta1.PodResourcePolicy, out *autoscaling.PodResourcePolicy, s conversion.Scope) error { - return autoConvert_v2beta1_PodResourcePolicy_To_autoscaling_PodResourcePolicy(in, out, s) -} - -func autoConvert_autoscaling_PodResourcePolicy_To_v2beta1_PodResourcePolicy(in *autoscaling.PodResourcePolicy, out *v2beta1.PodResourcePolicy, s conversion.Scope) error { - out.ContainerPolicies = *(*[]v2beta1.ContainerResourcePolicy)(unsafe.Pointer(&in.ContainerPolicies)) - return nil -} - -// Convert_autoscaling_PodResourcePolicy_To_v2beta1_PodResourcePolicy is an autogenerated conversion function. -func Convert_autoscaling_PodResourcePolicy_To_v2beta1_PodResourcePolicy(in *autoscaling.PodResourcePolicy, out *v2beta1.PodResourcePolicy, s conversion.Scope) error { - return autoConvert_autoscaling_PodResourcePolicy_To_v2beta1_PodResourcePolicy(in, out, s) -} - -func autoConvert_v2beta1_PodUpdatePolicy_To_autoscaling_PodUpdatePolicy(in *v2beta1.PodUpdatePolicy, out *autoscaling.PodUpdatePolicy, s conversion.Scope) error { - out.UpdateMode = (*autoscaling.UpdateMode)(unsafe.Pointer(in.UpdateMode)) - return nil -} - -// Convert_v2beta1_PodUpdatePolicy_To_autoscaling_PodUpdatePolicy is an autogenerated conversion function. -func Convert_v2beta1_PodUpdatePolicy_To_autoscaling_PodUpdatePolicy(in *v2beta1.PodUpdatePolicy, out *autoscaling.PodUpdatePolicy, s conversion.Scope) error { - return autoConvert_v2beta1_PodUpdatePolicy_To_autoscaling_PodUpdatePolicy(in, out, s) -} - -func autoConvert_autoscaling_PodUpdatePolicy_To_v2beta1_PodUpdatePolicy(in *autoscaling.PodUpdatePolicy, out *v2beta1.PodUpdatePolicy, s conversion.Scope) error { - out.UpdateMode = (*v2beta1.UpdateMode)(unsafe.Pointer(in.UpdateMode)) - return nil -} - -// Convert_autoscaling_PodUpdatePolicy_To_v2beta1_PodUpdatePolicy is an autogenerated conversion function. -func Convert_autoscaling_PodUpdatePolicy_To_v2beta1_PodUpdatePolicy(in *autoscaling.PodUpdatePolicy, out *v2beta1.PodUpdatePolicy, s conversion.Scope) error { - return autoConvert_autoscaling_PodUpdatePolicy_To_v2beta1_PodUpdatePolicy(in, out, s) -} - func autoConvert_v2beta1_PodsMetricSource_To_autoscaling_PodsMetricSource(in *v2beta1.PodsMetricSource, out *autoscaling.PodsMetricSource, s conversion.Scope) error { out.MetricName = in.MetricName out.TargetAverageValue = in.TargetAverageValue @@ -536,52 +450,6 @@ func Convert_autoscaling_PodsMetricStatus_To_v2beta1_PodsMetricStatus(in *autosc return autoConvert_autoscaling_PodsMetricStatus_To_v2beta1_PodsMetricStatus(in, out, s) } -func autoConvert_v2beta1_RecommendedContainerResources_To_autoscaling_RecommendedContainerResources(in *v2beta1.RecommendedContainerResources, out *autoscaling.RecommendedContainerResources, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Target = *(*core.ResourceList)(unsafe.Pointer(&in.Target)) - out.LowerBound = *(*core.ResourceList)(unsafe.Pointer(&in.LowerBound)) - out.UpperBound = *(*core.ResourceList)(unsafe.Pointer(&in.UpperBound)) - return nil -} - -// Convert_v2beta1_RecommendedContainerResources_To_autoscaling_RecommendedContainerResources is an autogenerated conversion function. -func Convert_v2beta1_RecommendedContainerResources_To_autoscaling_RecommendedContainerResources(in *v2beta1.RecommendedContainerResources, out *autoscaling.RecommendedContainerResources, s conversion.Scope) error { - return autoConvert_v2beta1_RecommendedContainerResources_To_autoscaling_RecommendedContainerResources(in, out, s) -} - -func autoConvert_autoscaling_RecommendedContainerResources_To_v2beta1_RecommendedContainerResources(in *autoscaling.RecommendedContainerResources, out *v2beta1.RecommendedContainerResources, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Target = *(*v1.ResourceList)(unsafe.Pointer(&in.Target)) - out.LowerBound = *(*v1.ResourceList)(unsafe.Pointer(&in.LowerBound)) - out.UpperBound = *(*v1.ResourceList)(unsafe.Pointer(&in.UpperBound)) - return nil -} - -// Convert_autoscaling_RecommendedContainerResources_To_v2beta1_RecommendedContainerResources is an autogenerated conversion function. -func Convert_autoscaling_RecommendedContainerResources_To_v2beta1_RecommendedContainerResources(in *autoscaling.RecommendedContainerResources, out *v2beta1.RecommendedContainerResources, s conversion.Scope) error { - return autoConvert_autoscaling_RecommendedContainerResources_To_v2beta1_RecommendedContainerResources(in, out, s) -} - -func autoConvert_v2beta1_RecommendedPodResources_To_autoscaling_RecommendedPodResources(in *v2beta1.RecommendedPodResources, out *autoscaling.RecommendedPodResources, s conversion.Scope) error { - out.ContainerRecommendations = *(*[]autoscaling.RecommendedContainerResources)(unsafe.Pointer(&in.ContainerRecommendations)) - return nil -} - -// Convert_v2beta1_RecommendedPodResources_To_autoscaling_RecommendedPodResources is an autogenerated conversion function. -func Convert_v2beta1_RecommendedPodResources_To_autoscaling_RecommendedPodResources(in *v2beta1.RecommendedPodResources, out *autoscaling.RecommendedPodResources, s conversion.Scope) error { - return autoConvert_v2beta1_RecommendedPodResources_To_autoscaling_RecommendedPodResources(in, out, s) -} - -func autoConvert_autoscaling_RecommendedPodResources_To_v2beta1_RecommendedPodResources(in *autoscaling.RecommendedPodResources, out *v2beta1.RecommendedPodResources, s conversion.Scope) error { - out.ContainerRecommendations = *(*[]v2beta1.RecommendedContainerResources)(unsafe.Pointer(&in.ContainerRecommendations)) - return nil -} - -// Convert_autoscaling_RecommendedPodResources_To_v2beta1_RecommendedPodResources is an autogenerated conversion function. -func Convert_autoscaling_RecommendedPodResources_To_v2beta1_RecommendedPodResources(in *autoscaling.RecommendedPodResources, out *v2beta1.RecommendedPodResources, s conversion.Scope) error { - return autoConvert_autoscaling_RecommendedPodResources_To_v2beta1_RecommendedPodResources(in, out, s) -} - func autoConvert_v2beta1_ResourceMetricSource_To_autoscaling_ResourceMetricSource(in *v2beta1.ResourceMetricSource, out *autoscaling.ResourceMetricSource, s conversion.Scope) error { out.Name = core.ResourceName(in.Name) out.TargetAverageUtilization = (*int32)(unsafe.Pointer(in.TargetAverageUtilization)) @@ -595,7 +463,7 @@ func Convert_v2beta1_ResourceMetricSource_To_autoscaling_ResourceMetricSource(in } func autoConvert_autoscaling_ResourceMetricSource_To_v2beta1_ResourceMetricSource(in *autoscaling.ResourceMetricSource, out *v2beta1.ResourceMetricSource, s conversion.Scope) error { - out.Name = v1.ResourceName(in.Name) + out.Name = core_v1.ResourceName(in.Name) out.TargetAverageUtilization = (*int32)(unsafe.Pointer(in.TargetAverageUtilization)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -619,7 +487,7 @@ func Convert_v2beta1_ResourceMetricStatus_To_autoscaling_ResourceMetricStatus(in } func autoConvert_autoscaling_ResourceMetricStatus_To_v2beta1_ResourceMetricStatus(in *autoscaling.ResourceMetricStatus, out *v2beta1.ResourceMetricStatus, s conversion.Scope) error { - out.Name = v1.ResourceName(in.Name) + out.Name = core_v1.ResourceName(in.Name) out.CurrentAverageUtilization = (*int32)(unsafe.Pointer(in.CurrentAverageUtilization)) out.CurrentAverageValue = in.CurrentAverageValue return nil @@ -629,131 +497,3 @@ func autoConvert_autoscaling_ResourceMetricStatus_To_v2beta1_ResourceMetricStatu func Convert_autoscaling_ResourceMetricStatus_To_v2beta1_ResourceMetricStatus(in *autoscaling.ResourceMetricStatus, out *v2beta1.ResourceMetricStatus, s conversion.Scope) error { return autoConvert_autoscaling_ResourceMetricStatus_To_v2beta1_ResourceMetricStatus(in, out, s) } - -func autoConvert_v2beta1_VerticalPodAutoscaler_To_autoscaling_VerticalPodAutoscaler(in *v2beta1.VerticalPodAutoscaler, out *autoscaling.VerticalPodAutoscaler, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v2beta1_VerticalPodAutoscaler_To_autoscaling_VerticalPodAutoscaler is an autogenerated conversion function. -func Convert_v2beta1_VerticalPodAutoscaler_To_autoscaling_VerticalPodAutoscaler(in *v2beta1.VerticalPodAutoscaler, out *autoscaling.VerticalPodAutoscaler, s conversion.Scope) error { - return autoConvert_v2beta1_VerticalPodAutoscaler_To_autoscaling_VerticalPodAutoscaler(in, out, s) -} - -func autoConvert_autoscaling_VerticalPodAutoscaler_To_v2beta1_VerticalPodAutoscaler(in *autoscaling.VerticalPodAutoscaler, out *v2beta1.VerticalPodAutoscaler, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_autoscaling_VerticalPodAutoscaler_To_v2beta1_VerticalPodAutoscaler is an autogenerated conversion function. -func Convert_autoscaling_VerticalPodAutoscaler_To_v2beta1_VerticalPodAutoscaler(in *autoscaling.VerticalPodAutoscaler, out *v2beta1.VerticalPodAutoscaler, s conversion.Scope) error { - return autoConvert_autoscaling_VerticalPodAutoscaler_To_v2beta1_VerticalPodAutoscaler(in, out, s) -} - -func autoConvert_v2beta1_VerticalPodAutoscalerCondition_To_autoscaling_VerticalPodAutoscalerCondition(in *v2beta1.VerticalPodAutoscalerCondition, out *autoscaling.VerticalPodAutoscalerCondition, s conversion.Scope) error { - out.Type = autoscaling.VerticalPodAutoscalerConditionType(in.Type) - out.Status = core.ConditionStatus(in.Status) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v2beta1_VerticalPodAutoscalerCondition_To_autoscaling_VerticalPodAutoscalerCondition is an autogenerated conversion function. -func Convert_v2beta1_VerticalPodAutoscalerCondition_To_autoscaling_VerticalPodAutoscalerCondition(in *v2beta1.VerticalPodAutoscalerCondition, out *autoscaling.VerticalPodAutoscalerCondition, s conversion.Scope) error { - return autoConvert_v2beta1_VerticalPodAutoscalerCondition_To_autoscaling_VerticalPodAutoscalerCondition(in, out, s) -} - -func autoConvert_autoscaling_VerticalPodAutoscalerCondition_To_v2beta1_VerticalPodAutoscalerCondition(in *autoscaling.VerticalPodAutoscalerCondition, out *v2beta1.VerticalPodAutoscalerCondition, s conversion.Scope) error { - out.Type = v2beta1.VerticalPodAutoscalerConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_autoscaling_VerticalPodAutoscalerCondition_To_v2beta1_VerticalPodAutoscalerCondition is an autogenerated conversion function. -func Convert_autoscaling_VerticalPodAutoscalerCondition_To_v2beta1_VerticalPodAutoscalerCondition(in *autoscaling.VerticalPodAutoscalerCondition, out *v2beta1.VerticalPodAutoscalerCondition, s conversion.Scope) error { - return autoConvert_autoscaling_VerticalPodAutoscalerCondition_To_v2beta1_VerticalPodAutoscalerCondition(in, out, s) -} - -func autoConvert_v2beta1_VerticalPodAutoscalerList_To_autoscaling_VerticalPodAutoscalerList(in *v2beta1.VerticalPodAutoscalerList, out *autoscaling.VerticalPodAutoscalerList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]autoscaling.VerticalPodAutoscaler)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v2beta1_VerticalPodAutoscalerList_To_autoscaling_VerticalPodAutoscalerList is an autogenerated conversion function. -func Convert_v2beta1_VerticalPodAutoscalerList_To_autoscaling_VerticalPodAutoscalerList(in *v2beta1.VerticalPodAutoscalerList, out *autoscaling.VerticalPodAutoscalerList, s conversion.Scope) error { - return autoConvert_v2beta1_VerticalPodAutoscalerList_To_autoscaling_VerticalPodAutoscalerList(in, out, s) -} - -func autoConvert_autoscaling_VerticalPodAutoscalerList_To_v2beta1_VerticalPodAutoscalerList(in *autoscaling.VerticalPodAutoscalerList, out *v2beta1.VerticalPodAutoscalerList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v2beta1.VerticalPodAutoscaler)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_autoscaling_VerticalPodAutoscalerList_To_v2beta1_VerticalPodAutoscalerList is an autogenerated conversion function. -func Convert_autoscaling_VerticalPodAutoscalerList_To_v2beta1_VerticalPodAutoscalerList(in *autoscaling.VerticalPodAutoscalerList, out *v2beta1.VerticalPodAutoscalerList, s conversion.Scope) error { - return autoConvert_autoscaling_VerticalPodAutoscalerList_To_v2beta1_VerticalPodAutoscalerList(in, out, s) -} - -func autoConvert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec(in *v2beta1.VerticalPodAutoscalerSpec, out *autoscaling.VerticalPodAutoscalerSpec, s conversion.Scope) error { - out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - out.UpdatePolicy = (*autoscaling.PodUpdatePolicy)(unsafe.Pointer(in.UpdatePolicy)) - out.ResourcePolicy = (*autoscaling.PodResourcePolicy)(unsafe.Pointer(in.ResourcePolicy)) - return nil -} - -// Convert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec is an autogenerated conversion function. -func Convert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec(in *v2beta1.VerticalPodAutoscalerSpec, out *autoscaling.VerticalPodAutoscalerSpec, s conversion.Scope) error { - return autoConvert_v2beta1_VerticalPodAutoscalerSpec_To_autoscaling_VerticalPodAutoscalerSpec(in, out, s) -} - -func autoConvert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec(in *autoscaling.VerticalPodAutoscalerSpec, out *v2beta1.VerticalPodAutoscalerSpec, s conversion.Scope) error { - out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - out.UpdatePolicy = (*v2beta1.PodUpdatePolicy)(unsafe.Pointer(in.UpdatePolicy)) - out.ResourcePolicy = (*v2beta1.PodResourcePolicy)(unsafe.Pointer(in.ResourcePolicy)) - return nil -} - -// Convert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec is an autogenerated conversion function. -func Convert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec(in *autoscaling.VerticalPodAutoscalerSpec, out *v2beta1.VerticalPodAutoscalerSpec, s conversion.Scope) error { - return autoConvert_autoscaling_VerticalPodAutoscalerSpec_To_v2beta1_VerticalPodAutoscalerSpec(in, out, s) -} - -func autoConvert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus(in *v2beta1.VerticalPodAutoscalerStatus, out *autoscaling.VerticalPodAutoscalerStatus, s conversion.Scope) error { - out.Recommendation = (*autoscaling.RecommendedPodResources)(unsafe.Pointer(in.Recommendation)) - out.Conditions = *(*[]autoscaling.VerticalPodAutoscalerCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus is an autogenerated conversion function. -func Convert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus(in *v2beta1.VerticalPodAutoscalerStatus, out *autoscaling.VerticalPodAutoscalerStatus, s conversion.Scope) error { - return autoConvert_v2beta1_VerticalPodAutoscalerStatus_To_autoscaling_VerticalPodAutoscalerStatus(in, out, s) -} - -func autoConvert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus(in *autoscaling.VerticalPodAutoscalerStatus, out *v2beta1.VerticalPodAutoscalerStatus, s conversion.Scope) error { - out.Recommendation = (*v2beta1.RecommendedPodResources)(unsafe.Pointer(in.Recommendation)) - out.Conditions = *(*[]v2beta1.VerticalPodAutoscalerCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus is an autogenerated conversion function. -func Convert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus(in *autoscaling.VerticalPodAutoscalerStatus, out *v2beta1.VerticalPodAutoscalerStatus, s conversion.Scope) error { - return autoConvert_autoscaling_VerticalPodAutoscalerStatus_To_v2beta1_VerticalPodAutoscalerStatus(in, out, s) -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go index 72d25a90674b..dd7c9b2fa629 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go @@ -23,7 +23,6 @@ package v2beta1 import ( v2beta1 "k8s.io/api/autoscaling/v2beta1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. @@ -36,10 +35,6 @@ func RegisterDefaults(scheme *runtime.Scheme) error { scheme.AddTypeDefaultingFunc(&v2beta1.HorizontalPodAutoscalerList{}, func(obj interface{}) { SetObjectDefaults_HorizontalPodAutoscalerList(obj.(*v2beta1.HorizontalPodAutoscalerList)) }) - scheme.AddTypeDefaultingFunc(&v2beta1.VerticalPodAutoscaler{}, func(obj interface{}) { SetObjectDefaults_VerticalPodAutoscaler(obj.(*v2beta1.VerticalPodAutoscaler)) }) - scheme.AddTypeDefaultingFunc(&v2beta1.VerticalPodAutoscalerList{}, func(obj interface{}) { - SetObjectDefaults_VerticalPodAutoscalerList(obj.(*v2beta1.VerticalPodAutoscalerList)) - }) return nil } @@ -53,28 +48,3 @@ func SetObjectDefaults_HorizontalPodAutoscalerList(in *v2beta1.HorizontalPodAuto SetObjectDefaults_HorizontalPodAutoscaler(a) } } - -func SetObjectDefaults_VerticalPodAutoscaler(in *v2beta1.VerticalPodAutoscaler) { - if in.Spec.ResourcePolicy != nil { - for i := range in.Spec.ResourcePolicy.ContainerPolicies { - a := &in.Spec.ResourcePolicy.ContainerPolicies[i] - v1.SetDefaults_ResourceList(&a.MinAllowed) - v1.SetDefaults_ResourceList(&a.MaxAllowed) - } - } - if in.Status.Recommendation != nil { - for i := range in.Status.Recommendation.ContainerRecommendations { - a := &in.Status.Recommendation.ContainerRecommendations[i] - v1.SetDefaults_ResourceList(&a.Target) - v1.SetDefaults_ResourceList(&a.LowerBound) - v1.SetDefaults_ResourceList(&a.UpperBound) - } - } -} - -func SetObjectDefaults_VerticalPodAutoscalerList(in *v2beta1.VerticalPodAutoscalerList) { - for i := range in.Items { - a := &in.Items[i] - SetObjectDefaults_VerticalPodAutoscaler(a) - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD index c33525815719..308861fca804 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD @@ -8,17 +8,12 @@ load( go_library( name = "go_default_library", - srcs = [ - "validation.go", - "vpa.go", - ], + srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/validation", deps = [ "//pkg/apis/autoscaling:go_default_library", - "//pkg/apis/core:go_default_library", "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation/path:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], @@ -26,10 +21,7 @@ go_library( go_test( name = "go_default_test", - srcs = [ - "validation_test.go", - "vpa_test.go", - ], + srcs = ["validation_test.go"], embed = [":go_default_library"], deps = [ "//pkg/apis/autoscaling:go_default_library", @@ -37,7 +29,6 @@ go_test( "//pkg/util/pointer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa.go deleted file mode 100644 index e98bbd868efa..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa.go +++ /dev/null @@ -1,184 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -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 validation - -import ( - metavalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/autoscaling" - core "k8s.io/kubernetes/pkg/apis/core" - corevalidation "k8s.io/kubernetes/pkg/apis/core/validation" -) - -var supportedUpdateModes = sets.NewString( - string(autoscaling.UpdateModeOff), - string(autoscaling.UpdateModeInitial), - string(autoscaling.UpdateModeAuto), -) - -var supportedContainerScalingModes = sets.NewString( - string(autoscaling.ContainerScalingModeAuto), - string(autoscaling.ContainerScalingModeOff), -) - -var supportedResources = sets.NewString( - string(core.ResourceCPU), - string(core.ResourceMemory), -) - -func validateUpdateMode(updateMode *autoscaling.UpdateMode, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if updateMode != nil && !supportedUpdateModes.Has(string(*updateMode)) { - allErrs = append(allErrs, field.NotSupported(fldPath, updateMode, supportedUpdateModes.List())) - } - return allErrs -} - -func validateContainerScalingMode(containerScalingMode *autoscaling.ContainerScalingMode, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if containerScalingMode != nil && !supportedContainerScalingModes.Has(string(*containerScalingMode)) { - allErrs = append(allErrs, field.NotSupported(fldPath, containerScalingMode, supportedContainerScalingModes.List())) - } - return allErrs -} - -func validateResourceName(resourceName *core.ResourceName, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if resourceName != nil && !supportedResources.Has(string(*resourceName)) { - allErrs = append(allErrs, field.NotSupported(fldPath, resourceName, supportedResources.List())) - } - return allErrs -} - -func validatePodUpdatePolicy(podUpdatePolicy *autoscaling.PodUpdatePolicy, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if podUpdatePolicy != nil { - allErrs = append(allErrs, validateUpdateMode(podUpdatePolicy.UpdateMode, fldPath.Child("updateMode"))...) - } - return allErrs -} - -// Verifies that the core.ResourceList contains valid and supported resources (see supportedResources). -// Additionally checks that the quantity of resources in resourceList does not exceed the corresponding -// quantity in upperBound, if present. -func validateResourceList(resourceList core.ResourceList, upperBound core.ResourceList, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - for resourceName, quantity := range resourceList { - resPath := fldPath.Key(string(resourceName)) - // Validate resource name. - allErrs = append(allErrs, validateResourceName(&resourceName, resPath)...) - // Validate resource quantity. - allErrs = append(allErrs, corevalidation.ValidateResourceQuantityValue(string(resourceName), quantity, resPath)...) - if upperBound != nil { - // Check that request <= limit. - upperBoundQuantity, exists := upperBound[resourceName] - if exists && quantity.Cmp(upperBoundQuantity) > 0 { - allErrs = append(allErrs, field.Invalid(fldPath, quantity.String(), - "must be less than or equal to the upper bound")) - } - } - } - return allErrs -} - -func validateContainerResourcePolicy(containerResourcePolicy *autoscaling.ContainerResourcePolicy, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if containerResourcePolicy != nil { - allErrs = append(allErrs, validateContainerScalingMode(containerResourcePolicy.Mode, fldPath.Child("mode"))...) - allErrs = append(allErrs, validateResourceList(containerResourcePolicy.MinAllowed, containerResourcePolicy.MaxAllowed, fldPath.Child("minAllowed"))...) - allErrs = append(allErrs, validateResourceList(containerResourcePolicy.MaxAllowed, core.ResourceList{}, fldPath.Child("maxAllowed"))...) - } - return allErrs -} - -func validatePodResourcePolicy(podResourcePolicy *autoscaling.PodResourcePolicy, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if podResourcePolicy != nil { - for i, containerPolicy := range podResourcePolicy.ContainerPolicies { - allErrs = append(allErrs, validateContainerResourcePolicy(&containerPolicy, fldPath.Child("containerPolicies").Index(i))...) - } - } - return allErrs -} - -func validateVerticalPodAutoscalerSpec(spec *autoscaling.VerticalPodAutoscalerSpec, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if spec.Selector == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("selector"), "")) - } else { - allErrs = append(allErrs, metavalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...) - } - allErrs = append(allErrs, validatePodUpdatePolicy(spec.UpdatePolicy, fldPath.Child("updatePolicy"))...) - allErrs = append(allErrs, validatePodResourcePolicy(spec.ResourcePolicy, fldPath.Child("resourcePolicy"))...) - return allErrs -} - -func validateRecommendedContainerResources(recommendedContainerResources *autoscaling.RecommendedContainerResources, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if recommendedContainerResources != nil { - allErrs = append(allErrs, validateResourceList(recommendedContainerResources.LowerBound, recommendedContainerResources.Target, fldPath.Child("minRecommended"))...) - allErrs = append(allErrs, validateResourceList(recommendedContainerResources.Target, recommendedContainerResources.UpperBound, fldPath.Child("target"))...) - allErrs = append(allErrs, validateResourceList(recommendedContainerResources.UpperBound, core.ResourceList{}, fldPath.Child("maxRecommended"))...) - } - return allErrs -} - -func validateRecommendedPodResources(recommendedPodResources *autoscaling.RecommendedPodResources, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if recommendedPodResources != nil { - for i, containerRecommendation := range recommendedPodResources.ContainerRecommendations { - allErrs = append(allErrs, validateRecommendedContainerResources(&containerRecommendation, fldPath.Child("containerRecommendations").Index(i))...) - } - } - return allErrs -} - -func validateVerticalPodAutoscalerStatus(status *autoscaling.VerticalPodAutoscalerStatus, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if status != nil { - allErrs = append(allErrs, validateRecommendedPodResources(status.Recommendation, fldPath.Child("recommendation"))...) - } - return allErrs -} - -// ValidateVerticalPodAutoscalerName verifies that the vertical pod autoscaler name is valid. -var ValidateVerticalPodAutoscalerName = corevalidation.ValidateReplicationControllerName - -// ValidateVerticalPodAutoscaler that VerticalPodAutoscaler is valid. -func ValidateVerticalPodAutoscaler(autoscaler *autoscaling.VerticalPodAutoscaler) field.ErrorList { - allErrs := corevalidation.ValidateObjectMeta(&autoscaler.ObjectMeta, true, ValidateVerticalPodAutoscalerName, field.NewPath("metadata")) - if autoscaler != nil { - allErrs = append(allErrs, validateVerticalPodAutoscalerSpec(&autoscaler.Spec, field.NewPath("spec"))...) - allErrs = append(allErrs, validateVerticalPodAutoscalerStatus(&autoscaler.Status, field.NewPath("status"))...) - } - return allErrs -} - -// ValidateVerticalPodAutoscalerUpdate that VerticalPodAutoscaler update is valid. -func ValidateVerticalPodAutoscalerUpdate(newAutoscaler, oldAutoscaler *autoscaling.VerticalPodAutoscaler) field.ErrorList { - allErrs := corevalidation.ValidateObjectMetaUpdate(&newAutoscaler.ObjectMeta, &oldAutoscaler.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, validateVerticalPodAutoscalerSpec(&newAutoscaler.Spec, field.NewPath("spec"))...) - return allErrs -} - -// ValidateVerticalPodAutoscalerStatusUpdate that VerticalPodAutoscaler status update is valid. -func ValidateVerticalPodAutoscalerStatusUpdate(newAutoscaler, oldAutoscaler *autoscaling.VerticalPodAutoscaler) field.ErrorList { - allErrs := corevalidation.ValidateObjectMetaUpdate(&newAutoscaler.ObjectMeta, &oldAutoscaler.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, validateVerticalPodAutoscalerStatus(&newAutoscaler.Status, field.NewPath("status"))...) - return allErrs -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa_test.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa_test.go deleted file mode 100644 index 487158079954..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/vpa_test.go +++ /dev/null @@ -1,235 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -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 validation - -import ( - "strings" - "testing" - "time" - - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/autoscaling" - core "k8s.io/kubernetes/pkg/apis/core" -) - -func expectErrorWithMessage(t *testing.T, errs field.ErrorList, expectedMsg string) { - if len(errs) == 0 { - t.Errorf("expected failure with message '%s'", expectedMsg) - } else if !strings.Contains(errs[0].Error(), expectedMsg) { - t.Errorf("unexpected error: '%v', expected: '%s'", errs[0], expectedMsg) - } -} - -func makeValidAutoscaler() *autoscaling.VerticalPodAutoscaler { - return &autoscaling.VerticalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{Name: "my-vpa", Namespace: metav1.NamespaceDefault}, - Spec: autoscaling.VerticalPodAutoscalerSpec{ - Selector: &metav1.LabelSelector{}, - }, - } -} - -func TestValidateUpdateModeSuccess(t *testing.T) { - autoscaler := makeValidAutoscaler() - validUpdateMode := autoscaling.UpdateMode("Initial") - autoscaler.Spec.UpdatePolicy = &autoscaling.PodUpdatePolicy{UpdateMode: &validUpdateMode} - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } -} - -func TestValidateUpdateModeFailure(t *testing.T) { - autoscaler := makeValidAutoscaler() - invalidUpdateMode := autoscaling.UpdateMode("SomethingElse") - autoscaler.Spec.UpdatePolicy = &autoscaling.PodUpdatePolicy{UpdateMode: &invalidUpdateMode} - expectErrorWithMessage(t, ValidateVerticalPodAutoscaler(autoscaler), "Unsupported value: \"SomethingElse\"") -} - -func TestValidateContainerScalingModeSuccess(t *testing.T) { - autoscaler := makeValidAutoscaler() - validContainerScalingMode := autoscaling.ContainerScalingMode("Off") - autoscaler.Spec.ResourcePolicy = &autoscaling.PodResourcePolicy{ - ContainerPolicies: []autoscaling.ContainerResourcePolicy{{ - ContainerName: "container1", - Mode: &validContainerScalingMode, - }}, - } - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } -} - -func TestValidateContainerScalingModeFailure(t *testing.T) { - autoscaler := makeValidAutoscaler() - invalidContainerScalingMode := autoscaling.ContainerScalingMode("SomethingElse") - autoscaler.Spec.ResourcePolicy = &autoscaling.PodResourcePolicy{ - ContainerPolicies: []autoscaling.ContainerResourcePolicy{{ - ContainerName: "container1", - Mode: &invalidContainerScalingMode, - }}, - } - expectErrorWithMessage(t, ValidateVerticalPodAutoscaler(autoscaler), "Unsupported value: \"SomethingElse\"") -} - -func TestValidateResourceListSuccess(t *testing.T) { - cases := []struct { - resources core.ResourceList - upperBound core.ResourceList - }{ - // Specified CPU and memory. Upper bound not specified for any resource. - { - core.ResourceList{ - core.ResourceName(core.ResourceCPU): resource.MustParse("250m"), - core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), - }, - core.ResourceList{}, - }, - // Specified memory only. Upper bound for memory not specified. - { - core.ResourceList{ - core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), - }, - core.ResourceList{ - core.ResourceName(core.ResourceCPU): resource.MustParse("250m"), - }, - }, - // Specified CPU and memory. Upper bound for CPU and memory equal or greater. - { - core.ResourceList{ - core.ResourceName(core.ResourceCPU): resource.MustParse("250m"), - core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), - }, - core.ResourceList{ - core.ResourceName(core.ResourceCPU): resource.MustParse("300m"), - core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), - }, - }, - } - for _, c := range cases { - if errs := validateResourceList(c.resources, c.upperBound, field.NewPath("resources")); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } -} - -func TestValidateResourceListFailure(t *testing.T) { - cases := []struct { - resources core.ResourceList - upperBound core.ResourceList - expectedMsg string - }{ - // Invalid resource type. - { - core.ResourceList{core.ResourceName(core.ResourceStorage): resource.MustParse("10G")}, - core.ResourceList{}, - "Unsupported value: storage", - }, - // Invalid resource quantity. - { - core.ResourceList{core.ResourceName(core.ResourceCPU): resource.MustParse("-250m")}, - core.ResourceList{}, - "Invalid value: \"-250m\"", - }, - // Lower bound exceeds upper bound. - { - core.ResourceList{core.ResourceName(core.ResourceCPU): resource.MustParse("250m")}, - core.ResourceList{core.ResourceName(core.ResourceCPU): resource.MustParse("200m")}, - "must be less than or equal to the upper bound", - }, - } - for _, c := range cases { - expectErrorWithMessage(t, validateResourceList(c.resources, c.upperBound, field.NewPath("resources")), - c.expectedMsg) - } -} - -func TestMissingRequiredSelector(t *testing.T) { - autoscaler := makeValidAutoscaler() - autoscaler.Spec.Selector = nil - expectedMsg := "spec.selector: Required value" - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) == 0 { - t.Errorf("expected failure with message '%s'", expectedMsg) - } else if !strings.Contains(errs[0].Error(), expectedMsg) { - t.Errorf("unexpected error: '%v', expected: '%s'", errs[0], expectedMsg) - } -} - -func TestInvalidAutoscalerName(t *testing.T) { - autoscaler := makeValidAutoscaler() - autoscaler.ObjectMeta = metav1.ObjectMeta{Name: "@@@", Namespace: metav1.NamespaceDefault} - expectedMsg := "metadata.name: Invalid value: \"@@@\"" - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) == 0 { - t.Errorf("expected failure with message '%s'", expectedMsg) - } else if !strings.Contains(errs[0].Error(), expectedMsg) { - t.Errorf("unexpected error: '%v', expected: '%s'", errs[0], expectedMsg) - } -} - -func TestMinimalValidAutoscaler(t *testing.T) { - autoscaler := makeValidAutoscaler() - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } -} - -func TestCompleteValidAutoscaler(t *testing.T) { - sampleResourceList := core.ResourceList{ - core.ResourceName(core.ResourceCPU): resource.MustParse("250m"), - core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), - } - validUpdateMode := autoscaling.UpdateMode("Initial") - validContainerScalingMode := autoscaling.ContainerScalingMode("Auto") - autoscaler := &autoscaling.VerticalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{Name: "my-vpa", Namespace: metav1.NamespaceDefault}, - Spec: autoscaling.VerticalPodAutoscalerSpec{ - Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, - UpdatePolicy: &autoscaling.PodUpdatePolicy{ - UpdateMode: &validUpdateMode, - }, - ResourcePolicy: &autoscaling.PodResourcePolicy{ - ContainerPolicies: []autoscaling.ContainerResourcePolicy{{ - ContainerName: "container1", - Mode: &validContainerScalingMode, - MinAllowed: sampleResourceList, - MaxAllowed: sampleResourceList, - }}, - }, - }, - Status: autoscaling.VerticalPodAutoscalerStatus{ - Recommendation: &autoscaling.RecommendedPodResources{ - ContainerRecommendations: []autoscaling.RecommendedContainerResources{{ - ContainerName: "container1", - Target: sampleResourceList, - LowerBound: sampleResourceList, - UpperBound: sampleResourceList, - }}, - }, - Conditions: []autoscaling.VerticalPodAutoscalerCondition{{ - Type: autoscaling.RecommendationProvided, - Status: core.ConditionStatus("True"), - LastTransitionTime: metav1.NewTime(time.Date(2018, time.January, 15, 0, 0, 0, 0, time.UTC)), - Reason: "Some reason", - Message: "Some message", - }}, - }, - } - if errs := ValidateVerticalPodAutoscaler(autoscaler); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go index 1c99260a0629..12c518d36cbb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go @@ -23,48 +23,8 @@ package autoscaling import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - core "k8s.io/kubernetes/pkg/apis/core" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) { - *out = *in - if in.Mode != nil { - in, out := &in.Mode, &out.Mode - if *in == nil { - *out = nil - } else { - *out = new(ContainerScalingMode) - **out = **in - } - } - if in.MinAllowed != nil { - in, out := &in.MinAllowed, &out.MinAllowed - *out = make(core.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.MaxAllowed != nil { - in, out := &in.MaxAllowed, &out.MaxAllowed - *out = make(core.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy. -func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy { - if in == nil { - return nil - } - out := new(ContainerResourcePolicy) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { *out = *in @@ -457,54 +417,6 @@ func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) { - *out = *in - if in.ContainerPolicies != nil { - in, out := &in.ContainerPolicies, &out.ContainerPolicies - *out = make([]ContainerResourcePolicy, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy. -func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy { - if in == nil { - return nil - } - out := new(PodResourcePolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) { - *out = *in - if in.UpdateMode != nil { - in, out := &in.UpdateMode, &out.UpdateMode - if *in == nil { - *out = nil - } else { - *out = new(UpdateMode) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy. -func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy { - if in == nil { - return nil - } - out := new(PodUpdatePolicy) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) { *out = *in @@ -539,66 +451,6 @@ func (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) { - *out = *in - if in.Target != nil { - in, out := &in.Target, &out.Target - *out = make(core.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.LowerBound != nil { - in, out := &in.LowerBound, &out.LowerBound - *out = make(core.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.UpperBound != nil { - in, out := &in.UpperBound, &out.UpperBound - *out = make(core.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources. -func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources { - if in == nil { - return nil - } - out := new(RecommendedContainerResources) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) { - *out = *in - if in.ContainerRecommendations != nil { - in, out := &in.ContainerRecommendations, &out.ContainerRecommendations - *out = make([]RecommendedContainerResources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources. -func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources { - if in == nil { - return nil - } - out := new(RecommendedPodResources) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) { *out = *in @@ -718,156 +570,3 @@ func (in *ScaleStatus) DeepCopy() *ScaleStatus { in.DeepCopyInto(out) return out } - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler. -func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler { - if in == nil { - return nil - } - out := new(VerticalPodAutoscaler) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition. -func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]VerticalPodAutoscaler, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList. -func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) { - *out = *in - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - if in.UpdatePolicy != nil { - in, out := &in.UpdatePolicy, &out.UpdatePolicy - if *in == nil { - *out = nil - } else { - *out = new(PodUpdatePolicy) - (*in).DeepCopyInto(*out) - } - } - if in.ResourcePolicy != nil { - in, out := &in.ResourcePolicy, &out.ResourcePolicy - if *in == nil { - *out = nil - } else { - *out = new(PodResourcePolicy) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec. -func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) { - *out = *in - if in.Recommendation != nil { - in, out := &in.Recommendation, &out.Recommendation - if *in == nil { - *out = nil - } else { - *out = new(RecommendedPodResources) - (*in).DeepCopyInto(*out) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]VerticalPodAutoscalerCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus. -func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerStatus) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go index 7ca6a224445b..51f79b1513ec 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go @@ -323,9 +323,6 @@ type KubeCloudSharedConfiguration struct { // configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs // to be configured on the cloud provider. ConfigureCloudRoutes bool - // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key - // used to sign service account tokens. - ServiceAccountKeyFile string // nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer // periods will result in fewer calls to cloud provider, but may delay addition // of new nodes to cluster. @@ -506,6 +503,9 @@ type ResourceQuotaControllerConfiguration struct { } type SAControllerConfiguration struct { + // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key + // used to sign service account tokens. + ServiceAccountKeyFile string // concurrentSATokenSyncs is the number of service account token syncing operations // that will be done concurrently. ConcurrentSATokenSyncs int32 diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go index 129f5d650c54..55b10a115193 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go @@ -366,9 +366,6 @@ type KubeCloudSharedConfiguration struct { // configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs // to be configured on the cloud provider. ConfigureCloudRoutes *bool `json:"configureCloudRoutes"` - // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key - // used to sign service account tokens. - ServiceAccountKeyFile string `json:"serviceAccountKeyFile"` // nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer // periods will result in fewer calls to cloud provider, but may delay addition // of new nodes to cluster. @@ -549,6 +546,9 @@ type ResourceQuotaControllerConfiguration struct { } type SAControllerConfiguration struct { + // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key + // used to sign service account tokens. + ServiceAccountKeyFile string `json:"serviceAccountKeyFile"` // concurrentSATokenSyncs is the number of service account token syncing operations // that will be done concurrently. ConcurrentSATokenSyncs int32 `json:"concurrentSATokenSyncs"` diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index 9e6cc33cb32e..3412cc7c004a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -516,7 +516,6 @@ func autoConvert_v1alpha1_KubeCloudSharedConfiguration_To_componentconfig_KubeCl if err := v1.Convert_Pointer_bool_To_bool(&in.ConfigureCloudRoutes, &out.ConfigureCloudRoutes, s); err != nil { return err } - out.ServiceAccountKeyFile = in.ServiceAccountKeyFile out.NodeSyncPeriod = in.NodeSyncPeriod return nil } @@ -540,7 +539,6 @@ func autoConvert_componentconfig_KubeCloudSharedConfiguration_To_v1alpha1_KubeCl if err := v1.Convert_bool_To_Pointer_bool(&in.ConfigureCloudRoutes, &out.ConfigureCloudRoutes, s); err != nil { return err } - out.ServiceAccountKeyFile = in.ServiceAccountKeyFile out.NodeSyncPeriod = in.NodeSyncPeriod return nil } @@ -1045,6 +1043,7 @@ func Convert_componentconfig_ResourceQuotaControllerConfiguration_To_v1alpha1_Re } func autoConvert_v1alpha1_SAControllerConfiguration_To_componentconfig_SAControllerConfiguration(in *SAControllerConfiguration, out *componentconfig.SAControllerConfiguration, s conversion.Scope) error { + out.ServiceAccountKeyFile = in.ServiceAccountKeyFile out.ConcurrentSATokenSyncs = in.ConcurrentSATokenSyncs out.RootCAFile = in.RootCAFile return nil @@ -1056,6 +1055,7 @@ func Convert_v1alpha1_SAControllerConfiguration_To_componentconfig_SAControllerC } func autoConvert_componentconfig_SAControllerConfiguration_To_v1alpha1_SAControllerConfiguration(in *componentconfig.SAControllerConfiguration, out *SAControllerConfiguration, s conversion.Scope) error { + out.ServiceAccountKeyFile = in.ServiceAccountKeyFile out.ConcurrentSATokenSyncs = in.ConcurrentSATokenSyncs out.RootCAFile = in.RootCAFile return nil diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD index 20faf06e8be2..bed64c61992f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD @@ -12,7 +12,6 @@ go_library( "doc.go", "generated_expansion.go", "horizontalpodautoscaler.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/autoscaling_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/autoscaling_client.go index 129bb7180357..e00bc91913aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/autoscaling_client.go @@ -26,7 +26,6 @@ import ( type AutoscalingInterface interface { RESTClient() rest.Interface HorizontalPodAutoscalersGetter - VerticalPodAutoscalersGetter } // AutoscalingClient is used to interact with features provided by the autoscaling group. @@ -38,10 +37,6 @@ func (c *AutoscalingClient) HorizontalPodAutoscalers(namespace string) Horizonta return newHorizontalPodAutoscalers(c, namespace) } -func (c *AutoscalingClient) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface { - return newVerticalPodAutoscalers(c, namespace) -} - // NewForConfig creates a new AutoscalingClient for the given config. func NewForConfig(c *rest.Config) (*AutoscalingClient, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD index a24480c2eedb..f33ac2c64665 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD @@ -11,7 +11,6 @@ go_library( "doc.go", "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", - "fake_verticalpodautoscaler.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_autoscaling_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_autoscaling_client.go index 60b935840fe4..cfb590b39998 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_autoscaling_client.go @@ -32,10 +32,6 @@ func (c *FakeAutoscaling) HorizontalPodAutoscalers(namespace string) internalver return &FakeHorizontalPodAutoscalers{c, namespace} } -func (c *FakeAutoscaling) VerticalPodAutoscalers(namespace string) internalversion.VerticalPodAutoscalerInterface { - return &FakeVerticalPodAutoscalers{c, namespace} -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeAutoscaling) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_verticalpodautoscaler.go deleted file mode 100644 index bba30bd073a0..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/fake_verticalpodautoscaler.go +++ /dev/null @@ -1,140 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" -) - -// FakeVerticalPodAutoscalers implements VerticalPodAutoscalerInterface -type FakeVerticalPodAutoscalers struct { - Fake *FakeAutoscaling - ns string -} - -var verticalpodautoscalersResource = schema.GroupVersionResource{Group: "autoscaling", Version: "", Resource: "verticalpodautoscalers"} - -var verticalpodautoscalersKind = schema.GroupVersionKind{Group: "autoscaling", Version: "", Kind: "VerticalPodAutoscaler"} - -// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any. -func (c *FakeVerticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *autoscaling.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(verticalpodautoscalersResource, c.ns, name), &autoscaling.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling.VerticalPodAutoscaler), err -} - -// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors. -func (c *FakeVerticalPodAutoscalers) List(opts v1.ListOptions) (result *autoscaling.VerticalPodAutoscalerList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(verticalpodautoscalersResource, verticalpodautoscalersKind, c.ns, opts), &autoscaling.VerticalPodAutoscalerList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &autoscaling.VerticalPodAutoscalerList{ListMeta: obj.(*autoscaling.VerticalPodAutoscalerList).ListMeta} - for _, item := range obj.(*autoscaling.VerticalPodAutoscalerList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers. -func (c *FakeVerticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(verticalpodautoscalersResource, c.ns, opts)) - -} - -// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *FakeVerticalPodAutoscalers) Create(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (result *autoscaling.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(verticalpodautoscalersResource, c.ns, verticalPodAutoscaler), &autoscaling.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling.VerticalPodAutoscaler), err -} - -// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *FakeVerticalPodAutoscalers) Update(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (result *autoscaling.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(verticalpodautoscalersResource, c.ns, verticalPodAutoscaler), &autoscaling.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling.VerticalPodAutoscaler), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeVerticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (*autoscaling.VerticalPodAutoscaler, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(verticalpodautoscalersResource, "status", c.ns, verticalPodAutoscaler), &autoscaling.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling.VerticalPodAutoscaler), err -} - -// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *FakeVerticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(verticalpodautoscalersResource, c.ns, name), &autoscaling.VerticalPodAutoscaler{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeVerticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(verticalpodautoscalersResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &autoscaling.VerticalPodAutoscalerList{}) - return err -} - -// Patch applies the patch and returns the patched verticalPodAutoscaler. -func (c *FakeVerticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscaling.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(verticalpodautoscalersResource, c.ns, name, data, subresources...), &autoscaling.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling.VerticalPodAutoscaler), err -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/generated_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/generated_expansion.go index 286d9c1654e0..f00428522bde 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/generated_expansion.go @@ -19,5 +19,3 @@ limitations under the License. package internalversion type HorizontalPodAutoscalerExpansion interface{} - -type VerticalPodAutoscalerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/verticalpodautoscaler.go deleted file mode 100644 index 3837785a2b7a..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/verticalpodautoscaler.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" - scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" -) - -// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface. -// A group's client should implement this interface. -type VerticalPodAutoscalersGetter interface { - VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface -} - -// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources. -type VerticalPodAutoscalerInterface interface { - Create(*autoscaling.VerticalPodAutoscaler) (*autoscaling.VerticalPodAutoscaler, error) - Update(*autoscaling.VerticalPodAutoscaler) (*autoscaling.VerticalPodAutoscaler, error) - UpdateStatus(*autoscaling.VerticalPodAutoscaler) (*autoscaling.VerticalPodAutoscaler, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*autoscaling.VerticalPodAutoscaler, error) - List(opts v1.ListOptions) (*autoscaling.VerticalPodAutoscalerList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscaling.VerticalPodAutoscaler, err error) - VerticalPodAutoscalerExpansion -} - -// verticalPodAutoscalers implements VerticalPodAutoscalerInterface -type verticalPodAutoscalers struct { - client rest.Interface - ns string -} - -// newVerticalPodAutoscalers returns a VerticalPodAutoscalers -func newVerticalPodAutoscalers(c *AutoscalingClient, namespace string) *verticalPodAutoscalers { - return &verticalPodAutoscalers{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any. -func (c *verticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *autoscaling.VerticalPodAutoscaler, err error) { - result = &autoscaling.VerticalPodAutoscaler{} - err = c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors. -func (c *verticalPodAutoscalers) List(opts v1.ListOptions) (result *autoscaling.VerticalPodAutoscalerList, err error) { - result = &autoscaling.VerticalPodAutoscalerList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers. -func (c *verticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (result *autoscaling.VerticalPodAutoscaler, err error) { - result = &autoscaling.VerticalPodAutoscaler{} - err = c.client.Post(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (result *autoscaling.VerticalPodAutoscaler, err error) { - result = &autoscaling.VerticalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(verticalPodAutoscaler.Name). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *autoscaling.VerticalPodAutoscaler) (result *autoscaling.VerticalPodAutoscaler, err error) { - result = &autoscaling.VerticalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(verticalPodAutoscaler.Name). - SubResource("status"). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *verticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *verticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched verticalPodAutoscaler. -func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscaling.VerticalPodAutoscaler, err error) { - result = &autoscaling.VerticalPodAutoscaler{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD index db9ee447184e..a83f095145f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD @@ -10,7 +10,6 @@ go_library( srcs = [ "horizontalpodautoscaler.go", "interface.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go index 25c914dd143e..b1f4104a0138 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go @@ -26,8 +26,6 @@ import ( type Interface interface { // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer - // VerticalPodAutoscalers returns a VerticalPodAutoscalerInformer. - VerticalPodAutoscalers() VerticalPodAutoscalerInformer } type version struct { @@ -45,8 +43,3 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } - -// VerticalPodAutoscalers returns a VerticalPodAutoscalerInformer. -func (v *version) VerticalPodAutoscalers() VerticalPodAutoscalerInformer { - return &verticalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/verticalpodautoscaler.go deleted file mode 100644 index 303d9540d0db..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/verticalpodautoscaler.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package internalversion - -import ( - time "time" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" - autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" - internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" - internalversion "k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion" -) - -// VerticalPodAutoscalerInformer provides access to a shared informer and lister for -// VerticalPodAutoscalers. -type VerticalPodAutoscalerInformer interface { - Informer() cache.SharedIndexInformer - Lister() internalversion.VerticalPodAutoscalerLister -} - -type verticalPodAutoscalerInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewVerticalPodAutoscalerInformer constructs a new informer for VerticalPodAutoscaler type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewVerticalPodAutoscalerInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredVerticalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredVerticalPodAutoscalerInformer constructs a new informer for VerticalPodAutoscaler type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredVerticalPodAutoscalerInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.Autoscaling().VerticalPodAutoscalers(namespace).List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.Autoscaling().VerticalPodAutoscalers(namespace).Watch(options) - }, - }, - &autoscaling.VerticalPodAutoscaler{}, - resyncPeriod, - indexers, - ) -} - -func (f *verticalPodAutoscalerInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredVerticalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *verticalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling.VerticalPodAutoscaler{}, f.defaultInformer) -} - -func (f *verticalPodAutoscalerInformer) Lister() internalversion.VerticalPodAutoscalerLister { - return internalversion.NewVerticalPodAutoscalerLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go index 7c09c3eb8323..d28aa26ff36d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go @@ -81,8 +81,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=autoscaling, Version=internalVersion case autoscaling.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().InternalVersion().HorizontalPodAutoscalers().Informer()}, nil - case autoscaling.SchemeGroupVersion.WithResource("verticalpodautoscalers"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().InternalVersion().VerticalPodAutoscalers().Informer()}, nil // Group=batch, Version=internalVersion case batch.SchemeGroupVersion.WithResource("cronjobs"): diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/BUILD index 0523c45ee694..0553786590f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/BUILD @@ -10,7 +10,6 @@ go_library( srcs = [ "expansion_generated.go", "horizontalpodautoscaler.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/expansion_generated.go b/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/expansion_generated.go index fffbff331ce0..4cc32824d30b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/expansion_generated.go @@ -25,11 +25,3 @@ type HorizontalPodAutoscalerListerExpansion interface{} // HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to // HorizontalPodAutoscalerNamespaceLister. type HorizontalPodAutoscalerNamespaceListerExpansion interface{} - -// VerticalPodAutoscalerListerExpansion allows custom methods to be added to -// VerticalPodAutoscalerLister. -type VerticalPodAutoscalerListerExpansion interface{} - -// VerticalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to -// VerticalPodAutoscalerNamespaceLister. -type VerticalPodAutoscalerNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/verticalpodautoscaler.go deleted file mode 100644 index d689d47e3df7..000000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/autoscaling/internalversion/verticalpodautoscaler.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package internalversion - -import ( - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" -) - -// VerticalPodAutoscalerLister helps list VerticalPodAutoscalers. -type VerticalPodAutoscalerLister interface { - // List lists all VerticalPodAutoscalers in the indexer. - List(selector labels.Selector) (ret []*autoscaling.VerticalPodAutoscaler, err error) - // VerticalPodAutoscalers returns an object that can list and get VerticalPodAutoscalers. - VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerNamespaceLister - VerticalPodAutoscalerListerExpansion -} - -// verticalPodAutoscalerLister implements the VerticalPodAutoscalerLister interface. -type verticalPodAutoscalerLister struct { - indexer cache.Indexer -} - -// NewVerticalPodAutoscalerLister returns a new VerticalPodAutoscalerLister. -func NewVerticalPodAutoscalerLister(indexer cache.Indexer) VerticalPodAutoscalerLister { - return &verticalPodAutoscalerLister{indexer: indexer} -} - -// List lists all VerticalPodAutoscalers in the indexer. -func (s *verticalPodAutoscalerLister) List(selector labels.Selector) (ret []*autoscaling.VerticalPodAutoscaler, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*autoscaling.VerticalPodAutoscaler)) - }) - return ret, err -} - -// VerticalPodAutoscalers returns an object that can list and get VerticalPodAutoscalers. -func (s *verticalPodAutoscalerLister) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerNamespaceLister { - return verticalPodAutoscalerNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// VerticalPodAutoscalerNamespaceLister helps list and get VerticalPodAutoscalers. -type VerticalPodAutoscalerNamespaceLister interface { - // List lists all VerticalPodAutoscalers in the indexer for a given namespace. - List(selector labels.Selector) (ret []*autoscaling.VerticalPodAutoscaler, err error) - // Get retrieves the VerticalPodAutoscaler from the indexer for a given namespace and name. - Get(name string) (*autoscaling.VerticalPodAutoscaler, error) - VerticalPodAutoscalerNamespaceListerExpansion -} - -// verticalPodAutoscalerNamespaceLister implements the VerticalPodAutoscalerNamespaceLister -// interface. -type verticalPodAutoscalerNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all VerticalPodAutoscalers in the indexer for a given namespace. -func (s verticalPodAutoscalerNamespaceLister) List(selector labels.Selector) (ret []*autoscaling.VerticalPodAutoscaler, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*autoscaling.VerticalPodAutoscaler)) - }) - return ret, err -} - -// Get retrieves the VerticalPodAutoscaler from the indexer for a given namespace and name. -func (s verticalPodAutoscalerNamespaceLister) Get(name string) (*autoscaling.VerticalPodAutoscaler, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(autoscaling.Resource("verticalpodautoscaler"), name) - } - return obj.(*autoscaling.VerticalPodAutoscaler), nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/BUILD b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/BUILD index b4c51d476eb6..04cd70a81196 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/BUILD @@ -6,6 +6,7 @@ go_library( "constants.go", "context.go", "doc.go", + "errors.go", "gce_projects.go", "gen.go", "op.go", @@ -32,6 +33,8 @@ go_test( srcs = [ "gen_test.go", "mock_test.go", + "ratelimit_test.go", + "service_test.go", "utils_test.go", ], embed = [":go_default_library"], diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/errors.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/errors.go new file mode 100644 index 000000000000..1896a6d9e026 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/errors.go @@ -0,0 +1,48 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 cloud + +import "fmt" + +// OperationPollingError occurs when the GCE Operation cannot be retrieved for a prolonged period. +type OperationPollingError struct { + LastPollError error +} + +// Error returns a string representation including the last poll error encountered. +func (e *OperationPollingError) Error() string { + return fmt.Sprintf("GCE operation polling error: %v", e.LastPollError) +} + +// GCEOperationError occurs when the GCE Operation finishes with an error. +type GCEOperationError struct { + // HTTPStatusCode is the HTTP status code of the final error. + // For example, a failed operation may have 400 - BadRequest. + HTTPStatusCode int + // Code is GCE's code of what went wrong. + // For example, RESOURCE_IN_USE_BY_ANOTHER_RESOURCE + Code string + // Message is a human readable message. + // For example, "The network resource 'xxx' is already being used by 'xxx'" + Message string +} + +// Error returns a string representation including the HTTP Status code, GCE's error code +// and a human readable message. +func (e *GCEOperationError) Error() string { + return fmt.Sprintf("GCE %v - %v: %v", e.HTTPStatusCode, e.Code, e.Message) +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/op.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/op.go index 1bd2e0c484b9..358598776fcd 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/op.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/op.go @@ -29,10 +29,17 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) +const ( + operationStatusDone = "DONE" +) + // operation is a GCE operation that can be watied on. type operation interface { // isDone queries GCE for the done status. This call can block. isDone(ctx context.Context) (bool, error) + // error returns the resulting error of the operation. This may be nil if the operations + // was successful. + error() error // rateLimitKey returns the rate limit key to use for the given operation. // This rate limit will govern how fast the server will be polled for // operation completion status. @@ -43,6 +50,7 @@ type gaOperation struct { s *Service projectID string key *meta.Key + err error } func (o *gaOperation) String() string { @@ -71,7 +79,15 @@ func (o *gaOperation) isDone(ctx context.Context) (bool, error) { if err != nil { return false, err } - return op != nil && op.Status == "DONE", nil + if op == nil || op.Status != operationStatusDone { + return false, nil + } + + if op.Error != nil && len(op.Error.Errors) > 0 && op.Error.Errors[0] != nil { + e := op.Error.Errors[0] + o.err = &GCEOperationError{HTTPStatusCode: op.HTTPStatusCode, Code: e.Code, Message: e.Message} + } + return true, nil } func (o *gaOperation) rateLimitKey() *RateLimitKey { @@ -83,10 +99,15 @@ func (o *gaOperation) rateLimitKey() *RateLimitKey { } } +func (o *gaOperation) error() error { + return o.err +} + type alphaOperation struct { s *Service projectID string key *meta.Key + err error } func (o *alphaOperation) String() string { @@ -115,7 +136,15 @@ func (o *alphaOperation) isDone(ctx context.Context) (bool, error) { if err != nil { return false, err } - return op != nil && op.Status == "DONE", nil + if op == nil || op.Status != operationStatusDone { + return false, nil + } + + if op.Error != nil && len(op.Error.Errors) > 0 && op.Error.Errors[0] != nil { + e := op.Error.Errors[0] + o.err = &GCEOperationError{HTTPStatusCode: op.HTTPStatusCode, Code: e.Code, Message: e.Message} + } + return true, nil } func (o *alphaOperation) rateLimitKey() *RateLimitKey { @@ -127,10 +156,15 @@ func (o *alphaOperation) rateLimitKey() *RateLimitKey { } } +func (o *alphaOperation) error() error { + return o.err +} + type betaOperation struct { s *Service projectID string key *meta.Key + err error } func (o *betaOperation) String() string { @@ -159,7 +193,15 @@ func (o *betaOperation) isDone(ctx context.Context) (bool, error) { if err != nil { return false, err } - return op != nil && op.Status == "DONE", nil + if op == nil || op.Status != operationStatusDone { + return false, nil + } + + if op.Error != nil && len(op.Error.Errors) > 0 && op.Error.Errors[0] != nil { + e := op.Error.Errors[0] + o.err = &GCEOperationError{HTTPStatusCode: op.HTTPStatusCode, Code: e.Code, Message: e.Message} + } + return true, nil } func (o *betaOperation) rateLimitKey() *RateLimitKey { @@ -170,3 +212,7 @@ func (o *betaOperation) rateLimitKey() *RateLimitKey { Version: meta.VersionBeta, } } + +func (o *betaOperation) error() error { + return o.err +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit.go index e38b8f7de3ca..ca1278a008d0 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit.go @@ -47,22 +47,60 @@ type RateLimiter interface { Accept(ctx context.Context, key *RateLimitKey) error } +// acceptor is an object which blocks within Accept until a call is allowed to run. +// Accept is a behavior of the flowcontrol.RateLimiter interface. +type acceptor interface { + // Accept blocks until a call is allowed to run. + Accept() +} + +// AcceptRateLimiter wraps an Acceptor with RateLimiter parameters. +type AcceptRateLimiter struct { + // Acceptor is the underlying rate limiter. + Acceptor acceptor +} + +// Accept wraps an Acceptor and blocks on Accept or context.Done(). Key is ignored. +func (rl *AcceptRateLimiter) Accept(ctx context.Context, key *RateLimitKey) error { + ch := make(chan struct{}) + go func() { + rl.Acceptor.Accept() + close(ch) + }() + select { + case <-ch: + break + case <-ctx.Done(): + return ctx.Err() + } + return nil +} + // NopRateLimiter is a rate limiter that performs no rate limiting. type NopRateLimiter struct { } -// Accept the operation to be rate limited. +// Accept everything immediately. func (*NopRateLimiter) Accept(ctx context.Context, key *RateLimitKey) error { - // Rate limit polling of the Operation status to avoid hammering GCE - // for the status of an operation. - const pollTime = time.Duration(1) * time.Second - if key.Operation == "Get" && key.Service == "Operations" { - select { - case <-time.NewTimer(pollTime).C: - break - case <-ctx.Done(): - return ctx.Err() - } - } return nil } + +// MinimumRateLimiter wraps a RateLimiter and will only call its Accept until the minimum +// duration has been met or the context is cancelled. +type MinimumRateLimiter struct { + // RateLimiter is the underlying ratelimiter which is called after the mininum time is reacehd. + RateLimiter RateLimiter + // Minimum is the minimum wait time before the underlying ratelimiter is called. + Minimum time.Duration +} + +// Accept blocks on the minimum duration and context. Once the minimum duration is met, +// the func is blocked on the underlying ratelimiter. +func (m *MinimumRateLimiter) Accept(ctx context.Context, key *RateLimitKey) error { + select { + case <-time.After(m.Minimum): + return m.RateLimiter.Accept(ctx, key) + case <-ctx.Done(): + return ctx.Err() + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit_test.go new file mode 100644 index 000000000000..4bb4512e1337 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/ratelimit_test.go @@ -0,0 +1,80 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 cloud + +import ( + "context" + "testing" + "time" +) + +type FakeAcceptor struct{ accept func() } + +func (f *FakeAcceptor) Accept() { + f.accept() +} + +func TestAcceptRateLimiter(t *testing.T) { + fa := &FakeAcceptor{accept: func() {}} + arl := &AcceptRateLimiter{fa} + err := arl.Accept(context.Background(), nil) + if err != nil { + t.Errorf("AcceptRateLimiter.Accept() = %v, want nil", err) + } + + // Use context that has been cancelled and expect a context error returned. + ctxCancelled, cancelled := context.WithCancel(context.Background()) + cancelled() + // Verify context is cancelled by now. + <-ctxCancelled.Done() + + fa.accept = func() { time.Sleep(1 * time.Second) } + err = arl.Accept(ctxCancelled, nil) + if err != ctxCancelled.Err() { + t.Errorf("AcceptRateLimiter.Accept() = %v, want %v", err, ctxCancelled.Err()) + } +} + +func TestMinimumRateLimiter(t *testing.T) { + fa := &FakeAcceptor{accept: func() {}} + arl := &AcceptRateLimiter{fa} + var called bool + fa.accept = func() { called = true } + m := &MinimumRateLimiter{RateLimiter: arl, Minimum: 10 * time.Millisecond} + + err := m.Accept(context.Background(), nil) + if err != nil { + t.Errorf("MinimumRateLimiter.Accept = %v, want nil", err) + } + if !called { + t.Errorf("`called` = false, want true") + } + + // Use context that has been cancelled and expect a context error returned. + ctxCancelled, cancelled := context.WithCancel(context.Background()) + cancelled() + // Verify context is cancelled by now. + <-ctxCancelled.Done() + called = false + err = m.Accept(ctxCancelled, nil) + if err != ctxCancelled.Err() { + t.Errorf("AcceptRateLimiter.Accept() = %v, want %v", err, ctxCancelled.Err()) + } + if called { + t.Errorf("`called` = true, want false") + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service.go index 99ed7d226b73..2f332dfff854 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service.go @@ -45,19 +45,19 @@ func (s *Service) wrapOperation(anyOp interface{}) (operation, error) { if err != nil { return nil, err } - return &gaOperation{s, r.ProjectID, r.Key}, nil + return &gaOperation{s: s, projectID: r.ProjectID, key: r.Key}, nil case *alpha.Operation: r, err := ParseResourceURL(o.SelfLink) if err != nil { return nil, err } - return &alphaOperation{s, r.ProjectID, r.Key}, nil + return &alphaOperation{s: s, projectID: r.ProjectID, key: r.Key}, nil case *beta.Operation: r, err := ParseResourceURL(o.SelfLink) if err != nil { return nil, err } - return &betaOperation{s, r.ProjectID, r.Key}, nil + return &betaOperation{s: s, projectID: r.ProjectID, key: r.Key}, nil default: return nil, fmt.Errorf("invalid type %T", anyOp) } @@ -72,14 +72,39 @@ func (s *Service) WaitForCompletion(ctx context.Context, genericOp interface{}) glog.Errorf("wrapOperation(%+v) error: %v", genericOp, err) return err } - for done, err := op.isDone(ctx); !done; done, err = op.isDone(ctx) { - if err != nil { - glog.V(4).Infof("op.isDone(%v) error; op = %v, err = %v", ctx, op, err) - return err + + return s.pollOperation(ctx, op) +} + +// pollOperation calls operations.isDone until the function comes back true or context is Done. +// If an error occurs retrieving the operation, the loop will continue until the context is done. +// This is to prevent a transient error from bubbling up to controller-level logic. +func (s *Service) pollOperation(ctx context.Context, op operation) error { + var pollCount int + for { + // Check if context has been cancelled. Note that ctx.Done() must be checked before + // returning ctx.Err(). + select { + case <-ctx.Done(): + glog.V(5).Infof("op.pollOperation(%v, %v) not completed, poll count = %d, ctx.Err = %v", ctx, op, pollCount, ctx.Err()) + return ctx.Err() + default: + // ctx is not canceled, continue immediately } - glog.V(5).Infof("op.isDone(%v) waiting; op = %v", ctx, op) + + pollCount++ + glog.V(5).Infof("op.isDone(%v) waiting; op = %v, poll count = %d", ctx, op, pollCount) s.RateLimiter.Accept(ctx, op.rateLimitKey()) + done, err := op.isDone(ctx) + if err != nil { + glog.V(5).Infof("op.isDone(%v) error; op = %v, poll count = %d, err = %v, retrying", ctx, op, pollCount, err) + } + + if done { + break + } } - glog.V(5).Infof("op.isDone(%v) complete; op = %v", ctx, op) - return nil + + glog.V(5).Infof("op.isDone(%v) complete; op = %v, poll count = %d, op.err = %v", ctx, op, pollCount, op.error()) + return op.error() } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service_test.go new file mode 100644 index 000000000000..fc6fbb51d899 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/service_test.go @@ -0,0 +1,84 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 cloud + +import ( + "context" + "fmt" + "testing" +) + +func TestPollOperation(t *testing.T) { + const totalAttempts = 10 + var attempts int + fo := &fakeOperation{isDoneFunc: func(ctx context.Context) (bool, error) { + attempts++ + if attempts < totalAttempts { + return false, nil + } + return true, nil + }} + s := Service{RateLimiter: &NopRateLimiter{}} + // Check that pollOperation will retry the operation multiple times. + err := s.pollOperation(context.Background(), fo) + if err != nil { + t.Errorf("pollOperation() = %v, want nil", err) + } + if attempts != totalAttempts { + t.Errorf("`attempts` = %d, want %d", attempts, totalAttempts) + } + + // Check that the operation's error is returned. + fo.err = fmt.Errorf("test operation failed") + err = s.pollOperation(context.Background(), fo) + if err != fo.err { + t.Errorf("pollOperation() = %v, want %v", err, fo.err) + } + fo.err = nil + + fo.isDoneFunc = func(ctx context.Context) (bool, error) { + return false, nil + } + // Use context that has been cancelled and expect a context error returned. + ctxCancelled, cancelled := context.WithCancel(context.Background()) + cancelled() + // Verify context is cancelled by now. + <-ctxCancelled.Done() + // Check that pollOperation returns because the context is cancelled. + err = s.pollOperation(ctxCancelled, fo) + if err == nil { + t.Errorf("pollOperation() = nil, want: %v", ctxCancelled.Err()) + } +} + +type fakeOperation struct { + isDoneFunc func(ctx context.Context) (bool, error) + err error + rateKey *RateLimitKey +} + +func (f *fakeOperation) isDone(ctx context.Context) (bool, error) { + return f.isDoneFunc(ctx) +} + +func (f *fakeOperation) error() error { + return f.err +} + +func (f *fakeOperation) rateLimitKey() *RateLimitKey { + return f.rateKey +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go index 383744f23d46..c2defec38964 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go @@ -68,7 +68,7 @@ const ( // AffinityTypeClientIPProto - affinity based on Client IP and port. gceAffinityTypeClientIPProto = "CLIENT_IP_PROTO" - operationPollInterval = 3 * time.Second + operationPollInterval = time.Second // Creating Route in very large clusters, may take more than half an hour. operationPollTimeoutDuration = time.Hour @@ -484,7 +484,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { glog.Infof("managing multiple zones: %v", config.ManagedZones) } - operationPollRateLimiter := flowcontrol.NewTokenBucketRateLimiter(10, 100) // 10 qps, 100 bucket size. + operationPollRateLimiter := flowcontrol.NewTokenBucketRateLimiter(5, 5) // 5 qps, 5 burst. gce := &GCECloud{ service: service, diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_addresses.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_addresses.go index 37e2f5e9a7b0..2bf3e20b051b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_addresses.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_addresses.go @@ -17,7 +17,6 @@ limitations under the License. package gce import ( - "context" "fmt" "github.com/golang/glog" @@ -44,72 +43,105 @@ func newAddressMetricContextWithVersion(request, region, version string) *metric // ipAddress is specified, it must belong to the current project, eg: an // ephemeral IP associated with a global forwarding rule. func (gce *GCECloud) ReserveGlobalAddress(addr *compute.Address) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("reserve", "") - return mc.Observe(gce.c.GlobalAddresses().Insert(context.Background(), meta.GlobalKey(addr.Name), addr)) + return mc.Observe(gce.c.GlobalAddresses().Insert(ctx, meta.GlobalKey(addr.Name), addr)) } // DeleteGlobalAddress deletes a global address by name. func (gce *GCECloud) DeleteGlobalAddress(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("delete", "") - return mc.Observe(gce.c.GlobalAddresses().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.GlobalAddresses().Delete(ctx, meta.GlobalKey(name))) } // GetGlobalAddress returns the global address by name. func (gce *GCECloud) GetGlobalAddress(name string) (*compute.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("get", "") - v, err := gce.c.GlobalAddresses().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.GlobalAddresses().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // ReserveRegionAddress creates a region address func (gce *GCECloud) ReserveRegionAddress(addr *compute.Address, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("reserve", region) - return mc.Observe(gce.c.Addresses().Insert(context.Background(), meta.RegionalKey(addr.Name, region), addr)) + return mc.Observe(gce.c.Addresses().Insert(ctx, meta.RegionalKey(addr.Name, region), addr)) } // ReserveAlphaRegionAddress creates an Alpha, regional address. func (gce *GCECloud) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("reserve", region) - return mc.Observe(gce.c.AlphaAddresses().Insert(context.Background(), meta.RegionalKey(addr.Name, region), addr)) + return mc.Observe(gce.c.AlphaAddresses().Insert(ctx, meta.RegionalKey(addr.Name, region), addr)) } // ReserveBetaRegionAddress creates a beta region address func (gce *GCECloud) ReserveBetaRegionAddress(addr *computebeta.Address, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("reserve", region) - return mc.Observe(gce.c.BetaAddresses().Insert(context.Background(), meta.RegionalKey(addr.Name, region), addr)) + return mc.Observe(gce.c.BetaAddresses().Insert(ctx, meta.RegionalKey(addr.Name, region), addr)) } // DeleteRegionAddress deletes a region address by name. func (gce *GCECloud) DeleteRegionAddress(name, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("delete", region) - return mc.Observe(gce.c.Addresses().Delete(context.Background(), meta.RegionalKey(name, region))) + return mc.Observe(gce.c.Addresses().Delete(ctx, meta.RegionalKey(name, region))) } // GetRegionAddress returns the region address by name func (gce *GCECloud) GetRegionAddress(name, region string) (*compute.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("get", region) - v, err := gce.c.Addresses().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.Addresses().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // GetAlphaRegionAddress returns the Alpha, regional address by name. func (gce *GCECloud) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("get", region) - v, err := gce.c.AlphaAddresses().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.AlphaAddresses().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // GetBetaRegionAddress returns the beta region address by name func (gce *GCECloud) GetBetaRegionAddress(name, region string) (*computebeta.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("get", region) - v, err := gce.c.BetaAddresses().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.BetaAddresses().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // GetRegionAddressByIP returns the regional address matching the given IP address. func (gce *GCECloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("list", region) - addrs, err := gce.c.Addresses().List(context.Background(), region, filter.Regexp("address", ipAddress)) + addrs, err := gce.c.Addresses().List(ctx, region, filter.Regexp("address", ipAddress)) mc.Observe(err) if err != nil { @@ -129,8 +161,11 @@ func (gce *GCECloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Ad // GetBetaRegionAddressByIP returns the beta regional address matching the given IP address. func (gce *GCECloud) GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta.Address, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newAddressMetricContext("list", region) - addrs, err := gce.c.BetaAddresses().List(context.Background(), region, filter.Regexp("address", ipAddress)) + addrs, err := gce.c.BetaAddresses().List(ctx, region, filter.Regexp("address", ipAddress)) mc.Observe(err) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_backendservice.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_backendservice.go index d63728038ec0..4b330a49edeb 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_backendservice.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_backendservice.go @@ -17,12 +17,11 @@ limitations under the License. package gce import ( - "context" - computealpha "google.golang.org/api/compute/v0.alpha" computebeta "google.golang.org/api/compute/v0.beta" compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -37,61 +36,88 @@ func newBackendServiceMetricContextWithVersion(request, region, version string) // GetGlobalBackendService retrieves a backend by name. func (gce *GCECloud) GetGlobalBackendService(name string) (*compute.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("get", "") - v, err := gce.c.BackendServices().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.BackendServices().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // GetBetaGlobalBackendService retrieves beta backend by name. func (gce *GCECloud) GetBetaGlobalBackendService(name string) (*computebeta.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContextWithVersion("get", "", computeBetaVersion) - v, err := gce.c.BetaBackendServices().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.BetaBackendServices().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // GetAlphaGlobalBackendService retrieves alpha backend by name. func (gce *GCECloud) GetAlphaGlobalBackendService(name string) (*computealpha.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContextWithVersion("get", "", computeAlphaVersion) - v, err := gce.c.AlphaBackendServices().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.AlphaBackendServices().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // UpdateGlobalBackendService applies the given BackendService as an update to // an existing service. func (gce *GCECloud) UpdateGlobalBackendService(bg *compute.BackendService) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("update", "") - return mc.Observe(gce.c.BackendServices().Update(context.Background(), meta.GlobalKey(bg.Name), bg)) + return mc.Observe(gce.c.BackendServices().Update(ctx, meta.GlobalKey(bg.Name), bg)) } // UpdateAlphaGlobalBackendService applies the given alpha BackendService as an // update to an existing service. func (gce *GCECloud) UpdateAlphaGlobalBackendService(bg *computealpha.BackendService) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("update", "") - return mc.Observe(gce.c.AlphaBackendServices().Update(context.Background(), meta.GlobalKey(bg.Name), bg)) + return mc.Observe(gce.c.AlphaBackendServices().Update(ctx, meta.GlobalKey(bg.Name), bg)) } // DeleteGlobalBackendService deletes the given BackendService by name. func (gce *GCECloud) DeleteGlobalBackendService(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("delete", "") - return mc.Observe(gce.c.BackendServices().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.BackendServices().Delete(ctx, meta.GlobalKey(name))) } // CreateGlobalBackendService creates the given BackendService. func (gce *GCECloud) CreateGlobalBackendService(bg *compute.BackendService) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("create", "") - return mc.Observe(gce.c.BackendServices().Insert(context.Background(), meta.GlobalKey(bg.Name), bg)) + return mc.Observe(gce.c.BackendServices().Insert(ctx, meta.GlobalKey(bg.Name), bg)) } // CreateAlphaGlobalBackendService creates the given alpha BackendService. func (gce *GCECloud) CreateAlphaGlobalBackendService(bg *computealpha.BackendService) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("create", "") - return mc.Observe(gce.c.AlphaBackendServices().Insert(context.Background(), meta.GlobalKey(bg.Name), bg)) + return mc.Observe(gce.c.AlphaBackendServices().Insert(ctx, meta.GlobalKey(bg.Name), bg)) } // ListGlobalBackendServices lists all backend services in the project. func (gce *GCECloud) ListGlobalBackendServices() ([]*compute.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("list", "") - v, err := gce.c.BackendServices().List(context.Background(), filter.None) + v, err := gce.c.BackendServices().List(ctx, filter.None) return v, mc.Observe(err) } @@ -99,42 +125,60 @@ func (gce *GCECloud) ListGlobalBackendServices() ([]*compute.BackendService, err // identified by the given name, in the given instanceGroup. The // instanceGroupLink is the fully qualified self link of an instance group. func (gce *GCECloud) GetGlobalBackendServiceHealth(name string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("get_health", "") groupRef := &compute.ResourceGroupReference{Group: instanceGroupLink} - v, err := gce.c.BackendServices().GetHealth(context.Background(), meta.GlobalKey(name), groupRef) + v, err := gce.c.BackendServices().GetHealth(ctx, meta.GlobalKey(name), groupRef) return v, mc.Observe(err) } // GetRegionBackendService retrieves a backend by name. func (gce *GCECloud) GetRegionBackendService(name, region string) (*compute.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("get", region) - v, err := gce.c.RegionBackendServices().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.RegionBackendServices().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // UpdateRegionBackendService applies the given BackendService as an update to // an existing service. func (gce *GCECloud) UpdateRegionBackendService(bg *compute.BackendService, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("update", region) - return mc.Observe(gce.c.RegionBackendServices().Update(context.Background(), meta.RegionalKey(bg.Name, region), bg)) + return mc.Observe(gce.c.RegionBackendServices().Update(ctx, meta.RegionalKey(bg.Name, region), bg)) } // DeleteRegionBackendService deletes the given BackendService by name. func (gce *GCECloud) DeleteRegionBackendService(name, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("delete", region) - return mc.Observe(gce.c.RegionBackendServices().Delete(context.Background(), meta.RegionalKey(name, region))) + return mc.Observe(gce.c.RegionBackendServices().Delete(ctx, meta.RegionalKey(name, region))) } // CreateRegionBackendService creates the given BackendService. func (gce *GCECloud) CreateRegionBackendService(bg *compute.BackendService, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("create", region) - return mc.Observe(gce.c.RegionBackendServices().Insert(context.Background(), meta.RegionalKey(bg.Name, region), bg)) + return mc.Observe(gce.c.RegionBackendServices().Insert(ctx, meta.RegionalKey(bg.Name, region), bg)) } // ListRegionBackendServices lists all backend services in the project. func (gce *GCECloud) ListRegionBackendServices(region string) ([]*compute.BackendService, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("list", region) - v, err := gce.c.RegionBackendServices().List(context.Background(), region, filter.None) + v, err := gce.c.RegionBackendServices().List(ctx, region, filter.None) return v, mc.Observe(err) } @@ -142,22 +186,31 @@ func (gce *GCECloud) ListRegionBackendServices(region string) ([]*compute.Backen // identified by the given name, in the given instanceGroup. The // instanceGroupLink is the fully qualified self link of an instance group. func (gce *GCECloud) GetRegionalBackendServiceHealth(name, region string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContext("get_health", region) ref := &compute.ResourceGroupReference{Group: instanceGroupLink} - v, err := gce.c.RegionBackendServices().GetHealth(context.Background(), meta.RegionalKey(name, region), ref) + v, err := gce.c.RegionBackendServices().GetHealth(ctx, meta.RegionalKey(name, region), ref) return v, mc.Observe(err) } // SetSecurityPolicyForBetaGlobalBackendService sets the given // SecurityPolicyReference for the BackendService identified by the given name. func (gce *GCECloud) SetSecurityPolicyForBetaGlobalBackendService(backendServiceName string, securityPolicyReference *computebeta.SecurityPolicyReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContextWithVersion("set_security_policy", "", computeBetaVersion) - return mc.Observe(gce.c.BetaBackendServices().SetSecurityPolicy(context.Background(), meta.GlobalKey(backendServiceName), securityPolicyReference)) + return mc.Observe(gce.c.BetaBackendServices().SetSecurityPolicy(ctx, meta.GlobalKey(backendServiceName), securityPolicyReference)) } // SetSecurityPolicyForAlphaGlobalBackendService sets the given // SecurityPolicyReference for the BackendService identified by the given name. func (gce *GCECloud) SetSecurityPolicyForAlphaGlobalBackendService(backendServiceName string, securityPolicyReference *computealpha.SecurityPolicyReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newBackendServiceMetricContextWithVersion("set_security_policy", "", computeAlphaVersion) - return mc.Observe(gce.c.AlphaBackendServices().SetSecurityPolicy(context.Background(), meta.GlobalKey(backendServiceName), securityPolicyReference)) + return mc.Observe(gce.c.AlphaBackendServices().SetSecurityPolicy(ctx, meta.GlobalKey(backendServiceName), securityPolicyReference)) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_cert.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_cert.go index f91ce879e39b..3b6614f816f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_cert.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_cert.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -31,15 +30,21 @@ func newCertMetricContext(request string) *metricContext { // GetSslCertificate returns the SslCertificate by name. func (gce *GCECloud) GetSslCertificate(name string) (*compute.SslCertificate, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newCertMetricContext("get") - v, err := gce.c.SslCertificates().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.SslCertificates().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // CreateSslCertificate creates and returns a SslCertificate. func (gce *GCECloud) CreateSslCertificate(sslCerts *compute.SslCertificate) (*compute.SslCertificate, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newCertMetricContext("create") - err := gce.c.SslCertificates().Insert(context.Background(), meta.GlobalKey(sslCerts.Name), sslCerts) + err := gce.c.SslCertificates().Insert(ctx, meta.GlobalKey(sslCerts.Name), sslCerts) if err != nil { return nil, mc.Observe(err) } @@ -48,13 +53,19 @@ func (gce *GCECloud) CreateSslCertificate(sslCerts *compute.SslCertificate) (*co // DeleteSslCertificate deletes the SslCertificate by name. func (gce *GCECloud) DeleteSslCertificate(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newCertMetricContext("delete") - return mc.Observe(gce.c.SslCertificates().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.SslCertificates().Delete(ctx, meta.GlobalKey(name))) } // ListSslCertificates lists all SslCertificates in the project. func (gce *GCECloud) ListSslCertificates() ([]*compute.SslCertificate, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newCertMetricContext("list") - v, err := gce.c.SslCertificates().List(context.Background(), filter.None) + v, err := gce.c.SslCertificates().List(ctx, filter.None) return v, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_firewall.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_firewall.go index 88db0ebd3b9d..e138df87471b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_firewall.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_firewall.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -30,25 +29,37 @@ func newFirewallMetricContext(request string) *metricContext { // GetFirewall returns the Firewall by name. func (gce *GCECloud) GetFirewall(name string) (*compute.Firewall, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newFirewallMetricContext("get") - v, err := gce.c.Firewalls().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.Firewalls().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // CreateFirewall creates the passed firewall func (gce *GCECloud) CreateFirewall(f *compute.Firewall) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newFirewallMetricContext("create") - return mc.Observe(gce.c.Firewalls().Insert(context.Background(), meta.GlobalKey(f.Name), f)) + return mc.Observe(gce.c.Firewalls().Insert(ctx, meta.GlobalKey(f.Name), f)) } // DeleteFirewall deletes the given firewall rule. func (gce *GCECloud) DeleteFirewall(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newFirewallMetricContext("delete") - return mc.Observe(gce.c.Firewalls().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.Firewalls().Delete(ctx, meta.GlobalKey(name))) } // UpdateFirewall applies the given firewall as an update to an existing service. func (gce *GCECloud) UpdateFirewall(f *compute.Firewall) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newFirewallMetricContext("update") - return mc.Observe(gce.c.Firewalls().Update(context.Background(), meta.GlobalKey(f.Name), f)) + return mc.Observe(gce.c.Firewalls().Update(ctx, meta.GlobalKey(f.Name), f)) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_forwardingrule.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_forwardingrule.go index 9fe0da9f7ccf..b40652c98e32 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_forwardingrule.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_forwardingrule.go @@ -17,8 +17,6 @@ limitations under the License. package gce import ( - "context" - computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" @@ -35,84 +33,120 @@ func newForwardingRuleMetricContextWithVersion(request, region, version string) // CreateGlobalForwardingRule creates the passed GlobalForwardingRule func (gce *GCECloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("create", "") - return mc.Observe(gce.c.GlobalForwardingRules().Insert(context.Background(), meta.GlobalKey(rule.Name), rule)) + return mc.Observe(gce.c.GlobalForwardingRules().Insert(ctx, meta.GlobalKey(rule.Name), rule)) } // SetProxyForGlobalForwardingRule links the given TargetHttp(s)Proxy with the given GlobalForwardingRule. // targetProxyLink is the SelfLink of a TargetHttp(s)Proxy. func (gce *GCECloud) SetProxyForGlobalForwardingRule(forwardingRuleName, targetProxyLink string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("set_proxy", "") target := &compute.TargetReference{Target: targetProxyLink} - return mc.Observe(gce.c.GlobalForwardingRules().SetTarget(context.Background(), meta.GlobalKey(forwardingRuleName), target)) + return mc.Observe(gce.c.GlobalForwardingRules().SetTarget(ctx, meta.GlobalKey(forwardingRuleName), target)) } // DeleteGlobalForwardingRule deletes the GlobalForwardingRule by name. func (gce *GCECloud) DeleteGlobalForwardingRule(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("delete", "") - return mc.Observe(gce.c.GlobalForwardingRules().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.GlobalForwardingRules().Delete(ctx, meta.GlobalKey(name))) } // GetGlobalForwardingRule returns the GlobalForwardingRule by name. func (gce *GCECloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("get", "") - v, err := gce.c.GlobalForwardingRules().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.GlobalForwardingRules().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // ListGlobalForwardingRules lists all GlobalForwardingRules in the project. func (gce *GCECloud) ListGlobalForwardingRules() ([]*compute.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("list", "") - v, err := gce.c.GlobalForwardingRules().List(context.Background(), filter.None) + v, err := gce.c.GlobalForwardingRules().List(ctx, filter.None) return v, mc.Observe(err) } // GetRegionForwardingRule returns the RegionalForwardingRule by name & region. func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("get", region) - v, err := gce.c.ForwardingRules().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.ForwardingRules().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region. func (gce *GCECloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContextWithVersion("get", region, computeAlphaVersion) - v, err := gce.c.AlphaForwardingRules().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.AlphaForwardingRules().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // ListRegionForwardingRules lists all RegionalForwardingRules in the project & region. func (gce *GCECloud) ListRegionForwardingRules(region string) ([]*compute.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("list", region) - v, err := gce.c.ForwardingRules().List(context.Background(), region, filter.None) + v, err := gce.c.ForwardingRules().List(ctx, region, filter.None) return v, mc.Observe(err) } // ListAlphaRegionForwardingRules lists all RegionalForwardingRules in the project & region. func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) ([]*computealpha.ForwardingRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContextWithVersion("list", region, computeAlphaVersion) - v, err := gce.c.AlphaForwardingRules().List(context.Background(), region, filter.None) + v, err := gce.c.AlphaForwardingRules().List(ctx, region, filter.None) return v, mc.Observe(err) } // CreateRegionForwardingRule creates and returns a // RegionalForwardingRule that points to the given BackendService func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("create", region) - return mc.Observe(gce.c.ForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule)) + return mc.Observe(gce.c.ForwardingRules().Insert(ctx, meta.RegionalKey(rule.Name, region), rule)) } // CreateAlphaRegionForwardingRule creates and returns an Alpha // forwarding fule in the given region. func (gce *GCECloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContextWithVersion("create", region, computeAlphaVersion) - return mc.Observe(gce.c.AlphaForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule)) + return mc.Observe(gce.c.AlphaForwardingRules().Insert(ctx, meta.RegionalKey(rule.Name, region), rule)) } // DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region. func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newForwardingRuleMetricContext("delete", region) - return mc.Observe(gce.c.ForwardingRules().Delete(context.Background(), meta.RegionalKey(name, region))) + return mc.Observe(gce.c.ForwardingRules().Delete(ctx, meta.RegionalKey(name, region))) } // TODO(#51665): retire this function once Network Tiers becomes Beta in GCP. diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_healthchecks.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_healthchecks.go index e4c0829e1088..937ba295079b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_healthchecks.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_healthchecks.go @@ -17,14 +17,13 @@ limitations under the License. package gce import ( - "context" - "github.com/golang/glog" computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" "k8s.io/kubernetes/pkg/master/ports" @@ -58,33 +57,48 @@ func newHealthcheckMetricContextWithVersion(request, version string) *metricCont // GetHttpHealthCheck returns the given HttpHealthCheck by name. func (gce *GCECloud) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("get_legacy") - v, err := gce.c.HttpHealthChecks().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.HttpHealthChecks().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // UpdateHttpHealthCheck applies the given HttpHealthCheck as an update. func (gce *GCECloud) UpdateHttpHealthCheck(hc *compute.HttpHealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("update_legacy") - return mc.Observe(gce.c.HttpHealthChecks().Update(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HttpHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc)) } // DeleteHttpHealthCheck deletes the given HttpHealthCheck by name. func (gce *GCECloud) DeleteHttpHealthCheck(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("delete_legacy") - return mc.Observe(gce.c.HttpHealthChecks().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.HttpHealthChecks().Delete(ctx, meta.GlobalKey(name))) } // CreateHttpHealthCheck creates the given HttpHealthCheck. func (gce *GCECloud) CreateHttpHealthCheck(hc *compute.HttpHealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("create_legacy") - return mc.Observe(gce.c.HttpHealthChecks().Insert(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HttpHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc)) } // ListHttpHealthChecks lists all HttpHealthChecks in the project. func (gce *GCECloud) ListHttpHealthChecks() ([]*compute.HttpHealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("list_legacy") - v, err := gce.c.HttpHealthChecks().List(context.Background(), filter.None) + v, err := gce.c.HttpHealthChecks().List(ctx, filter.None) return v, mc.Observe(err) } @@ -92,33 +106,48 @@ func (gce *GCECloud) ListHttpHealthChecks() ([]*compute.HttpHealthCheck, error) // GetHttpsHealthCheck returns the given HttpsHealthCheck by name. func (gce *GCECloud) GetHttpsHealthCheck(name string) (*compute.HttpsHealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("get_legacy") - v, err := gce.c.HttpsHealthChecks().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.HttpsHealthChecks().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // UpdateHttpsHealthCheck applies the given HttpsHealthCheck as an update. func (gce *GCECloud) UpdateHttpsHealthCheck(hc *compute.HttpsHealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("update_legacy") - return mc.Observe(gce.c.HttpsHealthChecks().Update(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HttpsHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc)) } // DeleteHttpsHealthCheck deletes the given HttpsHealthCheck by name. func (gce *GCECloud) DeleteHttpsHealthCheck(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("delete_legacy") - return mc.Observe(gce.c.HttpsHealthChecks().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.HttpsHealthChecks().Delete(ctx, meta.GlobalKey(name))) } // CreateHttpsHealthCheck creates the given HttpsHealthCheck. func (gce *GCECloud) CreateHttpsHealthCheck(hc *compute.HttpsHealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("create_legacy") - return mc.Observe(gce.c.HttpsHealthChecks().Insert(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HttpsHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc)) } // ListHttpsHealthChecks lists all HttpsHealthChecks in the project. func (gce *GCECloud) ListHttpsHealthChecks() ([]*compute.HttpsHealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("list_legacy") - v, err := gce.c.HttpsHealthChecks().List(context.Background(), filter.None) + v, err := gce.c.HttpsHealthChecks().List(ctx, filter.None) return v, mc.Observe(err) } @@ -126,52 +155,76 @@ func (gce *GCECloud) ListHttpsHealthChecks() ([]*compute.HttpsHealthCheck, error // GetHealthCheck returns the given HealthCheck by name. func (gce *GCECloud) GetHealthCheck(name string) (*compute.HealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("get") - v, err := gce.c.HealthChecks().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.HealthChecks().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // GetAlphaHealthCheck returns the given alpha HealthCheck by name. func (gce *GCECloud) GetAlphaHealthCheck(name string) (*computealpha.HealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContextWithVersion("get", computeAlphaVersion) - v, err := gce.c.AlphaHealthChecks().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.AlphaHealthChecks().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // UpdateHealthCheck applies the given HealthCheck as an update. func (gce *GCECloud) UpdateHealthCheck(hc *compute.HealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("update") - return mc.Observe(gce.c.HealthChecks().Update(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc)) } // UpdateAlphaHealthCheck applies the given alpha HealthCheck as an update. func (gce *GCECloud) UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContextWithVersion("update", computeAlphaVersion) - return mc.Observe(gce.c.AlphaHealthChecks().Update(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.AlphaHealthChecks().Update(ctx, meta.GlobalKey(hc.Name), hc)) } // DeleteHealthCheck deletes the given HealthCheck by name. func (gce *GCECloud) DeleteHealthCheck(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("delete") - return mc.Observe(gce.c.HealthChecks().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.HealthChecks().Delete(ctx, meta.GlobalKey(name))) } // CreateHealthCheck creates the given HealthCheck. func (gce *GCECloud) CreateHealthCheck(hc *compute.HealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("create") - return mc.Observe(gce.c.HealthChecks().Insert(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.HealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc)) } // CreateAlphaHealthCheck creates the given alpha HealthCheck. func (gce *GCECloud) CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContextWithVersion("create", computeAlphaVersion) - return mc.Observe(gce.c.AlphaHealthChecks().Insert(context.Background(), meta.GlobalKey(hc.Name), hc)) + return mc.Observe(gce.c.AlphaHealthChecks().Insert(ctx, meta.GlobalKey(hc.Name), hc)) } // ListHealthChecks lists all HealthCheck in the project. func (gce *GCECloud) ListHealthChecks() ([]*compute.HealthCheck, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newHealthcheckMetricContext("list") - v, err := gce.c.HealthChecks().List(context.Background(), filter.None) + v, err := gce.c.HealthChecks().List(ctx, filter.None) return v, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instancegroup.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instancegroup.go index 84b9724bfae6..13b2c51e503b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instancegroup.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instancegroup.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -32,36 +31,51 @@ func newInstanceGroupMetricContext(request string, zone string) *metricContext { // CreateInstanceGroup creates an instance group with the given // instances. It is the callers responsibility to add named ports. func (gce *GCECloud) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("create", zone) - return mc.Observe(gce.c.InstanceGroups().Insert(context.Background(), meta.ZonalKey(ig.Name, zone), ig)) + return mc.Observe(gce.c.InstanceGroups().Insert(ctx, meta.ZonalKey(ig.Name, zone), ig)) } // DeleteInstanceGroup deletes an instance group. func (gce *GCECloud) DeleteInstanceGroup(name string, zone string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("delete", zone) - return mc.Observe(gce.c.InstanceGroups().Delete(context.Background(), meta.ZonalKey(name, zone))) + return mc.Observe(gce.c.InstanceGroups().Delete(ctx, meta.ZonalKey(name, zone))) } // ListInstanceGroups lists all InstanceGroups in the project and // zone. func (gce *GCECloud) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("list", zone) - v, err := gce.c.InstanceGroups().List(context.Background(), zone, filter.None) + v, err := gce.c.InstanceGroups().List(ctx, zone, filter.None) return v, mc.Observe(err) } // ListInstancesInInstanceGroup lists all the instances in a given // instance group and state. func (gce *GCECloud) ListInstancesInInstanceGroup(name string, zone string, state string) ([]*compute.InstanceWithNamedPorts, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("list_instances", zone) req := &compute.InstanceGroupsListInstancesRequest{InstanceState: state} - v, err := gce.c.InstanceGroups().ListInstances(context.Background(), meta.ZonalKey(name, zone), req, filter.None) + v, err := gce.c.InstanceGroups().ListInstances(ctx, meta.ZonalKey(name, zone), req, filter.None) return v, mc.Observe(err) } // AddInstancesToInstanceGroup adds the given instances to the given // instance group. func (gce *GCECloud) AddInstancesToInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("add_instances", zone) // TODO: should cull operation above this layer. if len(instanceRefs) == 0 { @@ -70,12 +84,15 @@ func (gce *GCECloud) AddInstancesToInstanceGroup(name string, zone string, insta req := &compute.InstanceGroupsAddInstancesRequest{ Instances: instanceRefs, } - return mc.Observe(gce.c.InstanceGroups().AddInstances(context.Background(), meta.ZonalKey(name, zone), req)) + return mc.Observe(gce.c.InstanceGroups().AddInstances(ctx, meta.ZonalKey(name, zone), req)) } // RemoveInstancesFromInstanceGroup removes the given instances from // the instance group. func (gce *GCECloud) RemoveInstancesFromInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("remove_instances", zone) // TODO: should cull operation above this layer. if len(instanceRefs) == 0 { @@ -84,19 +101,25 @@ func (gce *GCECloud) RemoveInstancesFromInstanceGroup(name string, zone string, req := &compute.InstanceGroupsRemoveInstancesRequest{ Instances: instanceRefs, } - return mc.Observe(gce.c.InstanceGroups().RemoveInstances(context.Background(), meta.ZonalKey(name, zone), req)) + return mc.Observe(gce.c.InstanceGroups().RemoveInstances(ctx, meta.ZonalKey(name, zone), req)) } // SetNamedPortsOfInstanceGroup sets the list of named ports on a given instance group func (gce *GCECloud) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("set_namedports", zone) req := &compute.InstanceGroupsSetNamedPortsRequest{NamedPorts: namedPorts} - return mc.Observe(gce.c.InstanceGroups().SetNamedPorts(context.Background(), meta.ZonalKey(igName, zone), req)) + return mc.Observe(gce.c.InstanceGroups().SetNamedPorts(ctx, meta.ZonalKey(igName, zone), req)) } // GetInstanceGroup returns an instance group by name. func (gce *GCECloud) GetInstanceGroup(name string, zone string) (*compute.InstanceGroup, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstanceGroupMetricContext("get", zone) - v, err := gce.c.InstanceGroups().Get(context.Background(), meta.ZonalKey(name, zone)) + v, err := gce.c.InstanceGroups().Get(ctx, meta.ZonalKey(name, zone)) return v, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go index 69c487ecfc4a..0d4dc6314943 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" @@ -99,12 +100,15 @@ func (gce *GCECloud) NodeAddresses(_ context.Context, _ types.NodeName) ([]v1.No // NodeAddressesByProviderID will not be called from the node that is requesting this ID. // i.e. metadata service and other local methods cannot be used here func (gce *GCECloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + _, zone, name, err := splitProviderID(providerID) if err != nil { return []v1.NodeAddress{}, err } - instance, err := gce.c.Instances().Get(context.Background(), meta.ZonalKey(canonicalizeInstanceName(name), zone)) + instance, err := gce.c.Instances().Get(ctx, meta.ZonalKey(canonicalizeInstanceName(name), zone)) if err != nil { return []v1.NodeAddress{}, fmt.Errorf("error while querying for providerID %q: %v", providerID, err) } @@ -212,8 +216,11 @@ func (gce *GCECloud) InstanceType(ctx context.Context, nodeName types.NodeName) } func (gce *GCECloud) AddSSHKeyToAllInstances(ctx context.Context, user string, keyData []byte) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + return wait.Poll(2*time.Second, 30*time.Second, func() (bool, error) { - project, err := gce.c.Projects().Get(context.Background(), gce.projectID) + project, err := gce.c.Projects().Get(ctx, gce.projectID) if err != nil { glog.Errorf("Could not get project: %v", err) return false, nil @@ -244,7 +251,7 @@ func (gce *GCECloud) AddSSHKeyToAllInstances(ctx context.Context, user string, k } mc := newInstancesMetricContext("add_ssh_key", "") - err = gce.c.Projects().SetCommonInstanceMetadata(context.Background(), gce.projectID, project.CommonInstanceMetadata) + err = gce.c.Projects().SetCommonInstanceMetadata(ctx, gce.projectID, project.CommonInstanceMetadata) mc.Observe(err) if err != nil { @@ -284,9 +291,12 @@ func (gce *GCECloud) GetAllCurrentZones() (sets.String, error) { // // TODO: this should be removed from the cloud provider. func (gce *GCECloud) GetAllZonesFromCloudProvider() (sets.String, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + zones := sets.NewString() for _, zone := range gce.managedZones { - instances, err := gce.c.Instances().List(context.Background(), zone, filter.None) + instances, err := gce.c.Instances().List(ctx, zone, filter.None) if err != nil { return sets.NewString(), err } @@ -299,15 +309,21 @@ func (gce *GCECloud) GetAllZonesFromCloudProvider() (sets.String, error) { // InsertInstance creates a new instance on GCP func (gce *GCECloud) InsertInstance(project string, zone string, i *compute.Instance) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newInstancesMetricContext("create", zone) - return mc.Observe(gce.c.Instances().Insert(context.Background(), meta.ZonalKey(i.Name, zone), i)) + return mc.Observe(gce.c.Instances().Insert(ctx, meta.ZonalKey(i.Name, zone), i)) } // ListInstanceNames returns a string of instance names separated by spaces. // This method should only be used for e2e testing. // TODO: remove this method. func (gce *GCECloud) ListInstanceNames(project, zone string) (string, error) { - l, err := gce.c.Instances().List(context.Background(), zone, filter.None) + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + + l, err := gce.c.Instances().List(ctx, zone, filter.None) if err != nil { return "", err } @@ -320,7 +336,10 @@ func (gce *GCECloud) ListInstanceNames(project, zone string) (string, error) { // DeleteInstance deletes an instance specified by project, zone, and name func (gce *GCECloud) DeleteInstance(project, zone, name string) error { - return gce.c.Instances().Delete(context.Background(), meta.ZonalKey(name, zone)) + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + + return gce.c.Instances().Delete(ctx, meta.ZonalKey(name, zone)) } // Implementation of Instances.CurrentNodeName @@ -332,6 +351,9 @@ func (gce *GCECloud) CurrentNodeName(ctx context.Context, hostname string) (type // `node` for allocation to pods. Returns a list of the form // "/". func (gce *GCECloud) AliasRanges(nodeName types.NodeName) (cidrs []string, err error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + var instance *gceInstance instance, err = gce.getInstanceByName(mapNodeNameToInstanceName(nodeName)) if err != nil { @@ -339,7 +361,7 @@ func (gce *GCECloud) AliasRanges(nodeName types.NodeName) (cidrs []string, err e } var res *computebeta.Instance - res, err = gce.c.BetaInstances().Get(context.Background(), meta.ZonalKey(instance.Name, lastComponent(instance.Zone))) + res, err = gce.c.BetaInstances().Get(ctx, meta.ZonalKey(instance.Name, lastComponent(instance.Zone))) if err != nil { return } @@ -355,12 +377,14 @@ func (gce *GCECloud) AliasRanges(nodeName types.NodeName) (cidrs []string, err e // AddAliasToInstance adds an alias to the given instance from the named // secondary range. func (gce *GCECloud) AddAliasToInstance(nodeName types.NodeName, alias *net.IPNet) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() v1instance, err := gce.getInstanceByName(mapNodeNameToInstanceName(nodeName)) if err != nil { return err } - instance, err := gce.c.BetaInstances().Get(context.Background(), meta.ZonalKey(v1instance.Name, lastComponent(v1instance.Zone))) + instance, err := gce.c.BetaInstances().Get(ctx, meta.ZonalKey(v1instance.Name, lastComponent(v1instance.Zone))) if err != nil { return err } @@ -383,13 +407,16 @@ func (gce *GCECloud) AddAliasToInstance(nodeName types.NodeName, alias *net.IPNe }) mc := newInstancesMetricContext("add_alias", v1instance.Zone) - err = gce.c.BetaInstances().UpdateNetworkInterface(context.Background(), meta.ZonalKey(instance.Name, lastComponent(instance.Zone)), iface.Name, iface) + err = gce.c.BetaInstances().UpdateNetworkInterface(ctx, meta.ZonalKey(instance.Name, lastComponent(instance.Zone)), iface.Name, iface) return mc.Observe(err) } // Gets the named instances, returning cloudprovider.InstanceNotFound if any // instance is not found func (gce *GCECloud) getInstancesByNames(names []string) ([]*gceInstance, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + found := map[string]*gceInstance{} remaining := len(names) @@ -407,7 +434,7 @@ func (gce *GCECloud) getInstancesByNames(names []string) ([]*gceInstance, error) if remaining == 0 { break } - instances, err := gce.c.Instances().List(context.Background(), zone, filter.Regexp("name", nodeInstancePrefix+".*")) + instances, err := gce.c.Instances().List(ctx, zone, filter.Regexp("name", nodeInstancePrefix+".*")) if err != nil { return nil, err } @@ -471,9 +498,12 @@ func (gce *GCECloud) getInstanceByName(name string) (*gceInstance, error) { } func (gce *GCECloud) getInstanceFromProjectInZoneByName(project, zone, name string) (*gceInstance, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + name = canonicalizeInstanceName(name) mc := newInstancesMetricContext("get", zone) - res, err := gce.c.Instances().Get(context.Background(), meta.ZonalKey(name, zone)) + res, err := gce.c.Instances().Get(ctx, meta.ZonalKey(name, zone)) mc.Observe(err) if err != nil { return nil, err @@ -532,6 +562,9 @@ func (gce *GCECloud) isCurrentInstance(instanceID string) bool { // format of the host names in the cluster. Only use it as a fallback if // gce.nodeTags is unspecified func (gce *GCECloud) computeHostTags(hosts []*gceInstance) ([]string, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + // TODO: We could store the tags in gceInstance, so we could have already fetched it hostNamesByZone := make(map[string]map[string]bool) // map of zones -> map of names -> bool (for easy lookup) nodeInstancePrefix := gce.nodeInstancePrefix @@ -556,7 +589,7 @@ func (gce *GCECloud) computeHostTags(hosts []*gceInstance) ([]string, error) { filt = filter.Regexp("name", nodeInstancePrefix+".*") } for zone, hostNames := range hostNamesByZone { - instances, err := gce.c.Instances().List(context.Background(), zone, filt) + instances, err := gce.c.Instances().List(ctx, zone, filt) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_networkendpointgroup.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_networkendpointgroup.go index f0e3fb538d29..efa4dcf4be91 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_networkendpointgroup.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_networkendpointgroup.go @@ -17,12 +17,12 @@ limitations under the License. package gce import ( - "context" "fmt" "strings" computealpha "google.golang.org/api/compute/v0.alpha" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -37,31 +37,40 @@ func newNetworkEndpointGroupMetricContext(request string, zone string) *metricCo } func (gce *GCECloud) GetNetworkEndpointGroup(name string, zone string) (*computealpha.NetworkEndpointGroup, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("get", zone) if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return nil, mc.Observe(err) } - v, err := gce.c.AlphaNetworkEndpointGroups().Get(context.Background(), meta.ZonalKey(name, zone)) + v, err := gce.c.AlphaNetworkEndpointGroups().Get(ctx, meta.ZonalKey(name, zone)) return v, mc.Observe(err) } func (gce *GCECloud) ListNetworkEndpointGroup(zone string) ([]*computealpha.NetworkEndpointGroup, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("list", zone) if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return nil, mc.Observe(err) } - negs, err := gce.c.AlphaNetworkEndpointGroups().List(context.Background(), zone, filter.None) + negs, err := gce.c.AlphaNetworkEndpointGroups().List(ctx, zone, filter.None) return negs, mc.Observe(err) } // AggregatedListNetworkEndpointGroup returns a map of zone -> endpoint group. func (gce *GCECloud) AggregatedListNetworkEndpointGroup() (map[string][]*computealpha.NetworkEndpointGroup, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("aggregated_list", "") if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return nil, mc.Observe(err) } // TODO: filter for the region the cluster is in. - all, err := gce.c.AlphaNetworkEndpointGroups().AggregatedList(context.Background(), filter.None) + all, err := gce.c.AlphaNetworkEndpointGroups().AggregatedList(ctx, filter.None) if err != nil { return nil, mc.Observe(err) } @@ -79,22 +88,31 @@ func (gce *GCECloud) AggregatedListNetworkEndpointGroup() (map[string][]*compute } func (gce *GCECloud) CreateNetworkEndpointGroup(neg *computealpha.NetworkEndpointGroup, zone string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return err } mc := newNetworkEndpointGroupMetricContext("create", zone) - return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Insert(context.Background(), meta.ZonalKey(neg.Name, zone), neg)) + return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Insert(ctx, meta.ZonalKey(neg.Name, zone), neg)) } func (gce *GCECloud) DeleteNetworkEndpointGroup(name string, zone string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return err } mc := newNetworkEndpointGroupMetricContext("delete", zone) - return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Delete(context.Background(), meta.ZonalKey(name, zone))) + return mc.Observe(gce.c.AlphaNetworkEndpointGroups().Delete(ctx, meta.ZonalKey(name, zone))) } func (gce *GCECloud) AttachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("attach", zone) if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return mc.Observe(err) @@ -102,10 +120,13 @@ func (gce *GCECloud) AttachNetworkEndpoints(name, zone string, endpoints []*comp req := &computealpha.NetworkEndpointGroupsAttachEndpointsRequest{ NetworkEndpoints: endpoints, } - return mc.Observe(gce.c.AlphaNetworkEndpointGroups().AttachNetworkEndpoints(context.Background(), meta.ZonalKey(name, zone), req)) + return mc.Observe(gce.c.AlphaNetworkEndpointGroups().AttachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req)) } func (gce *GCECloud) DetachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("detach", zone) if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return mc.Observe(err) @@ -113,10 +134,13 @@ func (gce *GCECloud) DetachNetworkEndpoints(name, zone string, endpoints []*comp req := &computealpha.NetworkEndpointGroupsDetachEndpointsRequest{ NetworkEndpoints: endpoints, } - return mc.Observe(gce.c.AlphaNetworkEndpointGroups().DetachNetworkEndpoints(context.Background(), meta.ZonalKey(name, zone), req)) + return mc.Observe(gce.c.AlphaNetworkEndpointGroups().DetachNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req)) } func (gce *GCECloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computealpha.NetworkEndpointWithHealthStatus, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newNetworkEndpointGroupMetricContext("list_networkendpoints", zone) if err := gce.alphaFeatureEnabled(AlphaFeatureNetworkEndpointGroup); err != nil { return nil, mc.Observe(err) @@ -128,6 +152,6 @@ func (gce *GCECloud) ListNetworkEndpoints(name, zone string, showHealthStatus bo req := &computealpha.NetworkEndpointGroupsListEndpointsRequest{ HealthStatus: healthStatus, } - l, err := gce.c.AlphaNetworkEndpointGroups().ListNetworkEndpoints(context.Background(), meta.ZonalKey(name, zone), req, filter.None) + l, err := gce.c.AlphaNetworkEndpointGroups().ListNetworkEndpoints(ctx, meta.ZonalKey(name, zone), req, filter.None) return l, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_routes.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_routes.go index 4a7cea5b382b..624b581cbd94 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_routes.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_routes.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -37,10 +38,13 @@ func newRoutesMetricContext(request string) *metricContext { // ListRoutes in the cloud environment. func (gce *GCECloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newRoutesMetricContext("list") prefix := truncateClusterName(clusterName) f := filter.Regexp("name", prefix+"-.*").AndRegexp("network", gce.NetworkURL()).AndRegexp("description", k8sNodeRouteTag) - routes, err := gce.c.Routes().List(context.Background(), f) + routes, err := gce.c.Routes().List(ctx, f) if err != nil { return nil, mc.Observe(err) } @@ -60,6 +64,9 @@ func (gce *GCECloud) ListRoutes(ctx context.Context, clusterName string) ([]*clo // CreateRoute in the cloud environment. func (gce *GCECloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, route *cloudprovider.Route) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newRoutesMetricContext("create") targetInstance, err := gce.getInstanceByName(mapNodeNameToInstanceName(route.TargetNode)) @@ -74,7 +81,7 @@ func (gce *GCECloud) CreateRoute(ctx context.Context, clusterName string, nameHi Priority: 1000, Description: k8sNodeRouteTag, } - err = gce.c.Routes().Insert(context.Background(), meta.GlobalKey(cr.Name), cr) + err = gce.c.Routes().Insert(ctx, meta.GlobalKey(cr.Name), cr) if isHTTPErrorCode(err, http.StatusConflict) { glog.Infof("Route %q already exists.", cr.Name) err = nil @@ -84,8 +91,11 @@ func (gce *GCECloud) CreateRoute(ctx context.Context, clusterName string, nameHi // DeleteRoute from the cloud environment. func (gce *GCECloud) DeleteRoute(ctx context.Context, clusterName string, route *cloudprovider.Route) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newRoutesMetricContext("delete") - return mc.Observe(gce.c.Routes().Delete(context.Background(), meta.GlobalKey(route.Name))) + return mc.Observe(gce.c.Routes().Delete(ctx, meta.GlobalKey(route.Name))) } func truncateClusterName(clusterName string) string { diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_securitypolicy.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_securitypolicy.go index bec23a644f64..293946590b3d 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_securitypolicy.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_securitypolicy.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - computebeta "google.golang.org/api/compute/v0.beta" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -31,60 +30,87 @@ func newSecurityPolicyMetricContextWithVersion(request, version string) *metricC // GetBetaSecurityPolicy retrieves a security policy. func (gce *GCECloud) GetBetaSecurityPolicy(name string) (*computebeta.SecurityPolicy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("get", computeBetaVersion) - v, err := gce.c.BetaSecurityPolicies().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.BetaSecurityPolicies().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // ListBetaSecurityPolicy lists all security policies in the project. func (gce *GCECloud) ListBetaSecurityPolicy() ([]*computebeta.SecurityPolicy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("list", computeBetaVersion) - v, err := gce.c.BetaSecurityPolicies().List(context.Background(), filter.None) + v, err := gce.c.BetaSecurityPolicies().List(ctx, filter.None) return v, mc.Observe(err) } // CreateBetaSecurityPolicy creates the given security policy. func (gce *GCECloud) CreateBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("create", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().Insert(context.Background(), meta.GlobalKey(sp.Name), sp)) + return mc.Observe(gce.c.BetaSecurityPolicies().Insert(ctx, meta.GlobalKey(sp.Name), sp)) } // DeleteBetaSecurityPolicy deletes the given security policy. func (gce *GCECloud) DeleteBetaSecurityPolicy(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("delete", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.BetaSecurityPolicies().Delete(ctx, meta.GlobalKey(name))) } // PatchBetaSecurityPolicy applies the given security policy as a // patch to an existing security policy. func (gce *GCECloud) PatchBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("patch", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().Patch(context.Background(), meta.GlobalKey(sp.Name), sp)) + return mc.Observe(gce.c.BetaSecurityPolicies().Patch(ctx, meta.GlobalKey(sp.Name), sp)) } // GetRuleForBetaSecurityPolicy gets rule from a security policy. func (gce *GCECloud) GetRuleForBetaSecurityPolicy(name string) (*computebeta.SecurityPolicyRule, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("get_rule", computeBetaVersion) - v, err := gce.c.BetaSecurityPolicies().GetRule(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.BetaSecurityPolicies().GetRule(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // AddRuletoBetaSecurityPolicy adds the given security policy rule to // a security policy. func (gce *GCECloud) AddRuletoBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("add_rule", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().AddRule(context.Background(), meta.GlobalKey(name), spr)) + return mc.Observe(gce.c.BetaSecurityPolicies().AddRule(ctx, meta.GlobalKey(name), spr)) } // PatchRuleForBetaSecurityPolicy patches the given security policy // rule to a security policy. func (gce *GCECloud) PatchRuleForBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("patch_rule", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().PatchRule(context.Background(), meta.GlobalKey(name), spr)) + return mc.Observe(gce.c.BetaSecurityPolicies().PatchRule(ctx, meta.GlobalKey(name), spr)) } // RemoveRuleFromBetaSecurityPolicy removes rule from a security policy. func (gce *GCECloud) RemoveRuleFromBetaSecurityPolicy(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newSecurityPolicyMetricContextWithVersion("remove_rule", computeBetaVersion) - return mc.Observe(gce.c.BetaSecurityPolicies().RemoveRule(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.BetaSecurityPolicies().RemoveRule(ctx, meta.GlobalKey(name))) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetpool.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetpool.go index 8fd3b3704e51..8c1127e749e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetpool.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetpool.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -30,37 +29,52 @@ func newTargetPoolMetricContext(request, region string) *metricContext { // GetTargetPool returns the TargetPool by name. func (gce *GCECloud) GetTargetPool(name, region string) (*compute.TargetPool, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetPoolMetricContext("get", region) - v, err := gce.c.TargetPools().Get(context.Background(), meta.RegionalKey(name, region)) + v, err := gce.c.TargetPools().Get(ctx, meta.RegionalKey(name, region)) return v, mc.Observe(err) } // CreateTargetPool creates the passed TargetPool func (gce *GCECloud) CreateTargetPool(tp *compute.TargetPool, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetPoolMetricContext("create", region) - return mc.Observe(gce.c.TargetPools().Insert(context.Background(), meta.RegionalKey(tp.Name, region), tp)) + return mc.Observe(gce.c.TargetPools().Insert(ctx, meta.RegionalKey(tp.Name, region), tp)) } // DeleteTargetPool deletes TargetPool by name. func (gce *GCECloud) DeleteTargetPool(name, region string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetPoolMetricContext("delete", region) - return mc.Observe(gce.c.TargetPools().Delete(context.Background(), meta.RegionalKey(name, region))) + return mc.Observe(gce.c.TargetPools().Delete(ctx, meta.RegionalKey(name, region))) } // AddInstancesToTargetPool adds instances by link to the TargetPool func (gce *GCECloud) AddInstancesToTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + req := &compute.TargetPoolsAddInstanceRequest{ Instances: instanceRefs, } mc := newTargetPoolMetricContext("add_instances", region) - return mc.Observe(gce.c.TargetPools().AddInstance(context.Background(), meta.RegionalKey(name, region), req)) + return mc.Observe(gce.c.TargetPools().AddInstance(ctx, meta.RegionalKey(name, region), req)) } // RemoveInstancesFromTargetPool removes instances by link to the TargetPool func (gce *GCECloud) RemoveInstancesFromTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + req := &compute.TargetPoolsRemoveInstanceRequest{ Instances: instanceRefs, } mc := newTargetPoolMetricContext("remove_instances", region) - return mc.Observe(gce.c.TargetPools().RemoveInstance(context.Background(), meta.RegionalKey(name, region), req)) + return mc.Observe(gce.c.TargetPools().RemoveInstance(ctx, meta.RegionalKey(name, region), req)) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetproxy.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetproxy.go index 36d21bcff6b7..f266d13e611a 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetproxy.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_targetproxy.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -31,34 +30,49 @@ func newTargetProxyMetricContext(request string) *metricContext { // GetTargetHttpProxy returns the UrlMap by name. func (gce *GCECloud) GetTargetHttpProxy(name string) (*compute.TargetHttpProxy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("get") - v, err := gce.c.TargetHttpProxies().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.TargetHttpProxies().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // CreateTargetHttpProxy creates a TargetHttpProxy func (gce *GCECloud) CreateTargetHttpProxy(proxy *compute.TargetHttpProxy) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("create") - return mc.Observe(gce.c.TargetHttpProxies().Insert(context.Background(), meta.GlobalKey(proxy.Name), proxy)) + return mc.Observe(gce.c.TargetHttpProxies().Insert(ctx, meta.GlobalKey(proxy.Name), proxy)) } // SetUrlMapForTargetHttpProxy sets the given UrlMap for the given TargetHttpProxy. func (gce *GCECloud) SetUrlMapForTargetHttpProxy(proxy *compute.TargetHttpProxy, urlMap *compute.UrlMap) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + ref := &compute.UrlMapReference{UrlMap: urlMap.SelfLink} mc := newTargetProxyMetricContext("set_url_map") - return mc.Observe(gce.c.TargetHttpProxies().SetUrlMap(context.Background(), meta.GlobalKey(proxy.Name), ref)) + return mc.Observe(gce.c.TargetHttpProxies().SetUrlMap(ctx, meta.GlobalKey(proxy.Name), ref)) } // DeleteTargetHttpProxy deletes the TargetHttpProxy by name. func (gce *GCECloud) DeleteTargetHttpProxy(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("delete") - return mc.Observe(gce.c.TargetHttpProxies().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.TargetHttpProxies().Delete(ctx, meta.GlobalKey(name))) } // ListTargetHttpProxies lists all TargetHttpProxies in the project. func (gce *GCECloud) ListTargetHttpProxies() ([]*compute.TargetHttpProxy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("list") - v, err := gce.c.TargetHttpProxies().List(context.Background(), filter.None) + v, err := gce.c.TargetHttpProxies().List(ctx, filter.None) return v, mc.Observe(err) } @@ -66,42 +80,60 @@ func (gce *GCECloud) ListTargetHttpProxies() ([]*compute.TargetHttpProxy, error) // GetTargetHttpsProxy returns the UrlMap by name. func (gce *GCECloud) GetTargetHttpsProxy(name string) (*compute.TargetHttpsProxy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("get") - v, err := gce.c.TargetHttpsProxies().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.TargetHttpsProxies().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // CreateTargetHttpsProxy creates a TargetHttpsProxy func (gce *GCECloud) CreateTargetHttpsProxy(proxy *compute.TargetHttpsProxy) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("create") - return mc.Observe(gce.c.TargetHttpsProxies().Insert(context.Background(), meta.GlobalKey(proxy.Name), proxy)) + return mc.Observe(gce.c.TargetHttpsProxies().Insert(ctx, meta.GlobalKey(proxy.Name), proxy)) } // SetUrlMapForTargetHttpsProxy sets the given UrlMap for the given TargetHttpsProxy. func (gce *GCECloud) SetUrlMapForTargetHttpsProxy(proxy *compute.TargetHttpsProxy, urlMap *compute.UrlMap) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("set_url_map") ref := &compute.UrlMapReference{UrlMap: urlMap.SelfLink} - return mc.Observe(gce.c.TargetHttpsProxies().SetUrlMap(context.Background(), meta.GlobalKey(proxy.Name), ref)) + return mc.Observe(gce.c.TargetHttpsProxies().SetUrlMap(ctx, meta.GlobalKey(proxy.Name), ref)) } // SetSslCertificateForTargetHttpsProxy sets the given SslCertificate for the given TargetHttpsProxy. func (gce *GCECloud) SetSslCertificateForTargetHttpsProxy(proxy *compute.TargetHttpsProxy, sslCertURLs []string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("set_ssl_cert") req := &compute.TargetHttpsProxiesSetSslCertificatesRequest{ SslCertificates: sslCertURLs, } - return mc.Observe(gce.c.TargetHttpsProxies().SetSslCertificates(context.Background(), meta.GlobalKey(proxy.Name), req)) + return mc.Observe(gce.c.TargetHttpsProxies().SetSslCertificates(ctx, meta.GlobalKey(proxy.Name), req)) } // DeleteTargetHttpsProxy deletes the TargetHttpsProxy by name. func (gce *GCECloud) DeleteTargetHttpsProxy(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("delete") - return mc.Observe(gce.c.TargetHttpsProxies().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.TargetHttpsProxies().Delete(ctx, meta.GlobalKey(name))) } // ListTargetHttpsProxies lists all TargetHttpsProxies in the project. func (gce *GCECloud) ListTargetHttpsProxies() ([]*compute.TargetHttpsProxy, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newTargetProxyMetricContext("list") - v, err := gce.c.TargetHttpsProxies().List(context.Background(), filter.None) + v, err := gce.c.TargetHttpsProxies().List(ctx, filter.None) return v, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_urlmap.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_urlmap.go index 54ceccbf54d2..b0e60093c15b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_urlmap.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_urlmap.go @@ -17,10 +17,9 @@ limitations under the License. package gce import ( - "context" - compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) @@ -31,32 +30,47 @@ func newUrlMapMetricContext(request string) *metricContext { // GetUrlMap returns the UrlMap by name. func (gce *GCECloud) GetUrlMap(name string) (*compute.UrlMap, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newUrlMapMetricContext("get") - v, err := gce.c.UrlMaps().Get(context.Background(), meta.GlobalKey(name)) + v, err := gce.c.UrlMaps().Get(ctx, meta.GlobalKey(name)) return v, mc.Observe(err) } // CreateUrlMap creates a url map func (gce *GCECloud) CreateUrlMap(urlMap *compute.UrlMap) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newUrlMapMetricContext("create") - return mc.Observe(gce.c.UrlMaps().Insert(context.Background(), meta.GlobalKey(urlMap.Name), urlMap)) + return mc.Observe(gce.c.UrlMaps().Insert(ctx, meta.GlobalKey(urlMap.Name), urlMap)) } // UpdateUrlMap applies the given UrlMap as an update func (gce *GCECloud) UpdateUrlMap(urlMap *compute.UrlMap) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newUrlMapMetricContext("update") - return mc.Observe(gce.c.UrlMaps().Update(context.Background(), meta.GlobalKey(urlMap.Name), urlMap)) + return mc.Observe(gce.c.UrlMaps().Update(ctx, meta.GlobalKey(urlMap.Name), urlMap)) } // DeleteUrlMap deletes a url map by name. func (gce *GCECloud) DeleteUrlMap(name string) error { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newUrlMapMetricContext("delete") - return mc.Observe(gce.c.UrlMaps().Delete(context.Background(), meta.GlobalKey(name))) + return mc.Observe(gce.c.UrlMaps().Delete(ctx, meta.GlobalKey(name))) } // ListUrlMaps lists all UrlMaps in the project. func (gce *GCECloud) ListUrlMaps() ([]*compute.UrlMap, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newUrlMapMetricContext("list") - v, err := gce.c.UrlMaps().List(context.Background(), filter.None) + v, err := gce.c.UrlMaps().List(ctx, filter.None) return v, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_zones.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_zones.go index 6c745e34c2c9..503ca348f484 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_zones.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_zones.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" ) @@ -72,8 +73,11 @@ func (gce *GCECloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeN // ListZonesInRegion returns all zones in a GCP region func (gce *GCECloud) ListZonesInRegion(region string) ([]*compute.Zone, error) { + ctx, cancel := cloud.ContextWithCallTimeout() + defer cancel() + mc := newZonesMetricContext("list", region) - list, err := gce.c.Zones().List(context.Background(), filter.Regexp("region", gce.getRegionLink(region))) + list, err := gce.c.Zones().List(ctx, filter.Regexp("region", gce.getRegionLink(region))) if err != nil { return nil, mc.Observe(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/support.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/support.go index 37dc75b0b0a1..7861e08acbc7 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/support.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/support.go @@ -50,17 +50,15 @@ type gceRateLimiter struct { // operations. func (l *gceRateLimiter) Accept(ctx context.Context, key *cloud.RateLimitKey) error { if key.Operation == "Get" && key.Service == "Operations" { - ch := make(chan struct{}) - go func() { - l.gce.operationPollRateLimiter.Accept() - close(ch) - }() - select { - case <-ch: - break - case <-ctx.Done(): - return ctx.Err() + // Wait a minimum amount of time regardless of rate limiter. + rl := &cloud.MinimumRateLimiter{ + // Convert flowcontrol.RateLimiter into cloud.RateLimiter + RateLimiter: &cloud.AcceptRateLimiter{ + Acceptor: l.gce.operationPollRateLimiter, + }, + Minimum: operationPollInterval, } + return rl.Accept(ctx, key) } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere_test.go index 5423d3d3a265..0533405b1901 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere_test.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere_test.go @@ -195,7 +195,6 @@ func TestNewVSphere(t *testing.T) { } func TestVSphereLogin(t *testing.T) { - t.Skip("data race") cfg, cleanup := configFromEnvOrSim() defer cleanup() @@ -223,7 +222,6 @@ func TestVSphereLogin(t *testing.T) { } func TestVSphereLoginByToken(t *testing.T) { - t.Skip("data race") cfg, cleanup := configFromSim() defer cleanup() diff --git a/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/scheduler/taint_manager.go b/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/scheduler/taint_manager.go index 2388ac20f512..55aad9f63d87 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/scheduler/taint_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/scheduler/taint_manager.go @@ -224,9 +224,11 @@ func (tc *NoExecuteTaintManager) Run(stopCh <-chan struct{}) { hash := hash(nodeUpdate.name()) select { case <-stopCh: + tc.nodeUpdateQueue.Done(item) break case tc.nodeUpdateChannels[hash%workers] <- nodeUpdate: } + tc.nodeUpdateQueue.Done(item) } }(stopCh) @@ -240,9 +242,11 @@ func (tc *NoExecuteTaintManager) Run(stopCh <-chan struct{}) { hash := hash(podUpdate.nodeName()) select { case <-stopCh: + tc.podUpdateQueue.Done(item) break case tc.podUpdateChannels[hash%workers] <- podUpdate: } + tc.podUpdateQueue.Done(item) } }(stopCh) diff --git a/vendor/k8s.io/kubernetes/pkg/generated/openapi/zz_generated.openapi.go b/vendor/k8s.io/kubernetes/pkg/generated/openapi/zz_generated.openapi.go index fa86bc5c9f1e..a15d456f173f 100644 --- a/vendor/k8s.io/kubernetes/pkg/generated/openapi/zz_generated.openapi.go +++ b/vendor/k8s.io/kubernetes/pkg/generated/openapi/zz_generated.openapi.go @@ -24,6 +24,7 @@ package openapi import ( spec "github.com/go-openapi/spec" + v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -182,7 +183,6 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "k8s.io/api/autoscaling/v1.Scale": schema_k8sio_api_autoscaling_v1_Scale(ref), "k8s.io/api/autoscaling/v1.ScaleSpec": schema_k8sio_api_autoscaling_v1_ScaleSpec(ref), "k8s.io/api/autoscaling/v1.ScaleStatus": schema_k8sio_api_autoscaling_v1_ScaleStatus(ref), - "k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy": schema_k8sio_api_autoscaling_v2beta1_ContainerResourcePolicy(ref), "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference": schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref), "k8s.io/api/autoscaling/v2beta1.ExternalMetricSource": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ExternalMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricStatus(ref), @@ -195,19 +195,10 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "k8s.io/api/autoscaling/v2beta1.MetricStatus": schema_k8sio_api_autoscaling_v2beta1_MetricStatus(ref), "k8s.io/api/autoscaling/v2beta1.ObjectMetricSource": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ObjectMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.PodResourcePolicy": schema_k8sio_api_autoscaling_v2beta1_PodResourcePolicy(ref), - "k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy": schema_k8sio_api_autoscaling_v2beta1_PodUpdatePolicy(ref), "k8s.io/api/autoscaling/v2beta1.PodsMetricSource": schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.PodsMetricStatus": schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources": schema_k8sio_api_autoscaling_v2beta1_RecommendedContainerResources(ref), - "k8s.io/api/autoscaling/v2beta1.RecommendedPodResources": schema_k8sio_api_autoscaling_v2beta1_RecommendedPodResources(ref), "k8s.io/api/autoscaling/v2beta1.ResourceMetricSource": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ResourceMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscaler(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerCondition(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerList": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerList(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerSpec(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerStatus(ref), "k8s.io/api/batch/v1.Job": schema_k8sio_api_batch_v1_Job(ref), "k8s.io/api/batch/v1.JobCondition": schema_k8sio_api_batch_v1_JobCondition(ref), "k8s.io/api/batch/v1.JobList": schema_k8sio_api_batch_v1_JobList(ref), @@ -7663,60 +7654,6 @@ func schema_k8sio_api_autoscaling_v1_ScaleStatus(ref common.ReferenceCallback) c } } -func schema_k8sio_api_autoscaling_v2beta1_ContainerResourcePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.", - Properties: map[string]spec.Schema{ - "containerName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don't have their own policy specified.", - Type: []string{"string"}, - Format: "", - }, - }, - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "Whether autoscaler is enabled for the container. The default is \"Auto\".", - Type: []string{"string"}, - Format: "", - }, - }, - "minAllowed": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "maxAllowed": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -8251,59 +8188,6 @@ func schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref common.Referenc } } -func schema_k8sio_api_autoscaling_v2beta1_PodResourcePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodResourcePolicy controls how autoscaler computes the recommended resources for containers belonging to the pod. There can be at most one entry for every named container and optionally a single wildcard entry with `containerName` = '*', which handles all containers that don't have individual policies.", - Properties: map[string]spec.Schema{ - "containerPolicies": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "containerName", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Per-container resource policies.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_PodUpdatePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodUpdatePolicy describes the rules on how changes are applied to the pods.", - Properties: map[string]spec.Schema{ - "updateMode": { - SchemaProps: spec.SchemaProps{ - Description: "Controls when autoscaler applies changes to the pod resources. The default is 'Auto'.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -8360,94 +8244,6 @@ func schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref common.ReferenceC } } -func schema_k8sio_api_autoscaling_v2beta1_RecommendedContainerResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RecommendedContainerResources is the recommendation of resources computed by autoscaler for a specific container. Respects the container resource policy if present in the spec. In particular the recommendation is not produced for containers with `ContainerScalingMode` set to 'Off'.", - Properties: map[string]spec.Schema{ - "containerName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the container.", - Type: []string{"string"}, - Format: "", - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "Recommended amount of resources.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "lowerBound": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum recommended amount of resources. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "upperBound": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum recommended amount of resources. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"target"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_RecommendedPodResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RecommendedPodResources is the recommendation of resources computed by autoscaler. It contains a recommendation for each container in the pod (except for those with `ContainerScalingMode` set to 'Off').", - Properties: map[string]spec.Schema{ - "containerRecommendations": { - SchemaProps: spec.SchemaProps{ - Description: "Resources recommended by the autoscaler for each container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources"}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -8518,222 +8314,6 @@ func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref common.Refere } } -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscaler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscaler is the configuration for a vertical pod autoscaler, which automatically manages pod resources based on historical and real time resource utilization.", - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the behavior of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Current information about the autoscaler.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec", "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerCondition describes the state of a VerticalPodAutoscaler at a certain point.", - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type describes the current condition", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition (True, False, Unknown)", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is the reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable explanation containing details about the transition", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.", - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of vertical pod autoscaler objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.", - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query that determines the set of pods controlled by the Autoscaler. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "updatePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Describes the rules on how changes are applied to the pods. If not specified, all fields in the `PodUpdatePolicy` are set to their default values.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy"), - }, - }, - "resourcePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodResourcePolicy"), - }, - }, - }, - Required: []string{"selector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.PodResourcePolicy", "k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.", - Properties: map[string]spec.Schema{ - "recommendation": { - SchemaProps: spec.SchemaProps{ - Description: "The most recently computed amount of resources recommended by the autoscaler for the controlled pods.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.RecommendedPodResources"), - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.RecommendedPodResources", "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition"}, - } -} - func schema_k8sio_api_batch_v1_Job(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -26743,18 +26323,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSON(ref common.ReferenceCallback) co Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - Properties: map[string]spec.Schema{ - "Raw": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - Required: []string{"Raw"}, + Type: v1beta1.JSON{}.OpenAPISchemaType(), + Format: v1beta1.JSON{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{}, } } @@ -27041,30 +26613,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray(ref common.Ref Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - Properties: map[string]spec.Schema{ - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - "JSONSchemas": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - }, - Required: []string{"Schema", "JSONSchemas"}, + Type: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -27073,24 +26625,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool(ref common.Refe Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - Properties: map[string]spec.Schema{ - "Allows": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - Required: []string{"Allows", "Schema"}, + Type: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -27099,31 +26637,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray(ref comm Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - Properties: map[string]spec.Schema{ - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - "Property": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"Schema", "Property"}, + Type: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -27131,8 +26648,9 @@ func schema_apimachinery_pkg_api_resource_Quantity(ref common.ReferenceCallback) return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: resource.Quantity{}.OpenAPISchemaType(), - Format: resource.Quantity{}.OpenAPISchemaFormat(), + Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and Int64() accessors.\n\nThe serialization format is:\n\n ::= \n (Note that may be empty, from the \"\" case in .)\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n ::= \"e\" | \"E\" \n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNOTE: We reserve the right to amend this canonical format, perhaps to\n allow 1.5 to be canonical.\n or after March 2015.\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", + Type: resource.Quantity{}.OpenAPISchemaType(), + Format: resource.Quantity{}.OpenAPISchemaFormat(), }, }, } @@ -28151,8 +27669,9 @@ func schema_pkg_apis_meta_v1_MicroTime(ref common.ReferenceCallback) common.Open return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: v1.MicroTime{}.OpenAPISchemaType(), - Format: v1.MicroTime{}.OpenAPISchemaFormat(), + Description: "MicroTime is version of Time with microsecond level precision.", + Type: v1.MicroTime{}.OpenAPISchemaType(), + Format: v1.MicroTime{}.OpenAPISchemaFormat(), }, }, } @@ -28631,8 +28150,9 @@ func schema_pkg_apis_meta_v1_Time(ref common.ReferenceCallback) common.OpenAPIDe return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: v1.Time{}.OpenAPISchemaType(), - Format: v1.Time{}.OpenAPISchemaFormat(), + Description: "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", + Type: v1.Time{}.OpenAPISchemaType(), + Format: v1.Time{}.OpenAPISchemaFormat(), }, }, } @@ -29127,8 +28647,9 @@ func schema_apimachinery_pkg_util_intstr_IntOrString(ref common.ReferenceCallbac return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: intstr.IntOrString{}.OpenAPISchemaType(), - Format: intstr.IntOrString{}.OpenAPISchemaFormat(), + Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", + Type: intstr.IntOrString{}.OpenAPISchemaType(), + Format: intstr.IntOrString{}.OpenAPISchemaFormat(), }, }, } @@ -31725,13 +31246,6 @@ func schema_pkg_apis_componentconfig_v1alpha1_KubeCloudSharedConfiguration(ref c Format: "", }, }, - "serviceAccountKeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key used to sign service account tokens.", - Type: []string{"string"}, - Format: "", - }, - }, "nodeSyncPeriod": { SchemaProps: spec.SchemaProps{ Description: "nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer periods will result in fewer calls to cloud provider, but may delay addition of new nodes to cluster.", @@ -31739,7 +31253,7 @@ func schema_pkg_apis_componentconfig_v1alpha1_KubeCloudSharedConfiguration(ref c }, }, }, - Required: []string{"port", "address", "useServiceAccountCredentials", "allowUntaggedCloud", "routeReconciliationPeriod", "nodeMonitorPeriod", "clusterName", "clusterCIDR", "allocateNodeCIDRs", "cIDRAllocatorType", "configureCloudRoutes", "serviceAccountKeyFile", "nodeSyncPeriod"}, + Required: []string{"port", "address", "useServiceAccountCredentials", "allowUntaggedCloud", "routeReconciliationPeriod", "nodeMonitorPeriod", "clusterName", "clusterCIDR", "allocateNodeCIDRs", "cIDRAllocatorType", "configureCloudRoutes", "nodeSyncPeriod"}, }, }, Dependencies: []string{ @@ -32445,6 +31959,13 @@ func schema_pkg_apis_componentconfig_v1alpha1_SAControllerConfiguration(ref comm Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Properties: map[string]spec.Schema{ + "serviceAccountKeyFile": { + SchemaProps: spec.SchemaProps{ + Description: "serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key used to sign service account tokens.", + Type: []string{"string"}, + Format: "", + }, + }, "concurrentSATokenSyncs": { SchemaProps: spec.SchemaProps{ Description: "concurrentSATokenSyncs is the number of service account token syncing operations that will be done concurrently.", @@ -32460,7 +31981,7 @@ func schema_pkg_apis_componentconfig_v1alpha1_SAControllerConfiguration(ref comm }, }, }, - Required: []string{"concurrentSATokenSyncs", "rootCAFile"}, + Required: []string{"serviceAccountKeyFile", "concurrentSATokenSyncs", "rootCAFile"}, }, }, Dependencies: []string{}, @@ -33769,7 +33290,7 @@ func schema_proxy_apis_kubeproxyconfig_v1alpha1_KubeProxyIPVSConfiguration(ref c Format: "", }, }, - "ExcludeCIDRs": { + "excludeCIDRs": { SchemaProps: spec.SchemaProps{ Description: "excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch when cleaning up ipvs services.", Type: []string{"array"}, @@ -33784,7 +33305,7 @@ func schema_proxy_apis_kubeproxyconfig_v1alpha1_KubeProxyIPVSConfiguration(ref c }, }, }, - Required: []string{"syncPeriod", "minSyncPeriod", "scheduler", "ExcludeCIDRs"}, + Required: []string{"syncPeriod", "minSyncPeriod", "scheduler", "excludeCIDRs"}, }, }, Dependencies: []string{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get_flags.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get_flags.go index 0e5762c2db4d..6905f0ff4fb4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get_flags.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get_flags.go @@ -34,8 +34,8 @@ type PrintFlags struct { JSONYamlPrintFlags *genericclioptions.JSONYamlPrintFlags NamePrintFlags *genericclioptions.NamePrintFlags CustomColumnsFlags *printers.CustomColumnsPrintFlags - TemplateFlags *printers.KubeTemplatePrintFlags HumanReadableFlags *HumanPrintFlags + TemplateFlags *printers.KubeTemplatePrintFlags NoHeaders *bool OutputFormat *string diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/wait/wait.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/wait/wait.go index 37b5a4b66d1e..503a4bf08c68 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/wait/wait.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/wait/wait.go @@ -73,7 +73,7 @@ func NewCmdWait(restClientGetter genericclioptions.RESTClientGetter, streams gen cmd := &cobra.Command{ Use: "wait resource.group/name [--for=delete|--for condition=available]", DisableFlagsInUseLine: true, - Short: "Wait for one condition on one or many resources", + Short: "Experimental: Wait for one condition on one or many resources", Run: func(cmd *cobra.Command, args []string) { o, err := flags.ToOptions(args) cmdutil.CheckErr(err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go b/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go index 590b600fd498..f1d46b7a110b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go @@ -149,14 +149,7 @@ func (s *genericScaler) Scale(namespace, resourceName string, newSize uint, prec return err } if waitForReplicas != nil { - err := wait.PollImmediate( - waitForReplicas.Interval, - waitForReplicas.Timeout, - scaleHasDesiredReplicas(s.scaleNamespacer, gr, resourceName, namespace, int32(newSize))) - if err == wait.ErrWaitTimeout { - return fmt.Errorf("timed out waiting for %q to be synced", resourceName) - } - return err + return WaitForScaleHasDesiredReplicas(s.scaleNamespacer, gr, resourceName, namespace, newSize, waitForReplicas) } return nil } @@ -177,3 +170,19 @@ func scaleHasDesiredReplicas(sClient scaleclient.ScalesGetter, gr schema.GroupRe desiredReplicas == actualScale.Status.Replicas, nil } } + +// WaitForScaleHasDesiredReplicas waits until condition scaleHasDesiredReplicas is satisfied +// or returns error when timeout happens +func WaitForScaleHasDesiredReplicas(sClient scaleclient.ScalesGetter, gr schema.GroupResource, resourceName string, namespace string, newSize uint, waitForReplicas *RetryParams) error { + if waitForReplicas == nil { + return fmt.Errorf("waitForReplicas parameter cannot be nil!") + } + err := wait.PollImmediate( + waitForReplicas.Interval, + waitForReplicas.Timeout, + scaleHasDesiredReplicas(sClient, gr, resourceName, namespace, int32(newSize))) + if err == wait.ErrWaitTimeout { + return fmt.Errorf("timed out waiting for %q to be synced", resourceName) + } + return err +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD index 7ea91d854022..286b902d9499 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD @@ -21,56 +21,67 @@ go_library( ] + select({ "@io_bazel_rules_go//go/platform:android": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:darwin": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:dragonfly": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:freebsd": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:linux": [ "docker_image_linux.go", + "docker_sandbox_others.go", "docker_stats_linux.go", "helpers_linux.go", ], "@io_bazel_rules_go//go/platform:nacl": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:netbsd": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:openbsd": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:plan9": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:solaris": [ "docker_image_unsupported.go", + "docker_sandbox_others.go", "docker_stats_unsupported.go", "helpers_unsupported.go", ], "@io_bazel_rules_go//go/platform:windows": [ "docker_image_windows.go", + "docker_sandbox_windows.go", "docker_stats_windows.go", "helpers_windows.go", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go index 6806232e1156..c0a9ecfa9e24 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go @@ -412,9 +412,8 @@ func (ds *dockerService) PodSandboxStatus(ctx context.Context, req *runtimeapi.P var IP string // TODO: Remove this when sandbox is available on windows - // Currently windows supports both sandbox and non-sandbox cases. // This is a workaround for windows, where sandbox is not in use, and pod IP is determined through containers belonging to the Pod. - if IP = ds.determinePodIPBySandboxID(podSandboxID, r); IP == "" { + if IP = ds.determinePodIPBySandboxID(podSandboxID); IP == "" { IP = ds.getIP(podSandboxID, r) } @@ -539,21 +538,6 @@ func (ds *dockerService) ListPodSandbox(_ context.Context, r *runtimeapi.ListPod return &runtimeapi.ListPodSandboxResponse{Items: result}, nil } -// applySandboxLinuxOptions applies LinuxPodSandboxConfig to dockercontainer.HostConfig and dockercontainer.ContainerCreateConfig. -func (ds *dockerService) applySandboxLinuxOptions(hc *dockercontainer.HostConfig, lc *runtimeapi.LinuxPodSandboxConfig, createConfig *dockertypes.ContainerCreateConfig, image string, separator rune) error { - if lc == nil { - return nil - } - // Apply security context. - if err := applySandboxSecurityContext(lc, createConfig.Config, hc, ds.network, separator); err != nil { - return err - } - - // Set sysctls. - hc.Sysctls = lc.Sysctls - return nil -} - func (ds *dockerService) applySandboxResources(hc *dockercontainer.HostConfig, lc *runtimeapi.LinuxPodSandboxConfig) error { hc.Resources = dockercontainer.Resources{ MemorySwap: DefaultMemorySwap(), @@ -594,8 +578,8 @@ func (ds *dockerService) makeSandboxDockerConfig(c *runtimeapi.PodSandboxConfig, HostConfig: hc, } - // Apply linux-specific options. - if err := ds.applySandboxLinuxOptions(hc, c.GetLinux(), createConfig, image, securityOptSeparator); err != nil { + // Apply platform-specific options. + if err := ds.applySandboxPlatformOptions(hc, c, createConfig, image, securityOptSeparator); err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_others.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_others.go new file mode 100644 index 000000000000..108f31ce5062 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_others.go @@ -0,0 +1,42 @@ +// +build !windows + +/* +Copyright 2018 The Kubernetes Authors. + +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 dockershim + +import ( + dockertypes "github.com/docker/docker/api/types" + dockercontainer "github.com/docker/docker/api/types/container" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" +) + +// applySandboxPlatformOptions applies platform specific options to dockercontainer.HostConfig and dockercontainer.ContainerCreateConfig. +func (ds *dockerService) applySandboxPlatformOptions(hc *dockercontainer.HostConfig, config *runtimeapi.PodSandboxConfig, createConfig *dockertypes.ContainerCreateConfig, image string, separator rune) error { + lc := config.GetLinux() + if lc == nil { + return nil + } + + // Apply security context. + if err := applySandboxSecurityContext(lc, createConfig.Config, hc, ds.network, separator); err != nil { + return err + } + + // Set sysctls. + hc.Sysctls = lc.Sysctls + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_windows.go new file mode 100644 index 000000000000..d899e126bd3a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox_windows.go @@ -0,0 +1,39 @@ +// +build windows + +/* +Copyright 2018 The Kubernetes Authors. + +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 dockershim + +import ( + dockertypes "github.com/docker/docker/api/types" + dockercontainer "github.com/docker/docker/api/types/container" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" +) + +// applySandboxPlatformOptions applies platform specific options to dockercontainer.HostConfig and dockercontainer.ContainerCreateConfig. +func (ds *dockerService) applySandboxPlatformOptions(hc *dockercontainer.HostConfig, config *runtimeapi.PodSandboxConfig, createConfig *dockertypes.ContainerCreateConfig, image string, separator rune) error { + dnsConfig := config.GetDnsConfig() + if dnsConfig == nil { + return nil + } + + // Setup DNS. + hc.DNS = dnsConfig.GetServers() + hc.DNSSearch = dnsConfig.GetSearches() + hc.DNSOptions = dnsConfig.GetOptions() + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go index 9b4cd9f02a8b..5d231ea82a2d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go @@ -136,7 +136,7 @@ func (ds *dockerService) updateCreateConfig( return nil } -func (ds *dockerService) determinePodIPBySandboxID(uid string, sandbox *dockertypes.ContainerJSON) string { +func (ds *dockerService) determinePodIPBySandboxID(uid string) string { return "" } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go index 0abc271b1d04..2867898f301f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go @@ -45,7 +45,7 @@ func (ds *dockerService) updateCreateConfig( return nil } -func (ds *dockerService) determinePodIPBySandboxID(uid string, sandbox *dockertypes.ContainerJSON) string { +func (ds *dockerService) determinePodIPBySandboxID(uid string) string { glog.Warningf("determinePodIPBySandboxID is unsupported in this build") return "" } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go index 63d8de0342db..436701546c58 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go @@ -97,28 +97,7 @@ func applyWindowsContainerSecurityContext(wsc *runtimeapi.WindowsContainerSecuri } } -func (ds *dockerService) determinePodIPBySandboxID(sandboxID string, sandbox *dockertypes.ContainerJSON) string { - // Versions and feature support - // ============================ - // Windows version >= Windows Server, Version 1709, Supports both sandbox and non-sandbox case - // Windows version == Windows Server 2016 Support only non-sandbox case - // Windows version < Windows Server 2016 is Not Supported - - // Sandbox support in Windows mandates CNI Plugin. - // Presence of CONTAINER_NETWORK flag is considered as non-Sandbox cases here - // Hyper-V isolated containers are also considered as non-Sandbox cases - - // Todo: Add a kernel version check for more validation - - // Hyper-V only supports one container per Pod yet and the container will have a different - // IP address from sandbox. Retrieve the IP from the containers as this is a non-Sandbox case. - // TODO(feiskyer): remove this workaround after Hyper-V supports multiple containers per Pod. - if networkMode := os.Getenv("CONTAINER_NETWORK"); networkMode == "" && sandbox.HostConfig.Isolation != kubeletapis.HypervIsolationValue { - // Sandbox case, fetch the IP from the sandbox container. - return ds.getIP(sandboxID, sandbox) - } - - // Non-Sandbox case, fetch the IP from the containers within the Pod. +func (ds *dockerService) determinePodIPBySandboxID(sandboxID string) string { opts := dockertypes.ContainerListOptions{ All: true, Filters: dockerfilters.NewArgs(), @@ -138,8 +117,49 @@ func (ds *dockerService) determinePodIPBySandboxID(sandboxID string, sandbox *do continue } - if containerIP := ds.getIP(c.ID, r); containerIP != "" { - return containerIP + // Versions and feature support + // ============================ + // Windows version == Windows Server, Version 1709,, Supports both sandbox and non-sandbox case + // Windows version == Windows Server 2016 Support only non-sandbox case + // Windows version < Windows Server 2016 is Not Supported + + // Sandbox support in Windows mandates CNI Plugin. + // Presence of CONTAINER_NETWORK flag is considered as non-Sandbox cases here + + // Todo: Add a kernel version check for more validation + + if networkMode := os.Getenv("CONTAINER_NETWORK"); networkMode == "" { + // On Windows, every container that is created in a Sandbox, needs to invoke CNI plugin again for adding the Network, + // with the shared container name as NetNS info, + // This is passed down to the platform to replicate some necessary information to the new container + + // + // This place is chosen as a hack for now, since ds.getIP would end up calling CNI's addToNetwork + // That is why addToNetwork is required to be idempotent + + // Instead of relying on this call, an explicit call to addToNetwork should be + // done immediately after ContainerCreation, in case of Windows only. TBD Issue # to handle this + + if r.HostConfig.Isolation == kubeletapis.HypervIsolationValue { + // Hyper-V only supports one container per Pod yet and the container will have a different + // IP address from sandbox. Return the first non-sandbox container IP as POD IP. + // TODO(feiskyer): remove this workaround after Hyper-V supports multiple containers per Pod. + if containerIP := ds.getIP(c.ID, r); containerIP != "" { + return containerIP + } + } else { + // Do not return any IP, so that we would continue and get the IP of the Sandbox. + // Windows 1709 and 1803 doesn't have the Namespace support, so getIP() is called + // to replicate the DNS registry key to the Workload container (IP/Gateway/MAC is + // set separately than DNS). + // TODO(feiskyer): remove this workaround after Namespace is supported in Windows RS5. + ds.getIP(sandboxID, r) + } + } else { + // ds.getIP will call the CNI plugin to fetch the IP + if containerIP := ds.getIP(c.ID, r); containerIP != "" { + return containerIP + } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS index cb71f3b3de93..73c2c95f9a3d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS @@ -3,6 +3,7 @@ approvers: - dchen1107 - matchstick - freehan +- dcbw reviewers: - sig-network-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD index 08c744ba87d9..a6e6c8476946 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD @@ -11,6 +11,8 @@ go_test( srcs = [ "eviction_manager_test.go", "helpers_test.go", + "memory_threshold_notifier_test.go", + "mock_threshold_notifier_test.go", ], embed = [":go_default_library"], deps = [ @@ -20,6 +22,7 @@ go_test( "//pkg/kubelet/eviction/api:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", "//pkg/kubelet/types:go_default_library", + "//vendor/github.com/stretchr/testify/mock:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -36,6 +39,7 @@ go_library( "doc.go", "eviction_manager.go", "helpers.go", + "memory_threshold_notifier.go", "types.go", ] + select({ "@io_bazel_rules_go//go/platform:android": [ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go index cadc6afaa6ce..98833d9254dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go @@ -19,7 +19,6 @@ package eviction import ( "fmt" "sort" - "strconv" "sync" "time" @@ -35,7 +34,6 @@ import ( v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" "k8s.io/kubernetes/pkg/features" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" - "k8s.io/kubernetes/pkg/kubelet/cm" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/metrics" @@ -85,10 +83,12 @@ type managerImpl struct { signalToNodeReclaimFuncs map[evictionapi.Signal]nodeReclaimFuncs // last observations from synchronize lastObservations signalObservations - // notifierStopCh is a channel used to stop all thresholdNotifiers - notifierStopCh ThresholdStopCh // dedicatedImageFs indicates if imagefs is on a separate device from the rootfs dedicatedImageFs *bool + // thresholdNotifiers is a list of memory threshold notifiers which each notify for a memory eviction threshold + thresholdNotifiers []ThresholdNotifier + // thresholdsLastUpdated is the last time the thresholdNotifiers were updated. + thresholdsLastUpdated time.Time } // ensure it implements the required interface @@ -116,8 +116,8 @@ func NewManager( nodeRef: nodeRef, nodeConditionsLastObservedAt: nodeConditionsObservedAt{}, thresholdsFirstObservedAt: thresholdsObservedAt{}, - notifierStopCh: NewInitialStopCh(clock), dedicatedImageFs: nil, + thresholdNotifiers: []ThresholdNotifier{}, } return manager, manager } @@ -157,12 +157,29 @@ func (m *managerImpl) Admit(attrs *lifecycle.PodAdmitAttributes) lifecycle.PodAd return lifecycle.PodAdmitResult{ Admit: false, Reason: Reason, - Message: fmt.Sprintf(message, m.nodeConditions), + Message: fmt.Sprintf(nodeLowMessageFmt, m.nodeConditions), } } // Start starts the control loop to observe and response to low compute resources. func (m *managerImpl) Start(diskInfoProvider DiskInfoProvider, podFunc ActivePodsFunc, podCleanedUpFunc PodCleanedUpFunc, monitoringInterval time.Duration) { + thresholdHandler := func(message string) { + glog.Infof(message) + m.synchronize(diskInfoProvider, podFunc) + } + if m.config.KernelMemcgNotification { + for _, threshold := range m.config.Thresholds { + if threshold.Signal == evictionapi.SignalMemoryAvailable || threshold.Signal == evictionapi.SignalAllocatableMemoryAvailable { + notifier, err := NewMemoryThresholdNotifier(threshold, m.config.PodCgroupRoot, &CgroupNotifierFactory{}, thresholdHandler) + if err != nil { + glog.Warningf("eviction manager: failed to create memory threshold notifier: %v", err) + } else { + go notifier.Start() + m.thresholdNotifiers = append(m.thresholdNotifiers, notifier) + } + } + } + } // start the eviction manager monitoring go func() { for { @@ -197,51 +214,6 @@ func (m *managerImpl) IsUnderPIDPressure() bool { return hasNodeCondition(m.nodeConditions, v1.NodePIDPressure) } -func (m *managerImpl) startMemoryThresholdNotifier(summary *statsapi.Summary, hard, allocatable bool, handler thresholdNotifierHandlerFunc) error { - for _, threshold := range m.config.Thresholds { - if threshold.Signal != evictionapi.SignalMemoryAvailable || hard != isHardEvictionThreshold(threshold) { - continue - } - cgroups, err := cm.GetCgroupSubsystems() - if err != nil { - return err - } - cgpath, found := cgroups.MountPoints["memory"] - if !found || len(cgpath) == 0 { - return fmt.Errorf("memory cgroup mount point not found") - } - attribute := "memory.usage_in_bytes" - memoryStats := summary.Node.Memory - if allocatable { - cgpath += m.config.PodCgroupRoot - allocatableContainer, err := getSysContainer(summary.Node.SystemContainers, statsapi.SystemContainerPods) - if err != nil { - return err - } - memoryStats = allocatableContainer.Memory - } - if memoryStats == nil || memoryStats.UsageBytes == nil || memoryStats.WorkingSetBytes == nil || memoryStats.AvailableBytes == nil { - return fmt.Errorf("summary was incomplete") - } - // Set threshold on usage to capacity - eviction_hard + inactive_file, - // since we want to be notified when working_set = capacity - eviction_hard - inactiveFile := resource.NewQuantity(int64(*memoryStats.UsageBytes-*memoryStats.WorkingSetBytes), resource.BinarySI) - capacity := resource.NewQuantity(int64(*memoryStats.AvailableBytes+*memoryStats.WorkingSetBytes), resource.BinarySI) - evictionThresholdQuantity := evictionapi.GetThresholdQuantity(threshold.Value, capacity) - memcgThreshold := capacity.DeepCopy() - memcgThreshold.Sub(*evictionThresholdQuantity) - memcgThreshold.Add(*inactiveFile) - description := fmt.Sprintf("<%s available", formatThresholdValue(threshold.Value)) - memcgThresholdNotifier, err := NewMemCGThresholdNotifier(cgpath, attribute, strconv.FormatInt(memcgThreshold.Value(), 10), description, handler) - if err != nil { - return err - } - go memcgThresholdNotifier.Start(m.notifierStopCh) - return nil - } - return nil -} - // synchronize is the main control loop that enforces eviction thresholds. // Returns the pod that was killed, or nil if no pod was killed. func (m *managerImpl) synchronize(diskInfoProvider DiskInfoProvider, podFunc ActivePodsFunc) []*v1.Pod { @@ -272,41 +244,12 @@ func (m *managerImpl) synchronize(diskInfoProvider DiskInfoProvider, podFunc Act return nil } - // attempt to create a threshold notifier to improve eviction response time - if m.config.KernelMemcgNotification && m.notifierStopCh.Reset() { - glog.V(4).Infof("eviction manager attempting to integrate with kernel memcg notification api") - // start soft memory notification - err = m.startMemoryThresholdNotifier(summary, false, false, func(desc string) { - glog.Infof("soft memory eviction threshold crossed at %s", desc) - // TODO wait grace period for soft memory limit - m.synchronize(diskInfoProvider, podFunc) - }) - if err != nil { - glog.Warningf("eviction manager: failed to create soft memory threshold notifier: %v", err) - } // start soft memory notification - err = m.startMemoryThresholdNotifier(summary, false, true, func(desc string) { - glog.Infof("soft allocatable memory eviction threshold crossed at %s", desc) - // TODO wait grace period for soft memory limit - m.synchronize(diskInfoProvider, podFunc) - }) - if err != nil { - glog.Warningf("eviction manager: failed to create allocatable soft memory threshold notifier: %v", err) - } - // start hard memory notification - err = m.startMemoryThresholdNotifier(summary, true, false, func(desc string) { - glog.Infof("hard memory eviction threshold crossed at %s", desc) - m.synchronize(diskInfoProvider, podFunc) - }) - if err != nil { - glog.Warningf("eviction manager: failed to create hard memory threshold notifier: %v", err) - } - // start hard memory notification - err = m.startMemoryThresholdNotifier(summary, true, true, func(desc string) { - glog.Infof("hard allocatable memory eviction threshold crossed at %s", desc) - m.synchronize(diskInfoProvider, podFunc) - }) - if err != nil { - glog.Warningf("eviction manager: failed to create hard allocatable memory threshold notifier: %v", err) + if m.clock.Since(m.thresholdsLastUpdated) > notifierRefreshInterval { + m.thresholdsLastUpdated = m.clock.Now() + for _, notifier := range m.thresholdNotifiers { + if err := notifier.UpdateThreshold(summary); err != nil { + glog.Warningf("eviction manager: failed to update %s: %v", notifier.Description(), err) + } } } @@ -535,7 +478,7 @@ func (m *managerImpl) emptyDirLimitEviction(podStats statsapi.PodStats, pod *v1. used := podVolumeUsed[pod.Spec.Volumes[i].Name] if used != nil && size != nil && size.Sign() == 1 && used.Cmp(*size) > 0 { // the emptyDir usage exceeds the size limit, evict the pod - return m.evictPod(pod, 0, fmt.Sprintf(emptyDirMessage, pod.Spec.Volumes[i].Name, size.String()), nil) + return m.evictPod(pod, 0, fmt.Sprintf(emptyDirMessageFmt, pod.Spec.Volumes[i].Name, size.String()), nil) } } } @@ -567,7 +510,7 @@ func (m *managerImpl) podEphemeralStorageLimitEviction(podStats statsapi.PodStat podEphemeralStorageLimit := podLimits[v1.ResourceEphemeralStorage] if podEphemeralStorageTotalUsage.Cmp(podEphemeralStorageLimit) > 0 { // the total usage of pod exceeds the total size limit of containers, evict the pod - return m.evictPod(pod, 0, fmt.Sprintf(podEphemeralStorageMessage, podEphemeralStorageLimit.String()), nil) + return m.evictPod(pod, 0, fmt.Sprintf(podEphemeralStorageMessageFmt, podEphemeralStorageLimit.String()), nil) } return false } @@ -589,7 +532,7 @@ func (m *managerImpl) containerEphemeralStorageLimitEviction(podStats statsapi.P if ephemeralStorageThreshold, ok := thresholdsMap[containerStat.Name]; ok { if ephemeralStorageThreshold.Cmp(*containerUsed) < 0 { - return m.evictPod(pod, 0, fmt.Sprintf(containerEphemeralStorageMessage, containerStat.Name, ephemeralStorageThreshold.String()), nil) + return m.evictPod(pod, 0, fmt.Sprintf(containerEphemeralStorageMessageFmt, containerStat.Name, ephemeralStorageThreshold.String()), nil) } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go index 9ec64c4089aa..e8b4a4e36d33 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go @@ -17,6 +17,7 @@ limitations under the License. package eviction import ( + "fmt" "testing" "time" @@ -1434,3 +1435,74 @@ func TestAllocatableMemoryPressure(t *testing.T) { } } } + +func TestUpdateMemcgThreshold(t *testing.T) { + activePodsFunc := func() []*v1.Pod { + return []*v1.Pod{} + } + + fakeClock := clock.NewFakeClock(time.Now()) + podKiller := &mockPodKiller{} + diskInfoProvider := &mockDiskInfoProvider{dedicatedImageFs: false} + diskGC := &mockDiskGC{err: nil} + nodeRef := &v1.ObjectReference{Kind: "Node", Name: "test", UID: types.UID("test"), Namespace: ""} + + config := Config{ + MaxPodGracePeriodSeconds: 5, + PressureTransitionPeriod: time.Minute * 5, + Thresholds: []evictionapi.Threshold{ + { + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("1Gi"), + }, + }, + }, + PodCgroupRoot: "kubepods", + } + summaryProvider := &fakeSummaryProvider{result: makeMemoryStats("2Gi", map[*v1.Pod]statsapi.PodStats{})} + + thresholdNotifier := &MockThresholdNotifier{} + thresholdNotifier.On("UpdateThreshold", summaryProvider.result).Return(nil).Twice() + + manager := &managerImpl{ + clock: fakeClock, + killPodFunc: podKiller.killPodNow, + imageGC: diskGC, + containerGC: diskGC, + config: config, + recorder: &record.FakeRecorder{}, + summaryProvider: summaryProvider, + nodeRef: nodeRef, + nodeConditionsLastObservedAt: nodeConditionsObservedAt{}, + thresholdsFirstObservedAt: thresholdsObservedAt{}, + thresholdNotifiers: []ThresholdNotifier{thresholdNotifier}, + } + + manager.synchronize(diskInfoProvider, activePodsFunc) + // The UpdateThreshold method should have been called once, since this is the first run. + thresholdNotifier.AssertNumberOfCalls(t, "UpdateThreshold", 1) + + manager.synchronize(diskInfoProvider, activePodsFunc) + // The UpdateThreshold method should not have been called again, since not enough time has passed + thresholdNotifier.AssertNumberOfCalls(t, "UpdateThreshold", 1) + + fakeClock.Step(2 * notifierRefreshInterval) + manager.synchronize(diskInfoProvider, activePodsFunc) + // The UpdateThreshold method should be called again since enough time has passed + thresholdNotifier.AssertNumberOfCalls(t, "UpdateThreshold", 2) + + // new memory threshold notifier that returns an error + thresholdNotifier = &MockThresholdNotifier{} + thresholdNotifier.On("UpdateThreshold", summaryProvider.result).Return(fmt.Errorf("error updating threshold")) + thresholdNotifier.On("Description").Return("mock thresholdNotifier").Once() + manager.thresholdNotifiers = []ThresholdNotifier{thresholdNotifier} + + fakeClock.Step(2 * notifierRefreshInterval) + manager.synchronize(diskInfoProvider, activePodsFunc) + // The UpdateThreshold method should be called because at least notifierRefreshInterval time has passed. + // The Description method should be called because UpdateThreshold returned an error + thresholdNotifier.AssertNumberOfCalls(t, "UpdateThreshold", 1) + thresholdNotifier.AssertNumberOfCalls(t, "Description", 1) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go index 1c309360a396..c078ce93d00d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go @@ -21,13 +21,11 @@ import ( "sort" "strconv" "strings" - "sync" "time" "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/util/clock" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/features" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" @@ -40,21 +38,18 @@ const ( unsupportedEvictionSignal = "unsupported eviction signal %v" // Reason is the reason reported back in status. Reason = "Evicted" - // the message associated with the reason. - message = "The node was low on resource: %v. " - // additional information for containers exceeding requests - containerMessage = "Container %s was using %s, which exceeds its request of %s. " - // additional information for containers which have exceeded their ES limit - containerEphemeralStorageMessage = "Container %s exceeded its local ephemeral storage limit %q. " - // additional information for pods which have exceeded their ES limit - podEphemeralStorageMessage = "Pod ephemeral local storage usage exceeds the total limit of containers %s. " - // additional information for empty-dir volumes which have exceeded their size limit - emptyDirMessage = "Usage of EmptyDir volume %q exceeds the limit %q. " + // nodeLowMessageFmt is the message for evictions due to resource pressure. + nodeLowMessageFmt = "The node was low on resource: %v. " + // containerMessageFmt provides additional information for containers exceeding requests + containerMessageFmt = "Container %s was using %s, which exceeds its request of %s. " + // containerEphemeralStorageMessageFmt provides additional information for containers which have exceeded their ES limit + containerEphemeralStorageMessageFmt = "Container %s exceeded its local ephemeral storage limit %q. " + // podEphemeralStorageMessageFmt provides additional information for pods which have exceeded their ES limit + podEphemeralStorageMessageFmt = "Pod ephemeral local storage usage exceeds the total limit of containers %s. " + // emptyDirMessageFmt provides additional information for empty-dir volumes which have exceeded their size limit + emptyDirMessageFmt = "Usage of EmptyDir volume %q exceeds the limit %q. " // inodes, number. internal to this module, used to account for local disk inode consumption. resourceInodes v1.ResourceName = "inodes" - // this prevents constantly updating the memcg notifier if synchronize - // is run frequently. - notifierRefreshInterval = 10 * time.Second // OffendingContainersKey is the key in eviction event annotations for the list of container names which exceeded their requests OffendingContainersKey = "offending_containers" // OffendingContainersUsageKey is the key in eviction event annotations for the list of usage of containers which exceeded their requests @@ -1007,6 +1002,10 @@ func isHardEvictionThreshold(threshold evictionapi.Threshold) bool { return threshold.GracePeriod == time.Duration(0) } +func isAllocatableEvictionThreshold(threshold evictionapi.Threshold) bool { + return threshold.Signal == evictionapi.SignalAllocatableMemoryAvailable +} + // buildSignalToRankFunc returns ranking functions associated with resources func buildSignalToRankFunc(withImageFs bool) map[evictionapi.Signal]rankFunc { signalToRankFunc := map[evictionapi.Signal]rankFunc{ @@ -1062,7 +1061,7 @@ func buildSignalToNodeReclaimFuncs(imageGC ImageGC, containerGC ContainerGC, wit // evictionMessage constructs a useful message about why an eviction occurred, and annotations to provide metadata about the eviction func evictionMessage(resourceToReclaim v1.ResourceName, pod *v1.Pod, stats statsFunc) (message string, annotations map[string]string) { annotations = make(map[string]string) - message = fmt.Sprintf(message, resourceToReclaim) + message = fmt.Sprintf(nodeLowMessageFmt, resourceToReclaim) containers := []string{} containerUsage := []string{} podStats, ok := stats(pod) @@ -1085,7 +1084,7 @@ func evictionMessage(resourceToReclaim v1.ResourceName, pod *v1.Pod, stats stats } } if usage != nil && usage.Cmp(requests) > 0 { - message += fmt.Sprintf(containerMessage, container.Name, usage.String(), requests.String()) + message += fmt.Sprintf(containerMessageFmt, container.Name, usage.String(), requests.String()) containers = append(containers, container.Name) containerUsage = append(containerUsage, usage.String()) } @@ -1097,38 +1096,3 @@ func evictionMessage(resourceToReclaim v1.ResourceName, pod *v1.Pod, stats stats annotations[StarvedResourceKey] = string(resourceToReclaim) return } - -// thresholdStopCh is a ThresholdStopCh which can only be closed after notifierRefreshInterval time has passed -type thresholdStopCh struct { - lock sync.Mutex - ch chan struct{} - startTime time.Time - // used to track time - clock clock.Clock -} - -// NewInitialStopCh returns a ThresholdStopCh which can be closed immediately -func NewInitialStopCh(clock clock.Clock) ThresholdStopCh { - return &thresholdStopCh{ch: make(chan struct{}), clock: clock} -} - -// implements ThresholdStopCh.Reset -func (t *thresholdStopCh) Reset() (closed bool) { - t.lock.Lock() - defer t.lock.Unlock() - closed = t.clock.Since(t.startTime) > notifierRefreshInterval - if closed { - // close the old channel and reopen a new one - close(t.ch) - t.startTime = t.clock.Now() - t.ch = make(chan struct{}) - } - return -} - -// implements ThresholdStopCh.Ch -func (t *thresholdStopCh) Ch() <-chan struct{} { - t.lock.Lock() - defer t.lock.Unlock() - return t.ch -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go index d7ce3c8586fd..0ed5a1b673f7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go @@ -20,7 +20,6 @@ import ( "fmt" "reflect" "sort" - "sync" "testing" "time" @@ -28,7 +27,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/clock" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/features" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" @@ -1948,34 +1946,3 @@ func (s1 thresholdList) Equal(s2 thresholdList) bool { } return true } - -func TestThresholdStopCh(t *testing.T) { - var wg sync.WaitGroup - fakeClock := clock.NewFakeClock(time.Now()) - stop := NewInitialStopCh(fakeClock) - - // Should be able to reset the InitialStopCh right away - if !stop.Reset() { - t.Errorf("Expected to be able to close the initialStopCh, but was unsuccessful") - } - - // Need to wait notifierRefreshInterval before closing - if stop.Reset() { - t.Errorf("Expected not to be able to close the initialStopCh, but was successful") - } - - wg.Add(1) - ch := stop.Ch() - go func() { - defer wg.Done() - // wait for the channel to close - <-ch - }() - - fakeClock.Step(2 * notifierRefreshInterval) - if !stop.Reset() { - t.Errorf("Expected to be able to close the initialStopCh, but was unsuccessful") - } - // ensure the Reset() closed the channel - wg.Wait() -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier.go new file mode 100644 index 000000000000..8d86944f39d0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier.go @@ -0,0 +1,135 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 eviction + +import ( + "fmt" + "time" + + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/api/resource" + statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/cm" + evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" +) + +const ( + memoryUsageAttribute = "memory.usage_in_bytes" + // this prevents constantly updating the memcg notifier if synchronize + // is run frequently. + notifierRefreshInterval = 10 * time.Second +) + +type memoryThresholdNotifier struct { + threshold evictionapi.Threshold + cgroupPath string + events chan struct{} + factory NotifierFactory + handler func(string) + notifier CgroupNotifier +} + +var _ ThresholdNotifier = &memoryThresholdNotifier{} + +// NewMemoryThresholdNotifier creates a ThresholdNotifier which is designed to respond to the given threshold. +// UpdateThreshold must be called once before the threshold will be active. +func NewMemoryThresholdNotifier(threshold evictionapi.Threshold, cgroupRoot string, factory NotifierFactory, handler func(string)) (ThresholdNotifier, error) { + cgroups, err := cm.GetCgroupSubsystems() + if err != nil { + return nil, err + } + cgpath, found := cgroups.MountPoints["memory"] + if !found || len(cgpath) == 0 { + return nil, fmt.Errorf("memory cgroup mount point not found") + } + if isAllocatableEvictionThreshold(threshold) { + // for allocatable thresholds, point the cgroup notifier at the allocatable cgroup + cgpath += cgroupRoot + } + return &memoryThresholdNotifier{ + threshold: threshold, + cgroupPath: cgpath, + events: make(chan struct{}), + handler: handler, + factory: factory, + }, nil +} + +func (m *memoryThresholdNotifier) Start() { + glog.Infof("eviction manager: created %s", m.Description()) + for range m.events { + m.handler(fmt.Sprintf("eviction manager: %s crossed", m.Description())) + } +} + +func (m *memoryThresholdNotifier) UpdateThreshold(summary *statsapi.Summary) error { + memoryStats := summary.Node.Memory + if isAllocatableEvictionThreshold(m.threshold) { + allocatableContainer, err := getSysContainer(summary.Node.SystemContainers, statsapi.SystemContainerPods) + if err != nil { + return err + } + memoryStats = allocatableContainer.Memory + } + if memoryStats == nil || memoryStats.UsageBytes == nil || memoryStats.WorkingSetBytes == nil || memoryStats.AvailableBytes == nil { + return fmt.Errorf("summary was incomplete. Expected MemoryStats and all subfields to be non-nil, but got %+v", memoryStats) + } + // Set threshold on usage to capacity - eviction_hard + inactive_file, + // since we want to be notified when working_set = capacity - eviction_hard + inactiveFile := resource.NewQuantity(int64(*memoryStats.UsageBytes-*memoryStats.WorkingSetBytes), resource.BinarySI) + capacity := resource.NewQuantity(int64(*memoryStats.AvailableBytes+*memoryStats.WorkingSetBytes), resource.BinarySI) + evictionThresholdQuantity := evictionapi.GetThresholdQuantity(m.threshold.Value, capacity) + memcgThreshold := capacity.DeepCopy() + memcgThreshold.Sub(*evictionThresholdQuantity) + memcgThreshold.Add(*inactiveFile) + + glog.V(3).Infof("eviction manager: setting %s to %s\n", m.Description(), memcgThreshold.String()) + if m.notifier != nil { + m.notifier.Stop() + } + newNotifier, err := m.factory.NewCgroupNotifier(m.cgroupPath, memoryUsageAttribute, memcgThreshold.Value()) + if err != nil { + return err + } + m.notifier = newNotifier + go m.notifier.Start(m.events) + return nil +} + +func (m *memoryThresholdNotifier) Description() string { + var hard, allocatable string + if isHardEvictionThreshold(m.threshold) { + hard = "hard " + } else { + hard = "soft " + } + if isAllocatableEvictionThreshold(m.threshold) { + allocatable = "allocatable " + } + return fmt.Sprintf("%s%smemory eviction threshold", hard, allocatable) +} + +var _ NotifierFactory = &CgroupNotifierFactory{} + +// CgroupNotifierFactory knows how to make CgroupNotifiers which integrate with the kernel +type CgroupNotifierFactory struct{} + +// NewCgroupNotifier implements the NotifierFactory interface +func (n *CgroupNotifierFactory) NewCgroupNotifier(path, attribute string, threshold int64) (CgroupNotifier, error) { + return NewCgroupNotifier(path, attribute, threshold) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier_test.go new file mode 100644 index 000000000000..8317e051fe65 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/memory_threshold_notifier_test.go @@ -0,0 +1,270 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 eviction + +import ( + "fmt" + "strings" + "sync" + "testing" + "time" + + "k8s.io/apimachinery/pkg/api/resource" + statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" + evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" +) + +const testCgroupPath = "/sys/fs/cgroups/memory" + +func nodeSummary(available, workingSet, usage resource.Quantity, allocatable bool) *statsapi.Summary { + availableBytes := uint64(available.Value()) + workingSetBytes := uint64(workingSet.Value()) + usageBytes := uint64(usage.Value()) + memoryStats := statsapi.MemoryStats{ + AvailableBytes: &availableBytes, + WorkingSetBytes: &workingSetBytes, + UsageBytes: &usageBytes, + } + if allocatable { + return &statsapi.Summary{ + Node: statsapi.NodeStats{ + SystemContainers: []statsapi.ContainerStats{ + { + Name: statsapi.SystemContainerPods, + Memory: &memoryStats, + }, + }, + }, + } + } + return &statsapi.Summary{ + Node: statsapi.NodeStats{ + Memory: &memoryStats, + }, + } +} + +func newTestMemoryThresholdNotifier(threshold evictionapi.Threshold, factory NotifierFactory, handler func(string)) *memoryThresholdNotifier { + return &memoryThresholdNotifier{ + threshold: threshold, + cgroupPath: testCgroupPath, + events: make(chan struct{}), + factory: factory, + handler: handler, + } +} + +func TestUpdateThreshold(t *testing.T) { + testCases := []struct { + description string + available resource.Quantity + workingSet resource.Quantity + usage resource.Quantity + evictionThreshold evictionapi.Threshold + expectedThreshold resource.Quantity + updateThresholdErr error + expectErr bool + }{ + { + description: "node level threshold", + available: resource.MustParse("3Gi"), + usage: resource.MustParse("2Gi"), + workingSet: resource.MustParse("1Gi"), + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("1Gi"), + }, + }, + expectedThreshold: resource.MustParse("4Gi"), + updateThresholdErr: nil, + expectErr: false, + }, + { + description: "allocatable threshold", + available: resource.MustParse("4Gi"), + usage: resource.MustParse("3Gi"), + workingSet: resource.MustParse("1Gi"), + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalAllocatableMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("1Gi"), + }, + }, + expectedThreshold: resource.MustParse("6Gi"), + updateThresholdErr: nil, + expectErr: false, + }, + { + description: "error updating node level threshold", + available: resource.MustParse("3Gi"), + usage: resource.MustParse("2Gi"), + workingSet: resource.MustParse("1Gi"), + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("1Gi"), + }, + }, + expectedThreshold: resource.MustParse("4Gi"), + updateThresholdErr: fmt.Errorf("unexpected error"), + expectErr: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + notifierFactory := &MockNotifierFactory{} + notifier := &MockCgroupNotifier{} + m := newTestMemoryThresholdNotifier(tc.evictionThreshold, notifierFactory, nil) + notifierFactory.On("NewCgroupNotifier", testCgroupPath, memoryUsageAttribute, tc.expectedThreshold.Value()).Return(notifier, tc.updateThresholdErr) + var events chan<- struct{} + events = m.events + notifier.On("Start", events).Return() + err := m.UpdateThreshold(nodeSummary(tc.available, tc.workingSet, tc.usage, isAllocatableEvictionThreshold(tc.evictionThreshold))) + if err != nil && !tc.expectErr { + t.Errorf("Unexpected error updating threshold: %v", err) + } else if err == nil && tc.expectErr { + t.Errorf("Expected error updating threshold, but got nil") + } + if !tc.expectErr { + notifierFactory.AssertNumberOfCalls(t, "NewCgroupNotifier", 1) + } + }) + } +} + +func TestStart(t *testing.T) { + noResources := resource.MustParse("0") + threshold := evictionapi.Threshold{ + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: &noResources, + }, + } + notifier := &MockCgroupNotifier{} + notifierFactory := &MockNotifierFactory{} + + var wg sync.WaitGroup + wg.Add(4) + m := newTestMemoryThresholdNotifier(threshold, notifierFactory, func(string) { + wg.Done() + }) + notifierFactory.On("NewCgroupNotifier", testCgroupPath, memoryUsageAttribute, int64(0)).Return(notifier, nil) + var events chan<- struct{} + events = m.events + notifier.On("Start", events).Return() + notifier.On("Stop").Return() + + err := m.UpdateThreshold(nodeSummary(noResources, noResources, noResources, isAllocatableEvictionThreshold(threshold))) + if err != nil { + t.Errorf("Unexpected error updating threshold: %v", err) + } + notifierFactory.AssertNumberOfCalls(t, "NewCgroupNotifier", 1) + + go m.Start() + + for i := 0; i < 4; i++ { + m.events <- struct{}{} + } + wg.Wait() +} + +func TestThresholdDescription(t *testing.T) { + testCases := []struct { + description string + evictionThreshold evictionapi.Threshold + expectedSubstrings []string + omittedSubstrings []string + }{ + { + description: "hard node level threshold", + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("2Gi"), + }, + }, + expectedSubstrings: []string{"hard"}, + omittedSubstrings: []string{"allocatable", "soft"}, + }, + { + description: "soft node level threshold", + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("2Gi"), + }, + GracePeriod: time.Minute * 2, + }, + expectedSubstrings: []string{"soft"}, + omittedSubstrings: []string{"allocatable", "hard"}, + }, + { + description: "hard allocatable threshold", + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalAllocatableMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("2Gi"), + }, + GracePeriod: time.Minute * 2, + }, + expectedSubstrings: []string{"soft", "allocatable"}, + omittedSubstrings: []string{"hard"}, + }, + { + description: "soft allocatable threshold", + evictionThreshold: evictionapi.Threshold{ + Signal: evictionapi.SignalAllocatableMemoryAvailable, + Operator: evictionapi.OpLessThan, + Value: evictionapi.ThresholdValue{ + Quantity: quantityMustParse("2Gi"), + }, + }, + expectedSubstrings: []string{"hard", "allocatable"}, + omittedSubstrings: []string{"soft"}, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + m := &memoryThresholdNotifier{ + notifier: &MockCgroupNotifier{}, + threshold: tc.evictionThreshold, + cgroupPath: testCgroupPath, + } + desc := m.Description() + for _, expected := range tc.expectedSubstrings { + if !strings.Contains(desc, expected) { + t.Errorf("expected description for notifier with threshold %+v to contain %s, but it did not", tc.evictionThreshold, expected) + } + } + for _, omitted := range tc.omittedSubstrings { + if strings.Contains(desc, omitted) { + t.Errorf("expected description for notifier with threshold %+v NOT to contain %s, but it did", tc.evictionThreshold, omitted) + } + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/mock_threshold_notifier_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/mock_threshold_notifier_test.go new file mode 100644 index 000000000000..c94e6fe5f32f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/mock_threshold_notifier_test.go @@ -0,0 +1,98 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 eviction + +import ( + mock "github.com/stretchr/testify/mock" + statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" +) + +// MockCgroupNotifier is a mock implementation of the CgroupNotifier interface +type MockCgroupNotifier struct { + mock.Mock +} + +// Start implements the NotifierFactory interface +func (m *MockCgroupNotifier) Start(a0 chan<- struct{}) { + m.Called(a0) +} + +// Stop implements the NotifierFactory interface +func (m *MockCgroupNotifier) Stop() { + m.Called() +} + +// MockNotifierFactory is a mock of the NotifierFactory interface +type MockNotifierFactory struct { + mock.Mock +} + +// NewCgroupNotifier implements the NotifierFactory interface +func (m *MockNotifierFactory) NewCgroupNotifier(a0, a1 string, a2 int64) (CgroupNotifier, error) { + ret := m.Called(a0, a1, a2) + + var r0 CgroupNotifier + if rf, ok := ret.Get(0).(func(string, string, int64) CgroupNotifier); ok { + r0 = rf(a0, a1, a2) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(CgroupNotifier) + } + } + var r1 error + if rf, ok := ret.Get(1).(func(string, string, int64) error); ok { + r1 = rf(a0, a1, a2) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// MockThresholdNotifier is a mock implementation of the ThresholdNotifier interface +type MockThresholdNotifier struct { + mock.Mock +} + +// Start implements the ThresholdNotifier interface +func (m *MockThresholdNotifier) Start() { + m.Called() +} + +// UpdateThreshold implements the ThresholdNotifier interface +func (m *MockThresholdNotifier) UpdateThreshold(a0 *statsapi.Summary) error { + ret := m.Called(a0) + + var r0 error + if rf, ok := ret.Get(0).(func(*statsapi.Summary) error); ok { + r0 = rf(a0) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// Description implements the ThresholdNotifier interface +func (m *MockThresholdNotifier) Description() string { + ret := m.Called() + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.String(0) + } + return r0 +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_linux.go index 89d7c79c8d71..4fabd7345a5c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_linux.go @@ -18,100 +18,168 @@ package eviction import ( "fmt" + "sync" + "time" "github.com/golang/glog" "golang.org/x/sys/unix" ) -type memcgThresholdNotifier struct { - watchfd int - controlfd int - eventfd int - handler thresholdNotifierHandlerFunc - description string +const ( + // eventSize is the number of bytes returned by a successful read from an eventfd + // see http://man7.org/linux/man-pages/man2/eventfd.2.html for more information + eventSize = 8 + // numFdEvents is the number of events we can record at once. + // If EpollWait finds more than this, they will be missed. + numFdEvents = 6 +) + +type linuxCgroupNotifier struct { + eventfd int + epfd int + stop chan struct{} + stopLock sync.Mutex } -var _ ThresholdNotifier = &memcgThresholdNotifier{} +var _ CgroupNotifier = &linuxCgroupNotifier{} -// NewMemCGThresholdNotifier sends notifications when a cgroup threshold -// is crossed (in either direction) for a given cgroup attribute -func NewMemCGThresholdNotifier(path, attribute, threshold, description string, handler thresholdNotifierHandlerFunc) (ThresholdNotifier, error) { - watchfd, err := unix.Open(fmt.Sprintf("%s/%s", path, attribute), unix.O_RDONLY, 0) +// NewCgroupNotifier returns a linuxCgroupNotifier, which performs cgroup control operations required +// to receive notifications from the cgroup when the threshold is crossed in either direction. +func NewCgroupNotifier(path, attribute string, threshold int64) (CgroupNotifier, error) { + var watchfd, eventfd, epfd, controlfd int + var err error + watchfd, err = unix.Open(fmt.Sprintf("%s/%s", path, attribute), unix.O_RDONLY, 0) if err != nil { return nil, err } - defer func() { - if err != nil { - unix.Close(watchfd) - } - }() - controlfd, err := unix.Open(fmt.Sprintf("%s/cgroup.event_control", path), unix.O_WRONLY, 0) + defer unix.Close(watchfd) + controlfd, err = unix.Open(fmt.Sprintf("%s/cgroup.event_control", path), unix.O_WRONLY, 0) if err != nil { return nil, err } + defer unix.Close(controlfd) + eventfd, err = unix.Eventfd(0, unix.EFD_CLOEXEC) + if err != nil { + return nil, err + } + if eventfd < 0 { + err = fmt.Errorf("eventfd call failed") + return nil, err + } defer func() { + // Close eventfd if we get an error later in initialization if err != nil { - unix.Close(controlfd) + unix.Close(eventfd) } }() - eventfd, err := unix.Eventfd(0, unix.EFD_CLOEXEC) + epfd, err = unix.EpollCreate1(0) if err != nil { return nil, err } - if eventfd < 0 { - err = fmt.Errorf("eventfd call failed") + if epfd < 0 { + err = fmt.Errorf("EpollCreate1 call failed") return nil, err } defer func() { + // Close epfd if we get an error later in initialization if err != nil { - unix.Close(eventfd) + unix.Close(epfd) } }() - glog.V(3).Infof("eviction: setting notification threshold to %s", threshold) - config := fmt.Sprintf("%d %d %s", eventfd, watchfd, threshold) + config := fmt.Sprintf("%d %d %d", eventfd, watchfd, threshold) _, err = unix.Write(controlfd, []byte(config)) if err != nil { return nil, err } - return &memcgThresholdNotifier{ - watchfd: watchfd, - controlfd: controlfd, - eventfd: eventfd, - handler: handler, - description: description, + return &linuxCgroupNotifier{ + eventfd: eventfd, + epfd: epfd, + stop: make(chan struct{}), }, nil } -func getThresholdEvents(eventfd int, eventCh chan<- struct{}, stop ThresholdStopCh) { +func (n *linuxCgroupNotifier) Start(eventCh chan<- struct{}) { + err := unix.EpollCtl(n.epfd, unix.EPOLL_CTL_ADD, n.eventfd, &unix.EpollEvent{ + Fd: int32(n.eventfd), + Events: unix.EPOLLIN, + }) + if err != nil { + glog.Warningf("eviction manager: error adding epoll eventfd: %v", err) + return + } for { - buf := make([]byte, 8) - _, err := unix.Read(eventfd, buf) + select { + case <-n.stop: + return + default: + } + event, err := wait(n.epfd, n.eventfd, notifierRefreshInterval) if err != nil { + glog.Warningf("eviction manager: error while waiting for memcg events: %v", err) return + } else if !event { + // Timeout on wait. This is expected if the threshold was not crossed + continue } - - select { - case eventCh <- struct{}{}: - case <-stop.Ch(): + // Consume the event from the eventfd + buf := make([]byte, eventSize) + _, err = unix.Read(n.eventfd, buf) + if err != nil { + glog.Warningf("eviction manager: error reading memcg events: %v", err) return } + eventCh <- struct{}{} } } -func (n *memcgThresholdNotifier) Start(stop ThresholdStopCh) { - eventCh := make(chan struct{}) - go getThresholdEvents(n.eventfd, eventCh, stop) - for { - select { - case <-stop.Ch(): - glog.V(3).Infof("eviction: stopping threshold notifier") - unix.Close(n.watchfd) - unix.Close(n.controlfd) - unix.Close(n.eventfd) - return - case <-eventCh: - glog.V(2).Infof("eviction: threshold crossed") - n.handler(n.description) +// wait waits up to notifierRefreshInterval for an event on the Epoll FD for the +// eventfd we are concerned about. It returns an error if one occurrs, and true +// if the consumer should read from the eventfd. +func wait(epfd, eventfd int, timeout time.Duration) (bool, error) { + events := make([]unix.EpollEvent, numFdEvents+1) + timeoutMS := int(timeout / time.Millisecond) + n, err := unix.EpollWait(epfd, events, timeoutMS) + if n == -1 { + if err == unix.EINTR { + // Interrupt, ignore the error + return false, nil } + return false, err + } + if n == 0 { + // Timeout + return false, nil + } + if n > numFdEvents { + return false, fmt.Errorf("epoll_wait returned more events than we know what to do with") + } + for _, event := range events[:n] { + if event.Fd == int32(eventfd) { + if event.Events&unix.EPOLLHUP != 0 || event.Events&unix.EPOLLERR != 0 || event.Events&unix.EPOLLIN != 0 { + // EPOLLHUP: should not happen, but if it does, treat it as a wakeup. + + // EPOLLERR: If an error is waiting on the file descriptor, we should pretend + // something is ready to read, and let unix.Read pick up the error. + + // EPOLLIN: There is data to read. + return true, nil + } + } + } + // An event occurred that we don't care about. + return false, nil +} + +func (n *linuxCgroupNotifier) Stop() { + n.stopLock.Lock() + defer n.stopLock.Unlock() + select { + case <-n.stop: + // the linuxCgroupNotifier is already stopped + return + default: } + unix.Close(n.eventfd) + unix.Close(n.epfd) + close(n.stop) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_unsupported.go index 77a9b26cfc20..7078c7865a91 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/threshold_notifier_unsupported.go @@ -18,10 +18,16 @@ limitations under the License. package eviction -import "fmt" +import "github.com/golang/glog" -// NewMemCGThresholdNotifier sends notifications when a cgroup threshold -// is crossed (in either direction) for a given cgroup attribute -func NewMemCGThresholdNotifier(path, attribute, threshold, description string, handler thresholdNotifierHandlerFunc) (ThresholdNotifier, error) { - return nil, fmt.Errorf("threshold notification not supported") +// NewCgroupNotifier creates a cgroup notifier that does nothing because cgroups do not exist on non-linux systems. +func NewCgroupNotifier(path, attribute string, threshold int64) (CgroupNotifier, error) { + glog.V(5).Infof("cgroup notifications not supported") + return &unsupportedThresholdNotifier{}, nil } + +type unsupportedThresholdNotifier struct{} + +func (*unsupportedThresholdNotifier) Start(_ chan<- struct{}) {} + +func (*unsupportedThresholdNotifier) Stop() {} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go index 26e0432fd9e0..d78e7e0695b2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go @@ -131,20 +131,30 @@ type nodeReclaimFunc func() error // nodeReclaimFuncs is an ordered list of nodeReclaimFunc type nodeReclaimFuncs []nodeReclaimFunc -// thresholdNotifierHandlerFunc is a function that takes action in response to a crossed threshold -type thresholdNotifierHandlerFunc func(thresholdDescription string) - -// ThresholdStopCh is an interface for a channel which is closed to stop waiting goroutines. -// Implementations of ThresholdStopCh must correctly handle concurrent calls to all functions. -type ThresholdStopCh interface { - // Reset closes the channel if it can be closed, and returns true if it was closed. - // Reset also creates a new channel. - Reset() bool - // Ch returns the channel that is closed when Reset() is called - Ch() <-chan struct{} +// CgroupNotifier generates events from cgroup events +type CgroupNotifier interface { + // Start causes the CgroupNotifier to begin notifying on the eventCh + Start(eventCh chan<- struct{}) + // Stop stops all processes and cleans up file descriptors associated with the CgroupNotifier + Stop() } -// ThresholdNotifier notifies the user when an attribute crosses a threshold value +// NotifierFactory creates CgroupNotifer +type NotifierFactory interface { + // NewCgroupNotifier creates a CgroupNotifier that creates events when the threshold + // on the attribute in the cgroup specified by the path is crossed. + NewCgroupNotifier(path, attribute string, threshold int64) (CgroupNotifier, error) +} + +// ThresholdNotifier manages CgroupNotifiers based on memory eviction thresholds, and performs a function +// when memory eviction thresholds are crossed type ThresholdNotifier interface { - Start(ThresholdStopCh) + // Start calls the notifier function when the CgroupNotifier notifies the ThresholdNotifier that an event occurred + Start() + // UpdateThreshold updates the memory cgroup threshold based on the metrics provided. + // Calling UpdateThreshold with recent metrics allows the ThresholdNotifier to trigger at the + // eviction threshold more accurately + UpdateThreshold(summary *statsapi.Summary) error + // Description produces a relevant string describing the Memory Threshold Notifier + Description() string } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index 8c27e50cb1e5..737ad638297b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -778,7 +778,9 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, if err != nil { return nil, err } - klet.pluginWatcher = pluginwatcher.NewWatcher(klet.getPluginsDir()) + if klet.enablePluginsWatcher { + klet.pluginWatcher = pluginwatcher.NewWatcher(klet.getPluginsDir()) + } // If the experimentalMounterPathFlag is set, we do not want to // check node capabilities since the mount path is not the default @@ -1282,15 +1284,6 @@ func (kl *Kubelet) initializeModules() error { glog.Errorf("Failed to create directory %q: %v", ContainerLogsDir, err) } } - if kl.enablePluginsWatcher { - // Adding Registration Callback function for CSI Driver - kl.pluginWatcher.AddHandler("CSIPlugin", csi.RegistrationCallback) - - // Start the plugin watcher - if err := kl.pluginWatcher.Start(); err != nil { - return fmt.Errorf("failed to start Plugin Watcher. err: %v", err) - } - } // Start the image manager. kl.imageManager.Start() @@ -1339,6 +1332,16 @@ func (kl *Kubelet) initializeRuntimeDependentModules() { // container log manager must start after container runtime is up to retrieve information from container runtime // and inform container to reopen log file after log rotation. kl.containerLogManager.Start() + if kl.enablePluginsWatcher { + // Adding Registration Callback function for CSI Driver + kl.pluginWatcher.AddHandler("CSIPlugin", csi.RegistrationCallback) + // Start the plugin watcher + glog.V(4).Infof("starting watcher") + if err := kl.pluginWatcher.Start(); err != nil { + kl.recorder.Eventf(kl.nodeRef, v1.EventTypeWarning, events.KubeletSetupFailed, err.Error()) + glog.Fatalf("failed to start Plugin Watcher. err: %v", err) + } + } } // Run starts the kubelet reacting to config updates diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/token/token_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/token/token_manager.go index db052e51e413..d081bdd149d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/token/token_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/token/token_manager.go @@ -72,7 +72,7 @@ type Manager struct { // * If the token is refreshed successfully, save it in the cache and return the token. // * If refresh fails and the old token is still valid, log an error and return the old token. // * If refresh fails and the old token is no longer valid, return an error -func (m *Manager) GetServiceAccountToken(name, namespace string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) { +func (m *Manager) GetServiceAccountToken(namespace, name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) { key := keyFunc(name, namespace, tr) ctr, ok := m.get(key) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go index c9936e701f70..beab095d6052 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go @@ -65,7 +65,7 @@ type KubeProxyIPVSConfiguration struct { Scheduler string `json:"scheduler"` // excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch // when cleaning up ipvs services. - ExcludeCIDRs []string + ExcludeCIDRs []string `json:"excludeCIDRs"` } // KubeProxyConntrackConfiguration contains conntrack settings for diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go index 65be9536ee82..7f315262b920 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go @@ -595,7 +595,7 @@ func TestClusterIPReject(t *testing.T) { } makeServiceMap(fp, - makeTestService(svcPortName.Namespace, svcPortName.Namespace, func(svc *api.Service) { + makeTestService(svcPortName.Namespace, svcPortName.Name, func(svc *api.Service) { svc.Spec.ClusterIP = svcIP svc.Spec.Ports = []api.ServicePort{{ Name: svcPortName.Port, diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go index 67646e5dc5d3..caf802133fb0 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go @@ -134,7 +134,7 @@ var ipsetInfo = []struct { // ipsetWithIptablesChain is the ipsets list with iptables source chain and the chain jump to // `iptables -t nat -A -m set --match-set -j ` // example: iptables -t nat -A KUBE-SERVICES -m set --match-set KUBE-NODE-PORT-TCP dst -j KUBE-NODE-PORT -// ipsets with ohter match rules will be create Individually. +// ipsets with other match rules will be created Individually. var ipsetWithIptablesChain = []struct { name string from string @@ -366,6 +366,7 @@ func NewProxier(ipt utiliptables.Interface, endpointsChanges: proxy.NewEndpointChangeTracker(hostname, nil, &isIPv6, recorder), syncPeriod: syncPeriod, minSyncPeriod: minSyncPeriod, + excludeCIDRs: excludeCIDRs, iptables: ipt, masqueradeAll: masqueradeAll, masqueradeMark: masqueradeMark, diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go index 8b9fb556eb1f..5b2df80898c9 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go @@ -23,6 +23,7 @@ import ( "reflect" "strings" "testing" + "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -107,6 +108,24 @@ func (fake *fakeIPSetVersioner) GetVersion() (string, error) { return fake.version, fake.err } +// New returns a new FakeSysctl +func NewFakeSysctl() *FakeSysctl { + return &FakeSysctl{} +} + +type FakeSysctl struct { +} + +// GetSysctl returns the value for the specified sysctl setting +func (fakeSysctl *FakeSysctl) GetSysctl(sysctl string) (int, error) { + return 1, nil +} + +// SetSysctl modifies the specified sysctl flag to the new value +func (fakeSysctl *FakeSysctl) SetSysctl(sysctl string, newVal int) error { + return nil +} + func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset utilipset.Interface, nodeIPs []net.IP) *Proxier { fcmd := fakeexec.FakeCmd{ CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ @@ -2466,87 +2485,6 @@ func Test_syncService(t *testing.T) { } } -func Test_cleanLegacyService(t *testing.T) { - // All ipvs services that were processed in the latest sync loop. - activeServices := map[string]bool{"ipvs0": true, "ipvs1": true} - // All ipvs services in the system. - currentServices := map[string]*utilipvs.VirtualServer{ - // Created by kube-proxy. - "ipvs0": { - Address: net.ParseIP("1.1.1.1"), - Protocol: string(api.ProtocolUDP), - Port: 53, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - // Created by kube-proxy. - "ipvs1": { - Address: net.ParseIP("2.2.2.2"), - Protocol: string(api.ProtocolUDP), - Port: 54, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - // Created by an external party. - "ipvs2": { - Address: net.ParseIP("3.3.3.3"), - Protocol: string(api.ProtocolUDP), - Port: 55, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - // Created by an external party. - "ipvs3": { - Address: net.ParseIP("4.4.4.4"), - Protocol: string(api.ProtocolUDP), - Port: 56, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - // Created by an external party. - "ipvs4": { - Address: net.ParseIP("5.5.5.5"), - Protocol: string(api.ProtocolUDP), - Port: 57, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - // Created by kube-proxy, but now stale. - "ipvs5": { - Address: net.ParseIP("6.6.6.6"), - Protocol: string(api.ProtocolUDP), - Port: 58, - Scheduler: "rr", - Flags: utilipvs.FlagHashed, - }, - } - - ipt := iptablestest.NewFake() - ipvs := ipvstest.NewFake() - ipset := ipsettest.NewFake(testIPSetVersion) - proxier := NewFakeProxier(ipt, ipvs, ipset, nil) - // These CIDRs cover only ipvs2 and ipvs3. - proxier.excludeCIDRs = []string{"3.3.3.0/24", "4.4.4.0/24"} - for v := range currentServices { - proxier.ipvs.AddVirtualServer(currentServices[v]) - } - proxier.cleanLegacyService(activeServices, currentServices) - // ipvs4 and ipvs5 should have been cleaned. - remainingVirtualServers, _ := proxier.ipvs.GetVirtualServers() - if len(remainingVirtualServers) != 4 { - t.Errorf("Expected number of remaining IPVS services after cleanup to be %v. Got %v", 4, len(remainingVirtualServers)) - } - for _, vs := range remainingVirtualServers { - // Checking that ipvs4 and ipvs5 were removed. - if vs.Port == 57 { - t.Errorf("Expected ipvs4 to be removed after cleanup. It still remains") - } - if vs.Port == 58 { - t.Errorf("Expected ipvs5 to be removed after cleanup. It still remains") - } - } -} - func buildFakeProxier() (*iptablestest.FakeIPTables, *Proxier) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() @@ -2619,3 +2557,106 @@ func checkIPVS(t *testing.T, fp *Proxier, vs *netlinktest.ExpectedVirtualServer) } } } + +func TestCleanLegacyService(t *testing.T) { + execer := exec.New() + ipt := iptablestest.NewFake() + ipvs := ipvstest.NewFake() + ipset := ipsettest.NewFake(testIPSetVersion) + excludeCIDRs := []string{"3.3.3.0/24", "4.4.4.0/24"} + proxier, err := NewProxier( + ipt, + ipvs, + ipset, + NewFakeSysctl(), + execer, + 250*time.Millisecond, + 100*time.Millisecond, + excludeCIDRs, + false, + 0, + "10.0.0.0/24", + testHostname, + net.ParseIP("127.0.0.1"), + nil, + nil, + DefaultScheduler, + make([]string, 0), + ) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + // All ipvs services that were processed in the latest sync loop. + activeServices := map[string]bool{"ipvs0": true, "ipvs1": true} + // All ipvs services in the system. + currentServices := map[string]*utilipvs.VirtualServer{ + // Created by kube-proxy. + "ipvs0": { + Address: net.ParseIP("1.1.1.1"), + Protocol: string(api.ProtocolUDP), + Port: 53, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + // Created by kube-proxy. + "ipvs1": { + Address: net.ParseIP("2.2.2.2"), + Protocol: string(api.ProtocolUDP), + Port: 54, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + // Created by an external party. + "ipvs2": { + Address: net.ParseIP("3.3.3.3"), + Protocol: string(api.ProtocolUDP), + Port: 55, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + // Created by an external party. + "ipvs3": { + Address: net.ParseIP("4.4.4.4"), + Protocol: string(api.ProtocolUDP), + Port: 56, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + // Created by an external party. + "ipvs4": { + Address: net.ParseIP("5.5.5.5"), + Protocol: string(api.ProtocolUDP), + Port: 57, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + // Created by kube-proxy, but now stale. + "ipvs5": { + Address: net.ParseIP("6.6.6.6"), + Protocol: string(api.ProtocolUDP), + Port: 58, + Scheduler: "rr", + Flags: utilipvs.FlagHashed, + }, + } + for v := range currentServices { + proxier.ipvs.AddVirtualServer(currentServices[v]) + } + proxier.cleanLegacyService(activeServices, currentServices) + // ipvs4 and ipvs5 should have been cleaned. + remainingVirtualServers, _ := proxier.ipvs.GetVirtualServers() + if len(remainingVirtualServers) != 4 { + t.Errorf("Expected number of remaining IPVS services after cleanup to be %v. Got %v", 4, len(remainingVirtualServers)) + } + + for _, vs := range remainingVirtualServers { + // Checking that ipvs4 and ipvs5 were removed. + if vs.Port == 57 { + t.Errorf("Expected ipvs4 to be removed after cleanup. It still remains") + } + if vs.Port == 58 { + t.Errorf("Expected ipvs5 to be removed after cleanup. It still remains") + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go index 06e793a518b6..903b08b88345 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go @@ -349,7 +349,17 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {"name": "TaintTolerationPriority", "weight": 2}, {"name": "InterPodAffinityPriority", "weight": 2}, {"name": "MostRequestedPriority", "weight": 2} - ] + ],"extenders": [{ + "urlPrefix": "/prefix", + "filterVerb": "filter", + "prioritizeVerb": "prioritize", + "weight": 1, + "BindVerb": "bind", + "enableHttps": true, + "tlsConfig": {"Insecure":true}, + "httpTimeout": 1, + "nodeCacheCapable": true + }] }`, ExpectedPolicy: schedulerapi.Policy{ Predicates: []schedulerapi.PredicatePolicy{ @@ -382,6 +392,17 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "InterPodAffinityPriority", Weight: 2}, {Name: "MostRequestedPriority", Weight: 2}, }, + ExtenderConfigs: []schedulerapi.ExtenderConfig{{ + URLPrefix: "/prefix", + FilterVerb: "filter", + PrioritizeVerb: "prioritize", + Weight: 1, + BindVerb: "bind", // 1.7 was missing json tags on the BindVerb field and required "BindVerb" + EnableHTTPS: true, + TLSConfig: &restclient.TLSClientConfig{Insecure: true}, + HTTPTimeout: 1, + NodeCacheCapable: true, + }}, }, }, // Do not change this JSON after the corresponding release has been tagged. @@ -419,7 +440,17 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {"name": "TaintTolerationPriority", "weight": 2}, {"name": "InterPodAffinityPriority", "weight": 2}, {"name": "MostRequestedPriority", "weight": 2} - ] + ],"extenders": [{ + "urlPrefix": "/prefix", + "filterVerb": "filter", + "prioritizeVerb": "prioritize", + "weight": 1, + "bindVerb": "bind", + "enableHttps": true, + "tlsConfig": {"Insecure":true}, + "httpTimeout": 1, + "nodeCacheCapable": true + }] }`, ExpectedPolicy: schedulerapi.Policy{ Predicates: []schedulerapi.PredicatePolicy{ @@ -453,6 +484,17 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "InterPodAffinityPriority", Weight: 2}, {Name: "MostRequestedPriority", Weight: 2}, }, + ExtenderConfigs: []schedulerapi.ExtenderConfig{{ + URLPrefix: "/prefix", + FilterVerb: "filter", + PrioritizeVerb: "prioritize", + Weight: 1, + BindVerb: "bind", // 1.8 became case-insensitive and tolerated "bindVerb" + EnableHTTPS: true, + TLSConfig: &restclient.TLSClientConfig{Insecure: true}, + HTTPTimeout: 1, + NodeCacheCapable: true, + }}, }, }, // Do not change this JSON after the corresponding release has been tagged. @@ -491,7 +533,17 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {"name": "TaintTolerationPriority", "weight": 2}, {"name": "InterPodAffinityPriority", "weight": 2}, {"name": "MostRequestedPriority", "weight": 2} - ] + ],"extenders": [{ + "urlPrefix": "/prefix", + "filterVerb": "filter", + "prioritizeVerb": "prioritize", + "weight": 1, + "bindVerb": "bind", + "enableHttps": true, + "tlsConfig": {"Insecure":true}, + "httpTimeout": 1, + "nodeCacheCapable": true + }] }`, ExpectedPolicy: schedulerapi.Policy{ Predicates: []schedulerapi.PredicatePolicy{ @@ -526,8 +578,20 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "InterPodAffinityPriority", Weight: 2}, {Name: "MostRequestedPriority", Weight: 2}, }, + ExtenderConfigs: []schedulerapi.ExtenderConfig{{ + URLPrefix: "/prefix", + FilterVerb: "filter", + PrioritizeVerb: "prioritize", + Weight: 1, + BindVerb: "bind", // 1.9 was case-insensitive and tolerated "bindVerb" + EnableHTTPS: true, + TLSConfig: &restclient.TLSClientConfig{Insecure: true}, + HTTPTimeout: 1, + NodeCacheCapable: true, + }}, }, }, + // Do not change this JSON after the corresponding release has been tagged. // A failure indicates backwards compatibility with the specified release was broken. "1.10": { @@ -565,7 +629,19 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {"name": "TaintTolerationPriority", "weight": 2}, {"name": "InterPodAffinityPriority", "weight": 2}, {"name": "MostRequestedPriority", "weight": 2} - ] + ],"extenders": [{ + "urlPrefix": "/prefix", + "filterVerb": "filter", + "prioritizeVerb": "prioritize", + "weight": 1, + "bindVerb": "bind", + "enableHttps": true, + "tlsConfig": {"Insecure":true}, + "httpTimeout": 1, + "nodeCacheCapable": true, + "managedResources": [{"name":"example.com/foo","ignoredByScheduler":true}], + "ignorable":true + }] }`, ExpectedPolicy: schedulerapi.Policy{ Predicates: []schedulerapi.PredicatePolicy{ @@ -601,6 +677,19 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "InterPodAffinityPriority", Weight: 2}, {Name: "MostRequestedPriority", Weight: 2}, }, + ExtenderConfigs: []schedulerapi.ExtenderConfig{{ + URLPrefix: "/prefix", + FilterVerb: "filter", + PrioritizeVerb: "prioritize", + Weight: 1, + BindVerb: "bind", // 1.10 was case-insensitive and tolerated "bindVerb" + EnableHTTPS: true, + TLSConfig: &restclient.TLSClientConfig{Insecure: true}, + HTTPTimeout: 1, + NodeCacheCapable: true, + ManagedResources: []schedulerapi.ExtenderManagedResource{{Name: v1.ResourceName("example.com/foo"), IgnoredByScheduler: true}}, + Ignorable: true, + }}, }, }, // Do not change this JSON after the corresponding release has been tagged. @@ -651,7 +740,19 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { ] } }} - ] + ],"extenders": [{ + "urlPrefix": "/prefix", + "filterVerb": "filter", + "prioritizeVerb": "prioritize", + "weight": 1, + "bindVerb": "bind", + "enableHttps": true, + "tlsConfig": {"Insecure":true}, + "httpTimeout": 1, + "nodeCacheCapable": true, + "managedResources": [{"name":"example.com/foo","ignoredByScheduler":true}], + "ignorable":true + }] }`, ExpectedPolicy: schedulerapi.Policy{ Predicates: []schedulerapi.PredicatePolicy{ @@ -698,6 +799,19 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { }, }, }, + ExtenderConfigs: []schedulerapi.ExtenderConfig{{ + URLPrefix: "/prefix", + FilterVerb: "filter", + PrioritizeVerb: "prioritize", + Weight: 1, + BindVerb: "bind", // 1.11 restored case-sensitivity, but allowed either "BindVerb" or "bindVerb" + EnableHTTPS: true, + TLSConfig: &restclient.TLSClientConfig{Insecure: true}, + HTTPTimeout: 1, + NodeCacheCapable: true, + ManagedResources: []schedulerapi.ExtenderManagedResource{{Name: v1.ResourceName("example.com/foo"), IgnoredByScheduler: true}}, + Ignorable: true, + }}, }, }, } diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/api/v1/types.go b/vendor/k8s.io/kubernetes/pkg/scheduler/api/v1/types.go index 4058d0688937..10ea29bb322c 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/api/v1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/api/v1/types.go @@ -17,6 +17,7 @@ limitations under the License. package v1 import ( + gojson "encoding/json" "time" apiv1 "k8s.io/api/core/v1" @@ -195,6 +196,18 @@ type ExtenderConfig struct { Ignorable bool `json:"ignorable,omitempty"` } +// caseInsensitiveExtenderConfig is a type alias which lets us use the stdlib case-insensitive decoding +// to preserve compatibility with incorrectly specified scheduler config fields: +// * BindVerb, which originally did not specify a json tag, and required upper-case serialization in 1.7 +// * TLSConfig, which uses a struct not intended for serialization, and does not include any json tags +type caseInsensitiveExtenderConfig *ExtenderConfig + +// UnmarshalJSON implements the json.Unmarshaller interface. +// This preserves compatibility with incorrect case-insensitive configuration fields. +func (t *ExtenderConfig) UnmarshalJSON(b []byte) error { + return gojson.Unmarshal(b, caseInsensitiveExtenderConfig(t)) +} + // ExtenderArgs represents the arguments needed by the extender to filter/prioritize // nodes for a pod. type ExtenderArgs struct { diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go b/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go index 2ea1a973a34d..21aadbf691c0 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go @@ -141,6 +141,7 @@ func (g *genericScheduler) Schedule(pod *v1.Pod, nodeLister algorithm.NodeLister } } metrics.SchedulingAlgorithmPredicateEvaluationDuration.Observe(metrics.SinceInMicroseconds(startPredicateEvalTime)) + metrics.SchedulingLatency.WithLabelValues(metrics.PredicateEvaluation).Observe(metrics.SinceInSeconds(startPredicateEvalTime)) trace.Step("Prioritizing") startPriorityEvalTime := time.Now() @@ -156,6 +157,7 @@ func (g *genericScheduler) Schedule(pod *v1.Pod, nodeLister algorithm.NodeLister return "", err } metrics.SchedulingAlgorithmPriorityEvaluationDuration.Observe(metrics.SinceInMicroseconds(startPriorityEvalTime)) + metrics.SchedulingLatency.WithLabelValues(metrics.PriorityEvaluation).Observe(metrics.SinceInSeconds(startPriorityEvalTime)) trace.Step("Selecting host") return g.selectHost(priorityList) diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/metrics/metrics.go b/vendor/k8s.io/kubernetes/pkg/scheduler/metrics/metrics.go index 0250ddb76d10..1b5d77b47676 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/metrics/metrics.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/metrics/metrics.go @@ -27,16 +27,21 @@ const ( // SchedulerSubsystem - subsystem name used by scheduler SchedulerSubsystem = "scheduler" // SchedulingLatencyName - scheduler latency metric name - SchedulingLatencyName = "scheduling_latencies_summary" + SchedulingLatencyName = "scheduling_latency_seconds" // OperationLabel - operation label name OperationLabel = "operation" + // Below are possible values for the operation label. Each represents a substep of e2e scheduling: + + // PredicateEvaluation - predicate evaluation operation label value + PredicateEvaluation = "predicate_evaluation" + // PriorityEvaluation - priority evaluation operation label value + PriorityEvaluation = "priority_evaluation" + // PreemptionEvaluation - preemption evaluation operation label value (occurs in case of scheduling fitError). + PreemptionEvaluation = "preemption_evaluation" // Binding - binding operation label value Binding = "binding" - // SchedulingAlgorithm - scheduling algorithm operation label value - SchedulingAlgorithm = "scheduling_algorithm" // E2eScheduling - e2e scheduling operation label value - E2eScheduling = "e2e_scheduling" ) // All the histogram based metrics have 1ms as size for the smallest bucket. @@ -45,13 +50,29 @@ var ( prometheus.SummaryOpts{ Subsystem: SchedulerSubsystem, Name: SchedulingLatencyName, - Help: "Scheduling latency in microseconds split by sub-parts of the scheduling operation", + Help: "Scheduling latency in seconds split by sub-parts of the scheduling operation", // Make the sliding window of 5h. // TODO: The value for this should be based on some SLI definition (long term). MaxAge: 5 * time.Hour, }, []string{OperationLabel}, ) + E2eSchedulingLatency = prometheus.NewHistogram( + prometheus.HistogramOpts{ + Subsystem: SchedulerSubsystem, + Name: "e2e_scheduling_latency_microseconds", + Help: "E2e scheduling latency (scheduling algorithm + binding)", + Buckets: prometheus.ExponentialBuckets(1000, 2, 15), + }, + ) + SchedulingAlgorithmLatency = prometheus.NewHistogram( + prometheus.HistogramOpts{ + Subsystem: SchedulerSubsystem, + Name: "scheduling_algorithm_latency_microseconds", + Help: "Scheduling algorithm latency", + Buckets: prometheus.ExponentialBuckets(1000, 2, 15), + }, + ) SchedulingAlgorithmPredicateEvaluationDuration = prometheus.NewHistogram( prometheus.HistogramOpts{ Subsystem: SchedulerSubsystem, @@ -76,6 +97,14 @@ var ( Buckets: prometheus.ExponentialBuckets(1000, 2, 15), }, ) + BindingLatency = prometheus.NewHistogram( + prometheus.HistogramOpts{ + Subsystem: SchedulerSubsystem, + Name: "binding_latency_microseconds", + Help: "Binding latency", + Buckets: prometheus.ExponentialBuckets(1000, 2, 15), + }, + ) PreemptionVictims = prometheus.NewGauge( prometheus.GaugeOpts{ Subsystem: SchedulerSubsystem, @@ -90,6 +119,9 @@ var ( }) metricsList = []prometheus.Collector{ SchedulingLatency, + E2eSchedulingLatency, + SchedulingAlgorithmLatency, + BindingLatency, SchedulingAlgorithmPredicateEvaluationDuration, SchedulingAlgorithmPriorityEvaluationDuration, SchedulingAlgorithmPremptionEvaluationDuration, @@ -102,6 +134,7 @@ var registerMetrics sync.Once // Register all metrics. func Register() { + // Register the metrics. registerMetrics.Do(func() { for _, metric := range metricsList { prometheus.MustRegister(metric) @@ -118,3 +151,8 @@ func Reset() { func SinceInMicroseconds(start time.Time) float64 { return float64(time.Since(start).Nanoseconds() / time.Microsecond.Nanoseconds()) } + +// SinceInSeconds gets the time since the specified start in seconds. +func SinceInSeconds(start time.Time) float64 { + return time.Since(start).Seconds() +} diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go b/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go index b4667d4ecb4e..10cc9f0828a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go @@ -429,7 +429,8 @@ func (sched *Scheduler) bind(assumed *v1.Pod, b *v1.Binding) error { return err } - metrics.SchedulingLatency.WithLabelValues(metrics.Binding).Observe(metrics.SinceInMicroseconds(bindingStart)) + metrics.BindingLatency.Observe(metrics.SinceInMicroseconds(bindingStart)) + metrics.SchedulingLatency.WithLabelValues(metrics.Binding).Observe(metrics.SinceInSeconds(bindingStart)) sched.config.Recorder.Eventf(assumed, v1.EventTypeNormal, "Scheduled", "Successfully assigned %v/%v to %v", assumed.Namespace, assumed.Name, b.Target.Name) return nil } @@ -458,10 +459,11 @@ func (sched *Scheduler) scheduleOne() { sched.preempt(pod, fitError) metrics.PreemptionAttempts.Inc() metrics.SchedulingAlgorithmPremptionEvaluationDuration.Observe(metrics.SinceInMicroseconds(preemptionStartTime)) + metrics.SchedulingLatency.WithLabelValues(metrics.PreemptionEvaluation).Observe(metrics.SinceInSeconds(preemptionStartTime)) } return } - metrics.SchedulingLatency.WithLabelValues(metrics.SchedulingAlgorithm).Observe(metrics.SinceInMicroseconds(start)) + metrics.SchedulingAlgorithmLatency.Observe(metrics.SinceInMicroseconds(start)) // Tell the cache to assume that a pod now is running on a given node, even though it hasn't been bound yet. // This allows us to keep scheduling without waiting on binding to occur. assumedPod := pod.DeepCopy() @@ -496,7 +498,7 @@ func (sched *Scheduler) scheduleOne() { Name: suggestedHost, }, }) - metrics.SchedulingLatency.WithLabelValues(metrics.E2eScheduling).Observe(metrics.SinceInMicroseconds(start)) + metrics.E2eSchedulingLatency.Observe(metrics.SinceInMicroseconds(start)) if err != nil { glog.Errorf("Internal error binding pod: (%v)", err) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go index 284f91a105e3..815f3787c7e9 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go @@ -466,7 +466,7 @@ func ClusterRoles() []rbacv1.ClusterRole { // a role for the csi external provisioner ObjectMeta: metav1.ObjectMeta{Name: "system:csi-external-provisioner"}, Rules: []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("create", "delete", "list", "watch").Groups(legacyGroup).Resources("persistentvolumes").RuleOrDie(), + rbacv1helpers.NewRule("create", "delete", "get", "list", "watch").Groups(legacyGroup).Resources("persistentvolumes").RuleOrDie(), rbacv1helpers.NewRule("get", "list", "watch", "update", "patch").Groups(legacyGroup).Resources("persistentvolumeclaims").RuleOrDie(), rbacv1helpers.NewRule("list", "watch").Groups(storageGroup).Resources("storageclasses").RuleOrDie(), rbacv1helpers.NewRule("get", "list", "watch", "create", "update", "patch").Groups(legacyGroup).Resources("events").RuleOrDie(), diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml index 287440dbaa5e..0aee48909f5b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml @@ -688,6 +688,7 @@ items: verbs: - create - delete + - get - list - watch - apiGroups: diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json index 10b3355739bd..284ccea51deb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json @@ -36,7 +36,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/modern-go/concurrent", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD index b6e762c8be0c..32fc333eb5d5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD @@ -18,7 +18,6 @@ go_library( importpath = "k8s.io/api/autoscaling/v2beta1", deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go index 467345d32e04..e92b9a3ede09 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go @@ -25,7 +25,6 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto It has these top-level messages: - ContainerResourcePolicy CrossVersionObjectReference ExternalMetricSource ExternalMetricStatus @@ -38,19 +37,10 @@ limitations under the License. MetricStatus ObjectMetricSource ObjectMetricStatus - PodResourcePolicy - PodUpdatePolicy PodsMetricSource PodsMetricStatus - RecommendedContainerResources - RecommendedPodResources ResourceMetricSource ResourceMetricStatus - VerticalPodAutoscaler - VerticalPodAutoscalerCondition - VerticalPodAutoscalerList - VerticalPodAutoscalerSpec - VerticalPodAutoscalerStatus */ package v2beta1 @@ -63,8 +53,6 @@ import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v import k8s_io_api_core_v1 "k8s.io/api/core/v1" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - import strings "strings" import reflect "reflect" @@ -81,134 +69,81 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package -func (m *ContainerResourcePolicy) Reset() { *m = ContainerResourcePolicy{} } -func (*ContainerResourcePolicy) ProtoMessage() {} -func (*ContainerResourcePolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } - func (m *CrossVersionObjectReference) Reset() { *m = CrossVersionObjectReference{} } func (*CrossVersionObjectReference) ProtoMessage() {} func (*CrossVersionObjectReference) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{1} + return fileDescriptorGenerated, []int{0} } func (m *ExternalMetricSource) Reset() { *m = ExternalMetricSource{} } func (*ExternalMetricSource) ProtoMessage() {} -func (*ExternalMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*ExternalMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } func (m *ExternalMetricStatus) Reset() { *m = ExternalMetricStatus{} } func (*ExternalMetricStatus) ProtoMessage() {} -func (*ExternalMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*ExternalMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPodAutoscaler{} } func (*HorizontalPodAutoscaler) ProtoMessage() {} -func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{5} + return fileDescriptorGenerated, []int{4} } func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } func (*HorizontalPodAutoscalerList) ProtoMessage() {} func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{6} + return fileDescriptorGenerated, []int{5} } func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{7} + return fileDescriptorGenerated, []int{6} } func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{8} + return fileDescriptorGenerated, []int{7} } func (m *MetricSpec) Reset() { *m = MetricSpec{} } func (*MetricSpec) ProtoMessage() {} -func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *MetricStatus) Reset() { *m = MetricStatus{} } func (*MetricStatus) ProtoMessage() {} -func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } func (*ObjectMetricSource) ProtoMessage() {} -func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } func (*ObjectMetricStatus) ProtoMessage() {} -func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } - -func (m *PodResourcePolicy) Reset() { *m = PodResourcePolicy{} } -func (*PodResourcePolicy) ProtoMessage() {} -func (*PodResourcePolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } - -func (m *PodUpdatePolicy) Reset() { *m = PodUpdatePolicy{} } -func (*PodUpdatePolicy) ProtoMessage() {} -func (*PodUpdatePolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } func (*PodsMetricSource) ProtoMessage() {} -func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } func (*PodsMetricStatus) ProtoMessage() {} -func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } - -func (m *RecommendedContainerResources) Reset() { *m = RecommendedContainerResources{} } -func (*RecommendedContainerResources) ProtoMessage() {} -func (*RecommendedContainerResources) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{17} -} - -func (m *RecommendedPodResources) Reset() { *m = RecommendedPodResources{} } -func (*RecommendedPodResources) ProtoMessage() {} -func (*RecommendedPodResources) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{18} -} +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } func (*ResourceMetricSource) ProtoMessage() {} -func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } func (*ResourceMetricStatus) ProtoMessage() {} -func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } - -func (m *VerticalPodAutoscaler) Reset() { *m = VerticalPodAutoscaler{} } -func (*VerticalPodAutoscaler) ProtoMessage() {} -func (*VerticalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } - -func (m *VerticalPodAutoscalerCondition) Reset() { *m = VerticalPodAutoscalerCondition{} } -func (*VerticalPodAutoscalerCondition) ProtoMessage() {} -func (*VerticalPodAutoscalerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{22} -} - -func (m *VerticalPodAutoscalerList) Reset() { *m = VerticalPodAutoscalerList{} } -func (*VerticalPodAutoscalerList) ProtoMessage() {} -func (*VerticalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{23} -} - -func (m *VerticalPodAutoscalerSpec) Reset() { *m = VerticalPodAutoscalerSpec{} } -func (*VerticalPodAutoscalerSpec) ProtoMessage() {} -func (*VerticalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{24} -} - -func (m *VerticalPodAutoscalerStatus) Reset() { *m = VerticalPodAutoscalerStatus{} } -func (*VerticalPodAutoscalerStatus) ProtoMessage() {} -func (*VerticalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{25} -} +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func init() { - proto.RegisterType((*ContainerResourcePolicy)(nil), "k8s.io.api.autoscaling.v2beta1.ContainerResourcePolicy") proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.api.autoscaling.v2beta1.CrossVersionObjectReference") proto.RegisterType((*ExternalMetricSource)(nil), "k8s.io.api.autoscaling.v2beta1.ExternalMetricSource") proto.RegisterType((*ExternalMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.ExternalMetricStatus") @@ -221,110 +156,11 @@ func init() { proto.RegisterType((*MetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.MetricStatus") proto.RegisterType((*ObjectMetricSource)(nil), "k8s.io.api.autoscaling.v2beta1.ObjectMetricSource") proto.RegisterType((*ObjectMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.ObjectMetricStatus") - proto.RegisterType((*PodResourcePolicy)(nil), "k8s.io.api.autoscaling.v2beta1.PodResourcePolicy") - proto.RegisterType((*PodUpdatePolicy)(nil), "k8s.io.api.autoscaling.v2beta1.PodUpdatePolicy") proto.RegisterType((*PodsMetricSource)(nil), "k8s.io.api.autoscaling.v2beta1.PodsMetricSource") proto.RegisterType((*PodsMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.PodsMetricStatus") - proto.RegisterType((*RecommendedContainerResources)(nil), "k8s.io.api.autoscaling.v2beta1.RecommendedContainerResources") - proto.RegisterType((*RecommendedPodResources)(nil), "k8s.io.api.autoscaling.v2beta1.RecommendedPodResources") proto.RegisterType((*ResourceMetricSource)(nil), "k8s.io.api.autoscaling.v2beta1.ResourceMetricSource") proto.RegisterType((*ResourceMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.ResourceMetricStatus") - proto.RegisterType((*VerticalPodAutoscaler)(nil), "k8s.io.api.autoscaling.v2beta1.VerticalPodAutoscaler") - proto.RegisterType((*VerticalPodAutoscalerCondition)(nil), "k8s.io.api.autoscaling.v2beta1.VerticalPodAutoscalerCondition") - proto.RegisterType((*VerticalPodAutoscalerList)(nil), "k8s.io.api.autoscaling.v2beta1.VerticalPodAutoscalerList") - proto.RegisterType((*VerticalPodAutoscalerSpec)(nil), "k8s.io.api.autoscaling.v2beta1.VerticalPodAutoscalerSpec") - proto.RegisterType((*VerticalPodAutoscalerStatus)(nil), "k8s.io.api.autoscaling.v2beta1.VerticalPodAutoscalerStatus") -} -func (m *ContainerResourcePolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ContainerResourcePolicy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName))) - i += copy(dAtA[i:], m.ContainerName) - if m.Mode != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Mode))) - i += copy(dAtA[i:], *m.Mode) - } - if len(m.MinAllowed) > 0 { - keysForMinAllowed := make([]string, 0, len(m.MinAllowed)) - for k := range m.MinAllowed { - keysForMinAllowed = append(keysForMinAllowed, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMinAllowed) - for _, k := range keysForMinAllowed { - dAtA[i] = 0x1a - i++ - v := m.MinAllowed[k8s_io_api_core_v1.ResourceName(k)] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovGenerated(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + msgSize - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n1, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - if len(m.MaxAllowed) > 0 { - keysForMaxAllowed := make([]string, 0, len(m.MaxAllowed)) - for k := range m.MaxAllowed { - keysForMaxAllowed = append(keysForMaxAllowed, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMaxAllowed) - for _, k := range keysForMaxAllowed { - dAtA[i] = 0x22 - i++ - v := m.MaxAllowed[k8s_io_api_core_v1.ResourceName(k)] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovGenerated(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + msgSize - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - return i, nil } - func (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -378,31 +214,31 @@ func (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) - n3, err := m.MetricSelector.MarshalTo(dAtA[i:]) + n1, err := m.MetricSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n1 } if m.TargetValue != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n4, err := m.TargetValue.MarshalTo(dAtA[i:]) + n2, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n2 } if m.TargetAverageValue != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n5, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n3, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n3 } return i, nil } @@ -430,29 +266,29 @@ func (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) - n6, err := m.MetricSelector.MarshalTo(dAtA[i:]) + n4, err := m.MetricSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n4 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n7, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n5, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n5 if m.CurrentAverageValue != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n8, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n6, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n6 } return i, nil } @@ -475,27 +311,27 @@ func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n9, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n7 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n10, err := m.Spec.MarshalTo(dAtA[i:]) + n8, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n8 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n11, err := m.Status.MarshalTo(dAtA[i:]) + n9, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n9 return i, nil } @@ -525,11 +361,11 @@ func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n12, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n10, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n10 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -559,11 +395,11 @@ func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n13, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -597,11 +433,11 @@ func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) - n14, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + n12, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n12 if m.MinReplicas != nil { dAtA[i] = 0x10 i++ @@ -649,11 +485,11 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) - n15, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + n13, err := m.LastScaleTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n13 } dAtA[i] = 0x18 i++ @@ -711,41 +547,41 @@ func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n16, err := m.Object.MarshalTo(dAtA[i:]) + n14, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n14 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n17, err := m.Pods.MarshalTo(dAtA[i:]) + n15, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n15 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n18, err := m.Resource.MarshalTo(dAtA[i:]) + n16, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n16 } if m.External != nil { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) - n19, err := m.External.MarshalTo(dAtA[i:]) + n17, err := m.External.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n17 } return i, nil } @@ -773,41 +609,41 @@ func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n20, err := m.Object.MarshalTo(dAtA[i:]) + n18, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n18 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n21, err := m.Pods.MarshalTo(dAtA[i:]) + n19, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n19 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n22, err := m.Resource.MarshalTo(dAtA[i:]) + n20, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n20 } if m.External != nil { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) - n23, err := m.External.MarshalTo(dAtA[i:]) + n21, err := m.External.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n21 } return i, nil } @@ -830,11 +666,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n24, err := m.Target.MarshalTo(dAtA[i:]) + n22, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n22 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -842,11 +678,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n25, err := m.TargetValue.MarshalTo(dAtA[i:]) + n23, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n23 return i, nil } @@ -868,11 +704,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n26, err := m.Target.MarshalTo(dAtA[i:]) + n24, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n24 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -880,65 +716,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n27, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n25, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 - return i, nil -} - -func (m *PodResourcePolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodResourcePolicy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.ContainerPolicies) > 0 { - for _, msg := range m.ContainerPolicies { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *PodUpdatePolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodUpdatePolicy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.UpdateMode != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UpdateMode))) - i += copy(dAtA[i:], *m.UpdateMode) - } + i += n25 return i, nil } @@ -964,11 +746,11 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n26, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n26 return i, nil } @@ -994,156 +776,11 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n27, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 - return i, nil -} - -func (m *RecommendedContainerResources) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RecommendedContainerResources) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName))) - i += copy(dAtA[i:], m.ContainerName) - if len(m.Target) > 0 { - keysForTarget := make([]string, 0, len(m.Target)) - for k := range m.Target { - keysForTarget = append(keysForTarget, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForTarget) - for _, k := range keysForTarget { - dAtA[i] = 0x12 - i++ - v := m.Target[k8s_io_api_core_v1.ResourceName(k)] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovGenerated(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + msgSize - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n30, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n30 - } - } - if len(m.LowerBound) > 0 { - keysForLowerBound := make([]string, 0, len(m.LowerBound)) - for k := range m.LowerBound { - keysForLowerBound = append(keysForLowerBound, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLowerBound) - for _, k := range keysForLowerBound { - dAtA[i] = 0x1a - i++ - v := m.LowerBound[k8s_io_api_core_v1.ResourceName(k)] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovGenerated(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + msgSize - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n31, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n31 - } - } - if len(m.UpperBound) > 0 { - keysForUpperBound := make([]string, 0, len(m.UpperBound)) - for k := range m.UpperBound { - keysForUpperBound = append(keysForUpperBound, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpperBound) - for _, k := range keysForUpperBound { - dAtA[i] = 0x22 - i++ - v := m.UpperBound[k8s_io_api_core_v1.ResourceName(k)] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovGenerated(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + msgSize - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n32, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n32 - } - } - return i, nil -} - -func (m *RecommendedPodResources) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RecommendedPodResources) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.ContainerRecommendations) > 0 { - for _, msg := range m.ContainerRecommendations { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } + i += n27 return i, nil } @@ -1175,11 +812,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n33, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n28 } return i, nil } @@ -1211,234 +848,24 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n34, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n29 return i, nil } -func (m *VerticalPodAutoscaler) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *VerticalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n35, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n35 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n36, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n36 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n37, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n37 - return i, nil -} - -func (m *VerticalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *VerticalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i += copy(dAtA[i:], m.Status) - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n38, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n38 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i += copy(dAtA[i:], m.Reason) - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i += copy(dAtA[i:], m.Message) - return i, nil -} - -func (m *VerticalPodAutoscalerList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *VerticalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n39, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n39 - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *VerticalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *VerticalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Selector != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n40, err := m.Selector.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n40 - } - if m.UpdatePolicy != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatePolicy.Size())) - n41, err := m.UpdatePolicy.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n41 - } - if m.ResourcePolicy != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ResourcePolicy.Size())) - n42, err := m.ResourcePolicy.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n42 - } - return i, nil -} - -func (m *VerticalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *VerticalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Recommendation != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Recommendation.Size())) - n43, err := m.Recommendation.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n43 - } - if len(m.Conditions) > 0 { - for _, msg := range m.Conditions { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 +func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 } func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { dAtA[offset] = uint8(v) @@ -1456,36 +883,6 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } -func (m *ContainerResourcePolicy) Size() (n int) { - var l int - _ = l - l = len(m.ContainerName) - n += 1 + l + sovGenerated(uint64(l)) - if m.Mode != nil { - l = len(*m.Mode) - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.MinAllowed) > 0 { - for k, v := range m.MinAllowed { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.MaxAllowed) > 0 { - for k, v := range m.MaxAllowed { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - func (m *CrossVersionObjectReference) Size() (n int) { var l int _ = l @@ -1695,28 +1092,6 @@ func (m *ObjectMetricStatus) Size() (n int) { return n } -func (m *PodResourcePolicy) Size() (n int) { - var l int - _ = l - if len(m.ContainerPolicies) > 0 { - for _, e := range m.ContainerPolicies { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *PodUpdatePolicy) Size() (n int) { - var l int - _ = l - if m.UpdateMode != nil { - l = len(*m.UpdateMode) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - func (m *PodsMetricSource) Size() (n int) { var l int _ = l @@ -1737,53 +1112,6 @@ func (m *PodsMetricStatus) Size() (n int) { return n } -func (m *RecommendedContainerResources) Size() (n int) { - var l int - _ = l - l = len(m.ContainerName) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Target) > 0 { - for k, v := range m.Target { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.LowerBound) > 0 { - for k, v := range m.LowerBound { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.UpperBound) > 0 { - for k, v := range m.UpperBound { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *RecommendedPodResources) Size() (n int) { - var l int - _ = l - if len(m.ContainerRecommendations) > 0 { - for _, e := range m.ContainerRecommendations { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - func (m *ResourceMetricSource) Size() (n int) { var l int _ = l @@ -1812,88 +1140,12 @@ func (m *ResourceMetricStatus) Size() (n int) { return n } -func (m *VerticalPodAutoscaler) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *VerticalPodAutoscalerCondition) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *VerticalPodAutoscalerList) Size() (n int) { - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *VerticalPodAutoscalerSpec) Size() (n int) { - var l int - _ = l - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.UpdatePolicy != nil { - l = m.UpdatePolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ResourcePolicy != nil { - l = m.ResourcePolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *VerticalPodAutoscalerStatus) Size() (n int) { - var l int - _ = l - if m.Recommendation != nil { - l = m.Recommendation.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break } } return n @@ -1901,39 +1153,6 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (this *ContainerResourcePolicy) String() string { - if this == nil { - return "nil" - } - keysForMinAllowed := make([]string, 0, len(this.MinAllowed)) - for k := range this.MinAllowed { - keysForMinAllowed = append(keysForMinAllowed, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMinAllowed) - mapStringForMinAllowed := "k8s_io_api_core_v1.ResourceList{" - for _, k := range keysForMinAllowed { - mapStringForMinAllowed += fmt.Sprintf("%v: %v,", k, this.MinAllowed[k8s_io_api_core_v1.ResourceName(k)]) - } - mapStringForMinAllowed += "}" - keysForMaxAllowed := make([]string, 0, len(this.MaxAllowed)) - for k := range this.MaxAllowed { - keysForMaxAllowed = append(keysForMaxAllowed, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMaxAllowed) - mapStringForMaxAllowed := "k8s_io_api_core_v1.ResourceList{" - for _, k := range keysForMaxAllowed { - mapStringForMaxAllowed += fmt.Sprintf("%v: %v,", k, this.MaxAllowed[k8s_io_api_core_v1.ResourceName(k)]) - } - mapStringForMaxAllowed += "}" - s := strings.Join([]string{`&ContainerResourcePolicy{`, - `ContainerName:` + fmt.Sprintf("%v", this.ContainerName) + `,`, - `Mode:` + valueToStringGenerated(this.Mode) + `,`, - `MinAllowed:` + mapStringForMinAllowed + `,`, - `MaxAllowed:` + mapStringForMaxAllowed + `,`, - `}`, - }, "") - return s -} func (this *CrossVersionObjectReference) String() string { if this == nil { return "nil" @@ -2089,26 +1308,6 @@ func (this *ObjectMetricStatus) String() string { }, "") return s } -func (this *PodResourcePolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodResourcePolicy{`, - `ContainerPolicies:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ContainerPolicies), "ContainerResourcePolicy", "ContainerResourcePolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PodUpdatePolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodUpdatePolicy{`, - `UpdateMode:` + valueToStringGenerated(this.UpdateMode) + `,`, - `}`, - }, "") - return s -} func (this *PodsMetricSource) String() string { if this == nil { return "nil" @@ -2131,59 +1330,6 @@ func (this *PodsMetricStatus) String() string { }, "") return s } -func (this *RecommendedContainerResources) String() string { - if this == nil { - return "nil" - } - keysForTarget := make([]string, 0, len(this.Target)) - for k := range this.Target { - keysForTarget = append(keysForTarget, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForTarget) - mapStringForTarget := "k8s_io_api_core_v1.ResourceList{" - for _, k := range keysForTarget { - mapStringForTarget += fmt.Sprintf("%v: %v,", k, this.Target[k8s_io_api_core_v1.ResourceName(k)]) - } - mapStringForTarget += "}" - keysForLowerBound := make([]string, 0, len(this.LowerBound)) - for k := range this.LowerBound { - keysForLowerBound = append(keysForLowerBound, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLowerBound) - mapStringForLowerBound := "k8s_io_api_core_v1.ResourceList{" - for _, k := range keysForLowerBound { - mapStringForLowerBound += fmt.Sprintf("%v: %v,", k, this.LowerBound[k8s_io_api_core_v1.ResourceName(k)]) - } - mapStringForLowerBound += "}" - keysForUpperBound := make([]string, 0, len(this.UpperBound)) - for k := range this.UpperBound { - keysForUpperBound = append(keysForUpperBound, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpperBound) - mapStringForUpperBound := "k8s_io_api_core_v1.ResourceList{" - for _, k := range keysForUpperBound { - mapStringForUpperBound += fmt.Sprintf("%v: %v,", k, this.UpperBound[k8s_io_api_core_v1.ResourceName(k)]) - } - mapStringForUpperBound += "}" - s := strings.Join([]string{`&RecommendedContainerResources{`, - `ContainerName:` + fmt.Sprintf("%v", this.ContainerName) + `,`, - `Target:` + mapStringForTarget + `,`, - `LowerBound:` + mapStringForLowerBound + `,`, - `UpperBound:` + mapStringForUpperBound + `,`, - `}`, - }, "") - return s -} -func (this *RecommendedPodResources) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RecommendedPodResources{`, - `ContainerRecommendations:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ContainerRecommendations), "RecommendedContainerResources", "RecommendedContainerResources", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} func (this *ResourceMetricSource) String() string { if this == nil { return "nil" @@ -2208,66 +1354,6 @@ func (this *ResourceMetricStatus) String() string { }, "") return s } -func (this *VerticalPodAutoscaler) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&VerticalPodAutoscaler{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "VerticalPodAutoscalerSpec", "VerticalPodAutoscalerSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "VerticalPodAutoscalerStatus", "VerticalPodAutoscalerStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *VerticalPodAutoscalerCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&VerticalPodAutoscalerCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *VerticalPodAutoscalerList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&VerticalPodAutoscalerList{`, - `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "VerticalPodAutoscaler", "VerticalPodAutoscaler", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *VerticalPodAutoscalerSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&VerticalPodAutoscalerSpec{`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `UpdatePolicy:` + strings.Replace(fmt.Sprintf("%v", this.UpdatePolicy), "PodUpdatePolicy", "PodUpdatePolicy", 1) + `,`, - `ResourcePolicy:` + strings.Replace(fmt.Sprintf("%v", this.ResourcePolicy), "PodResourcePolicy", "PodResourcePolicy", 1) + `,`, - `}`, - }, "") - return s -} -func (this *VerticalPodAutoscalerStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&VerticalPodAutoscalerStatus{`, - `Recommendation:` + strings.Replace(fmt.Sprintf("%v", this.Recommendation), "RecommendedPodResources", "RecommendedPodResources", 1) + `,`, - `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "VerticalPodAutoscalerCondition", "VerticalPodAutoscalerCondition", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} func valueToStringGenerated(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -2276,7 +1362,7 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { +func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2299,15 +1385,15 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ContainerResourcePolicy: wiretype end group for non-group") + return fmt.Errorf("proto: CrossVersionObjectReference: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ContainerResourcePolicy: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CrossVersionObjectReference: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2332,11 +1418,11 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ContainerName = string(dAtA[iNdEx:postIndex]) + m.Kind = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2361,14 +1447,13 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := ContainerScalingMode(dAtA[iNdEx:postIndex]) - m.Mode = &s + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinAllowed", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2378,19 +1463,76 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 + m.APIVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2400,12 +1542,26 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapkey uint64 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2415,79 +1571,28 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MinAllowed == nil { - m.MinAllowed = make(k8s_io_api_core_v1.ResourceList) + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MinAllowed[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.MinAllowed[k8s_io_api_core_v1.ResourceName(mapkey)] = mapvalue + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxAllowed", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2511,7 +1616,18 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 + if m.TargetValue == nil { + m.TargetValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2521,89 +1637,23 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MaxAllowed == nil { - m.MaxAllowed = make(k8s_io_api_core_v1.ResourceList) + if m.TargetAverageValue == nil { + m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MaxAllowed[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.MaxAllowed[k8s_io_api_core_v1.ResourceName(mapkey)] = mapvalue + if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -2627,7 +1677,7 @@ func (m *ContainerResourcePolicy) Unmarshal(dAtA []byte) error { } return nil } -func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { +func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2650,15 +1700,15 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CrossVersionObjectReference: wiretype end group for non-group") + return fmt.Errorf("proto: ExternalMetricStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CrossVersionObjectReference: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExternalMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2683,13 +1733,13 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Kind = string(dAtA[iNdEx:postIndex]) + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2699,26 +1749,30 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2728,20 +1782,54 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.APIVersion = string(dAtA[iNdEx:postIndex]) + if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentAverageValue == nil { + m.CurrentAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2764,7 +1852,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { +func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2787,44 +1875,15 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExternalMetricSource: wiretype end group for non-group") + return fmt.Errorf("proto: HorizontalPodAutoscaler: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2848,16 +1907,13 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.MetricSelector == nil { - m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2881,16 +1937,13 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TargetValue == nil { - m.TargetValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} - } - if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2914,10 +1967,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TargetAverageValue == nil { - m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} - } - if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2942,7 +1992,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { +func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2965,15 +2015,15 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExternalMetricStatus: wiretype end group for non-group") + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2998,13 +2048,13 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MetricName = string(dAtA[iNdEx:postIndex]) + m.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3014,28 +2064,24 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.MetricSelector == nil { - m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3059,15 +2105,15 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3077,24 +2123,49 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.CurrentAverageValue == nil { - m.CurrentAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF } + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3117,7 +2188,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { +func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3140,15 +2211,15 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HorizontalPodAutoscaler: wiretype end group for non-group") + return fmt.Errorf("proto: HorizontalPodAutoscalerList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3172,43 +2243,13 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3232,7 +2273,8 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, HorizontalPodAutoscaler{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3257,7 +2299,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { } return nil } -func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { +func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3280,17 +2322,17 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group") + return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ScaleTargetRef", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3300,26 +2342,27 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) + if err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReplicas", wireType) } - var stringLen uint64 + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3329,26 +2372,17 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.MinReplicas = &v case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxReplicas", wireType) } - var msglen int + m.MaxReplicas = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3358,27 +2392,16 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + m.MaxReplicas |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3388,49 +2411,22 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + m.Metrics = append(m.Metrics, MetricSpec{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3453,7 +2449,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } return nil } -func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { +func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3476,15 +2472,35 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HorizontalPodAutoscalerList: wiretype end group for non-group") + return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ObservedGeneration = &v + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastScaleTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3508,13 +2524,54 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.LastScaleTime == nil { + m.LastScaleTime = &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} + } + if err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) + } + m.CurrentReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DesiredReplicas", wireType) + } + m.DesiredReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DesiredReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentMetrics", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3538,8 +2595,39 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, HorizontalPodAutoscaler{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{}) + if err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3564,7 +2652,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { } return nil } -func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { +func (m *MetricSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3587,17 +2675,17 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group") + return fmt.Errorf("proto: MetricSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MetricSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ScaleTargetRef", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3607,64 +2695,24 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Type = MetricSourceType(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReplicas", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MinReplicas = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxReplicas", wireType) - } - m.MaxReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MaxReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3688,84 +2736,16 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metrics = append(m.Metrics, MetricSpec{}) - if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.Object == nil { + m.Object = &ObjectMetricSource{} } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { + if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.ObservedGeneration = &v - case 2: + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastScaleTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3789,54 +2769,16 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.LastScaleTime == nil { - m.LastScaleTime = &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} + if m.Pods == nil { + m.Pods = &PodsMetricSource{} } - if err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) - } - m.CurrentReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CurrentReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DesiredReplicas", wireType) - } - m.DesiredReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DesiredReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentMetrics", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3860,14 +2802,16 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{}) - if err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Resource == nil { + m.Resource = &ResourceMetricSource{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3891,8 +2835,10 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.External == nil { + m.External = &ExternalMetricSource{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3917,7 +2863,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *MetricSpec) Unmarshal(dAtA []byte) error { +func (m *MetricStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3940,10 +2886,10 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MetricSpec: wiretype end group for non-group") + return fmt.Errorf("proto: MetricStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MetricSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4002,7 +2948,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Object == nil { - m.Object = &ObjectMetricSource{} + m.Object = &ObjectMetricStatus{} } if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4035,7 +2981,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Pods == nil { - m.Pods = &PodsMetricSource{} + m.Pods = &PodsMetricStatus{} } if err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4043,1677 +2989,9 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Resource == nil { - m.Resource = &ResourceMetricSource{} - } - if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.External == nil { - m.External = &ExternalMetricSource{} - } - if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MetricStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MetricStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = MetricSourceType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Object == nil { - m.Object = &ObjectMetricStatus{} - } - if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Pods == nil { - m.Pods = &PodsMetricStatus{} - } - if err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Resource == nil { - m.Resource = &ResourceMetricStatus{} - } - if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.External == nil { - m.External = &ExternalMetricStatus{} - } - if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ObjectMetricSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ObjectMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ObjectMetricStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ObjectMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodResourcePolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodResourcePolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodResourcePolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerPolicies", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerPolicies = append(m.ContainerPolicies, ContainerResourcePolicy{}) - if err := m.ContainerPolicies[len(m.ContainerPolicies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodUpdatePolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodUpdatePolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodUpdatePolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateMode", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := UpdateMode(dAtA[iNdEx:postIndex]) - m.UpdateMode = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodsMetricSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodsMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodsMetricStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodsMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RecommendedContainerResources) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RecommendedContainerResources: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RecommendedContainerResources: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Target == nil { - m.Target = make(k8s_io_api_core_v1.ResourceList) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Target[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Target[k8s_io_api_core_v1.ResourceName(mapkey)] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LowerBound", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.LowerBound == nil { - m.LowerBound = make(k8s_io_api_core_v1.ResourceList) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.LowerBound[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.LowerBound[k8s_io_api_core_v1.ResourceName(mapkey)] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpperBound", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.UpperBound == nil { - m.UpperBound = make(k8s_io_api_core_v1.ResourceList) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.UpperBound[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.UpperBound[k8s_io_api_core_v1.ResourceName(mapkey)] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RecommendedPodResources) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RecommendedPodResources: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RecommendedPodResources: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerRecommendations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerRecommendations = append(m.ContainerRecommendations, RecommendedContainerResources{}) - if err := m.ContainerRecommendations[len(m.ContainerRecommendations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResourceMetricSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResourceMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageUtilization", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TargetAverageUtilization = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.TargetAverageValue == nil { - m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} - } - if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResourceMetricStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResourceMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageUtilization", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) } - var v int32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -5723,15 +3001,28 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.CurrentAverageUtilization = &v - case 3: + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &ResourceMetricStatus{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5755,7 +3046,10 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.External == nil { + m.External = &ExternalMetricStatus{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5780,7 +3074,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { +func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5803,15 +3097,15 @@ func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: VerticalPodAutoscaler: wiretype end group for non-group") + return fmt.Errorf("proto: ObjectMetricSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: VerticalPodAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ObjectMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5835,15 +3129,15 @@ func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -5853,25 +3147,24 @@ func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5895,7 +3188,7 @@ func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5920,7 +3213,7 @@ func (m *VerticalPodAutoscaler) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { +func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5943,17 +3236,17 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: VerticalPodAutoscalerCondition: wiretype end group for non-group") + return fmt.Errorf("proto: ObjectMetricStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: VerticalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ObjectMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -5963,24 +3256,25 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = VerticalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6005,11 +3299,11 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6033,13 +3327,63 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodsMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodsMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6064,13 +3408,13 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6080,20 +3424,21 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -6116,7 +3461,7 @@ func (m *VerticalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerticalPodAutoscalerList) Unmarshal(dAtA []byte) error { +func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6139,17 +3484,17 @@ func (m *VerticalPodAutoscalerList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: VerticalPodAutoscalerList: wiretype end group for non-group") + return fmt.Errorf("proto: PodsMetricStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: VerticalPodAutoscalerList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PodsMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6159,25 +3504,24 @@ func (m *VerticalPodAutoscalerList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6201,8 +3545,7 @@ func (m *VerticalPodAutoscalerList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, VerticalPodAutoscaler{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6227,7 +3570,7 @@ func (m *VerticalPodAutoscalerList) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { +func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6250,17 +3593,17 @@ func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: VerticalPodAutoscalerSpec: wiretype end group for non-group") + return fmt.Errorf("proto: ResourceMetricSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: VerticalPodAutoscalerSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ResourceMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6270,30 +3613,26 @@ func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatePolicy", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageUtilization", wireType) } - var msglen int + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6303,28 +3642,15 @@ func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UpdatePolicy == nil { - m.UpdatePolicy = &PodUpdatePolicy{} - } - if err := m.UpdatePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.TargetAverageUtilization = &v case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourcePolicy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6348,10 +3674,10 @@ func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ResourcePolicy == nil { - m.ResourcePolicy = &PodResourcePolicy{} + if m.TargetAverageValue == nil { + m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} } - if err := m.ResourcePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6376,7 +3702,7 @@ func (m *VerticalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerticalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { +func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6399,17 +3725,17 @@ func (m *VerticalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: VerticalPodAutoscalerStatus: wiretype end group for non-group") + return fmt.Errorf("proto: ResourceMetricStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: VerticalPodAutoscalerStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ResourceMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Recommendation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6419,28 +3745,44 @@ func (m *VerticalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.Recommendation == nil { - m.Recommendation = &RecommendedPodResources{} - } - if err := m.Recommendation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageUtilization", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CurrentAverageUtilization = &v + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6464,8 +3806,7 @@ func (m *VerticalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, VerticalPodAutoscalerCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6600,133 +3941,96 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2044 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xdd, 0x6f, 0x1c, 0x57, - 0x15, 0xf7, 0xec, 0xae, 0x1d, 0xf7, 0xd8, 0xb1, 0x9d, 0x9b, 0xb4, 0xde, 0x38, 0x64, 0xd7, 0x1a, - 0x21, 0x54, 0x2a, 0x3a, 0xdb, 0xb8, 0x29, 0x2d, 0x84, 0x22, 0xbc, 0xdb, 0x36, 0x8d, 0xf0, 0x36, - 0xe6, 0xda, 0x8e, 0xaa, 0x7e, 0x20, 0xc6, 0x33, 0x37, 0x9b, 0xc1, 0x3b, 0x73, 0x57, 0x33, 0x77, - 0xdd, 0x38, 0x08, 0xa9, 0x20, 0xc1, 0x33, 0x0f, 0x50, 0x1e, 0x78, 0xe1, 0x19, 0xc1, 0x2b, 0x79, - 0xe0, 0xa9, 0x48, 0x88, 0x3c, 0xe6, 0x05, 0xa9, 0x08, 0x69, 0x21, 0xcb, 0x7f, 0x00, 0x6f, 0x79, - 0x42, 0xf7, 0x63, 0x3e, 0x77, 0xc7, 0xbb, 0x59, 0xaf, 0x03, 0x48, 0x7d, 0xdb, 0xb9, 0xf7, 0x9c, - 0xdf, 0xf9, 0xbc, 0xe7, 0xde, 0x73, 0x16, 0xae, 0x1f, 0xbc, 0x16, 0x18, 0x0e, 0xad, 0x1d, 0x74, - 0xf7, 0x89, 0xef, 0x11, 0x46, 0x82, 0xda, 0x21, 0xf1, 0x6c, 0xea, 0xd7, 0xd4, 0x86, 0xd9, 0x71, - 0x6a, 0x66, 0x97, 0xd1, 0xc0, 0x32, 0xdb, 0x8e, 0xd7, 0xaa, 0x1d, 0x6e, 0xec, 0x13, 0x66, 0x5e, - 0xa9, 0xb5, 0x88, 0x47, 0x7c, 0x93, 0x11, 0xdb, 0xe8, 0xf8, 0x94, 0x51, 0x54, 0x91, 0xf4, 0x86, - 0xd9, 0x71, 0x8c, 0x04, 0xbd, 0xa1, 0xe8, 0xd7, 0x5e, 0x6c, 0x39, 0xec, 0x4e, 0x77, 0xdf, 0xb0, - 0xa8, 0x5b, 0x6b, 0xd1, 0x16, 0xad, 0x09, 0xb6, 0xfd, 0xee, 0x6d, 0xf1, 0x25, 0x3e, 0xc4, 0x2f, - 0x09, 0xb7, 0xa6, 0x27, 0xc4, 0x5b, 0xd4, 0x27, 0xb5, 0xc3, 0x01, 0x91, 0x6b, 0x57, 0x63, 0x1a, - 0xd7, 0xb4, 0xee, 0x38, 0x1e, 0xf1, 0x8f, 0x6a, 0x9d, 0x83, 0x96, 0x60, 0xf2, 0x49, 0x40, 0xbb, - 0xbe, 0x45, 0x9e, 0x88, 0x2b, 0xa8, 0xb9, 0x84, 0x99, 0xc3, 0x64, 0xd5, 0xf2, 0xb8, 0xfc, 0xae, - 0xc7, 0x1c, 0x77, 0x50, 0xcc, 0x57, 0x47, 0x31, 0x04, 0xd6, 0x1d, 0xe2, 0x9a, 0x03, 0x7c, 0x2f, - 0xe7, 0xf1, 0x75, 0x99, 0xd3, 0xae, 0x39, 0x1e, 0x0b, 0x98, 0x9f, 0x65, 0xd2, 0xff, 0x35, 0x0b, - 0xab, 0x0d, 0xea, 0x31, 0x93, 0x93, 0x63, 0x65, 0xf9, 0x36, 0x6d, 0x3b, 0xd6, 0x11, 0xba, 0x06, - 0x67, 0xad, 0x70, 0xeb, 0x1d, 0xd3, 0x25, 0x65, 0x6d, 0x5d, 0x7b, 0xfe, 0x99, 0xfa, 0xb3, 0x0f, - 0x7a, 0xd5, 0x99, 0x7e, 0xaf, 0x7a, 0xb6, 0x91, 0xdc, 0xc4, 0x69, 0x5a, 0x74, 0x15, 0x4a, 0x2e, - 0xb5, 0x49, 0xb9, 0x20, 0x78, 0xd6, 0xfb, 0xbd, 0x6a, 0xa9, 0x49, 0x6d, 0xf2, 0xb8, 0x57, 0xbd, - 0x10, 0xf1, 0xed, 0xc8, 0x48, 0xf3, 0x75, 0x2c, 0xa8, 0xd1, 0xa7, 0x1a, 0x80, 0xeb, 0x78, 0x9b, - 0xed, 0x36, 0xfd, 0x88, 0xd8, 0xe5, 0xe2, 0x7a, 0xf1, 0xf9, 0x85, 0x8d, 0xeb, 0xc6, 0xf1, 0x19, - 0x62, 0xe4, 0x18, 0x60, 0x34, 0x23, 0xa4, 0x37, 0x3d, 0xe6, 0x1f, 0xd5, 0xdf, 0x55, 0x9a, 0x43, - 0xbc, 0xf1, 0xb8, 0x57, 0xad, 0x0e, 0x26, 0x8c, 0x11, 0x02, 0x6d, 0x39, 0x01, 0xfb, 0xf1, 0xdf, - 0x8f, 0x25, 0x11, 0xc6, 0x27, 0x94, 0x96, 0x36, 0x98, 0x77, 0x43, 0x1b, 0x4a, 0x27, 0xb4, 0x21, - 0x42, 0xca, 0xda, 0x10, 0x6d, 0x4c, 0xcd, 0x86, 0x08, 0x71, 0xcd, 0x85, 0xe5, 0x8c, 0xf3, 0xd0, - 0x0a, 0x14, 0x0f, 0xc8, 0x91, 0xcc, 0x01, 0xcc, 0x7f, 0xa2, 0x37, 0x60, 0xf6, 0xd0, 0x6c, 0x77, - 0x65, 0x8c, 0x17, 0x36, 0x8c, 0x84, 0x89, 0x51, 0x02, 0x1a, 0x9d, 0x83, 0x96, 0xb0, 0x39, 0x3c, - 0x55, 0xc6, 0x77, 0xba, 0xa6, 0xc7, 0x1c, 0x76, 0x84, 0x25, 0xf3, 0xd7, 0x0b, 0xaf, 0x69, 0x42, - 0x5c, 0xda, 0xce, 0xd3, 0x14, 0xa7, 0xff, 0x42, 0x83, 0x4b, 0x0d, 0x9f, 0x06, 0xc1, 0x2d, 0xe2, - 0x07, 0x0e, 0xf5, 0x6e, 0xee, 0x7f, 0x9f, 0x58, 0x0c, 0x93, 0xdb, 0xc4, 0x27, 0x9e, 0x45, 0xd0, - 0x3a, 0x94, 0x0e, 0x1c, 0xcf, 0x56, 0xf9, 0xbe, 0xa8, 0x3c, 0x5e, 0xfa, 0xb6, 0xe3, 0xd9, 0x58, - 0xec, 0x70, 0x0a, 0x8f, 0x9f, 0x88, 0x42, 0x9a, 0x42, 0xf8, 0x51, 0xec, 0xa0, 0x0d, 0x00, 0xb3, - 0xe3, 0x28, 0x01, 0xe5, 0xa2, 0xa0, 0x43, 0x61, 0xec, 0x36, 0xb7, 0x6f, 0xa8, 0x1d, 0x9c, 0xa0, - 0xd2, 0x3f, 0x29, 0xc2, 0x85, 0x37, 0xef, 0x32, 0xe2, 0x7b, 0x66, 0xbb, 0x49, 0x98, 0xef, 0x58, - 0x3b, 0xc2, 0x08, 0x0e, 0xe6, 0x8a, 0xef, 0xc4, 0x31, 0x8c, 0xc0, 0x9a, 0xd1, 0x0e, 0x4e, 0x50, - 0x21, 0x0a, 0x4b, 0xf2, 0x6b, 0x87, 0xb4, 0x89, 0xc5, 0xa8, 0xaf, 0xfc, 0xf6, 0xf2, 0x71, 0x7e, - 0x0b, 0x0c, 0x5e, 0xc6, 0x8c, 0xc3, 0x2b, 0xc6, 0x96, 0xb9, 0x4f, 0xda, 0x21, 0x6b, 0x1d, 0xf5, - 0x7b, 0xd5, 0xa5, 0x66, 0x0a, 0x0e, 0x67, 0xe0, 0x91, 0x09, 0x0b, 0xcc, 0xf4, 0x5b, 0x84, 0xdd, - 0x12, 0x51, 0x2a, 0x4e, 0x12, 0xa5, 0xfa, 0x72, 0xbf, 0x57, 0x5d, 0xd8, 0x8d, 0x61, 0x70, 0x12, - 0x13, 0x1d, 0x02, 0x92, 0x9f, 0x9b, 0x87, 0xc4, 0x37, 0x5b, 0x44, 0x4a, 0x2a, 0x4d, 0x24, 0xe9, - 0xb9, 0x7e, 0xaf, 0x8a, 0x76, 0x07, 0xd0, 0xf0, 0x10, 0x09, 0xfa, 0xaf, 0x07, 0x03, 0xc3, 0x4c, - 0xd6, 0x0d, 0xfe, 0x3f, 0x02, 0x73, 0x07, 0x16, 0xad, 0xae, 0xef, 0x13, 0xef, 0x44, 0x91, 0xb9, - 0xa0, 0xcc, 0x5a, 0x6c, 0x24, 0xb0, 0x70, 0x0a, 0x19, 0x1d, 0xc1, 0x79, 0xf5, 0x3d, 0x85, 0x00, - 0xad, 0xf6, 0x7b, 0xd5, 0xf3, 0x8d, 0x41, 0x38, 0x3c, 0x4c, 0x86, 0xfe, 0x69, 0x01, 0x56, 0xdf, - 0xa6, 0xbe, 0x73, 0x8f, 0xd7, 0xd1, 0xf6, 0x36, 0xb5, 0x37, 0x55, 0x91, 0x25, 0x3e, 0xfa, 0x1e, - 0xcc, 0x73, 0xef, 0xd9, 0x26, 0x33, 0x45, 0x8c, 0x16, 0x36, 0x5e, 0x1a, 0xcf, 0xd7, 0xb2, 0x30, - 0x34, 0x09, 0x33, 0xe3, 0xa8, 0xc6, 0x6b, 0x38, 0x42, 0x45, 0x1f, 0x42, 0x29, 0xe8, 0x10, 0x4b, - 0x45, 0xf2, 0xda, 0xa8, 0x62, 0x9f, 0xa3, 0xe8, 0x4e, 0x87, 0x58, 0x71, 0x31, 0xe1, 0x5f, 0x58, - 0xc0, 0x22, 0x02, 0x73, 0x81, 0x48, 0x38, 0x15, 0xbb, 0xd7, 0x27, 0x15, 0x20, 0x40, 0xea, 0x4b, - 0x4a, 0xc4, 0x9c, 0xfc, 0xc6, 0x0a, 0x5c, 0xff, 0x49, 0x11, 0xd6, 0x73, 0x38, 0x1b, 0xd4, 0xb3, - 0x1d, 0xe6, 0x50, 0x0f, 0xbd, 0x0d, 0x25, 0x76, 0xd4, 0x09, 0x93, 0xfd, 0x6a, 0xa8, 0xed, 0xee, - 0x51, 0x87, 0x5f, 0xee, 0x5f, 0x1c, 0xc5, 0xcf, 0xe9, 0xb0, 0x40, 0x40, 0x5b, 0x91, 0x55, 0x85, - 0x14, 0x96, 0x52, 0xeb, 0x71, 0xaf, 0x3a, 0xe4, 0x2d, 0x67, 0x44, 0x48, 0x69, 0xe5, 0x79, 0x6d, - 0x68, 0x9b, 0x01, 0xdb, 0xf5, 0x4d, 0x2f, 0x90, 0x92, 0x1c, 0x37, 0xcc, 0xf5, 0x17, 0xc6, 0x0b, - 0x37, 0xe7, 0xa8, 0xaf, 0x29, 0x2d, 0xd0, 0xd6, 0x00, 0x1a, 0x1e, 0x22, 0x01, 0x7d, 0x09, 0xe6, - 0x7c, 0x62, 0x06, 0xd4, 0x13, 0x69, 0xfe, 0x4c, 0xec, 0x5c, 0x2c, 0x56, 0xb1, 0xda, 0x45, 0x5f, - 0x86, 0x33, 0x2e, 0x09, 0x02, 0xb3, 0x45, 0xca, 0xb3, 0x82, 0x70, 0x59, 0x11, 0x9e, 0x69, 0xca, - 0x65, 0x1c, 0xee, 0xeb, 0x7f, 0xd5, 0xe0, 0x52, 0x8e, 0x1f, 0xf9, 0x65, 0x8e, 0x3e, 0x18, 0xc8, - 0x67, 0x63, 0xcc, 0xda, 0xe1, 0x04, 0x32, 0x9b, 0x57, 0x94, 0xec, 0xf9, 0x70, 0x25, 0x91, 0xcb, - 0x1f, 0xc0, 0xac, 0xc3, 0x88, 0xcb, 0xa3, 0xc2, 0x5f, 0x2e, 0xaf, 0x4e, 0x98, 0x6b, 0xf5, 0xb3, - 0x4a, 0xc6, 0xec, 0x0d, 0x8e, 0x86, 0x25, 0xa8, 0xfe, 0xb7, 0x42, 0xae, 0x6d, 0x3c, 0xe1, 0xd1, - 0x0f, 0x60, 0x49, 0x7c, 0xc9, 0xca, 0x8c, 0xc9, 0x6d, 0x65, 0xe1, 0xc8, 0x33, 0x75, 0xcc, 0x85, - 0x5e, 0x7f, 0x4e, 0xa9, 0xb2, 0xb4, 0x93, 0x82, 0xc6, 0x19, 0x51, 0xe8, 0x0a, 0x2c, 0xb8, 0x8e, - 0x87, 0x49, 0xa7, 0xed, 0x58, 0xa6, 0x4c, 0xcb, 0x59, 0x79, 0x25, 0x35, 0xe3, 0x65, 0x9c, 0xa4, - 0x41, 0xaf, 0xc0, 0x82, 0x6b, 0xde, 0x8d, 0x58, 0x8a, 0x82, 0xe5, 0xbc, 0x92, 0xb7, 0xd0, 0x8c, - 0xb7, 0x70, 0x92, 0x0e, 0xed, 0xf1, 0x6c, 0xe0, 0x55, 0x3a, 0x50, 0x0f, 0xc4, 0x17, 0x46, 0xd9, - 0xa7, 0x8a, 0x3c, 0x2f, 0x11, 0x89, 0xcc, 0x11, 0x10, 0x38, 0xc4, 0xd2, 0x7f, 0x5f, 0x82, 0xcb, - 0xc7, 0x9e, 0x7d, 0xf4, 0x16, 0x20, 0xba, 0x1f, 0x10, 0xff, 0x90, 0xd8, 0xd7, 0x65, 0x2f, 0xc0, - 0xdf, 0x27, 0xdc, 0xc7, 0x45, 0x79, 0x25, 0xde, 0x1c, 0xd8, 0xc5, 0x43, 0x38, 0x90, 0x05, 0x67, - 0xf9, 0x61, 0x90, 0x0e, 0x75, 0xdc, 0xf0, 0x55, 0xf6, 0x24, 0x27, 0xed, 0x1c, 0x6f, 0x22, 0xb6, - 0x92, 0x20, 0x38, 0x8d, 0x89, 0x36, 0x61, 0x59, 0xd5, 0xfa, 0x8c, 0x83, 0x57, 0x95, 0x07, 0x96, - 0x1b, 0xe9, 0x6d, 0x9c, 0xa5, 0xe7, 0x10, 0x36, 0x09, 0x1c, 0x9f, 0xd8, 0x11, 0x44, 0x29, 0x0d, - 0xf1, 0x46, 0x7a, 0x1b, 0x67, 0xe9, 0x51, 0x1b, 0x96, 0x14, 0xaa, 0xf2, 0x77, 0x79, 0x56, 0x84, - 0xec, 0x2b, 0x63, 0x86, 0x4c, 0x16, 0xdd, 0x28, 0x07, 0x1b, 0x29, 0x2c, 0x9c, 0xc1, 0x46, 0x0c, - 0xc0, 0x0a, 0x4b, 0x5c, 0x50, 0x9e, 0x13, 0x92, 0xbe, 0x35, 0xe1, 0x19, 0x8c, 0x6a, 0x65, 0x7c, - 0x7d, 0x45, 0x4b, 0x01, 0x4e, 0xc8, 0xd1, 0x7f, 0x53, 0x04, 0x88, 0x33, 0x8c, 0x77, 0x6f, 0x89, - 0x22, 0xbf, 0x9e, 0x29, 0xf2, 0x2b, 0xc9, 0xc7, 0x69, 0xa2, 0xa0, 0xdf, 0x82, 0x39, 0x2a, 0x4e, - 0x9e, 0x4a, 0x86, 0x8d, 0x51, 0x6a, 0x47, 0x77, 0x69, 0x84, 0x56, 0x07, 0x5e, 0x3a, 0xd5, 0xf9, - 0x55, 0x68, 0xe8, 0x1d, 0x28, 0x75, 0xa8, 0x1d, 0x5e, 0x7e, 0x2f, 0x8d, 0x42, 0xdd, 0xa6, 0x76, - 0x90, 0xc2, 0x9c, 0xe7, 0xba, 0xf3, 0x55, 0x2c, 0x70, 0xd0, 0x77, 0x61, 0x3e, 0x7c, 0x6e, 0xa8, - 0xb7, 0xc9, 0xd5, 0x51, 0x98, 0x61, 0xa7, 0x94, 0xc2, 0x5d, 0xe4, 0x15, 0x34, 0xdc, 0xc1, 0x11, - 0x26, 0xc7, 0x27, 0xea, 0xb5, 0x28, 0x6a, 0xfd, 0x18, 0xf8, 0xc3, 0x9e, 0xfd, 0x12, 0x3f, 0xdc, - 0xc1, 0x11, 0xa6, 0xfe, 0xdb, 0x22, 0x2c, 0xa6, 0x9e, 0xa1, 0xff, 0x8d, 0x70, 0xc9, 0xac, 0x9e, - 0x6e, 0xb8, 0x24, 0xe6, 0xf4, 0xc3, 0x25, 0x71, 0x4f, 0x2f, 0x5c, 0x09, 0xfc, 0x21, 0xe1, 0xfa, - 0x79, 0x01, 0xd0, 0x60, 0xa6, 0x23, 0x0b, 0xe6, 0x64, 0xab, 0x31, 0x8d, 0x1b, 0x2e, 0x7a, 0x75, - 0xa8, 0xcb, 0x4c, 0x41, 0x67, 0x1a, 0x94, 0xc2, 0x58, 0x0d, 0x0a, 0x99, 0x46, 0x23, 0x17, 0x5d, - 0x81, 0x79, 0xcd, 0x9c, 0xfe, 0xcb, 0xac, 0x5b, 0x64, 0x2e, 0xff, 0xcf, 0xba, 0xe5, 0xa9, 0xb5, - 0x51, 0xfa, 0x27, 0x1a, 0x9c, 0xdb, 0xa6, 0x76, 0x66, 0x1c, 0xf7, 0xb1, 0x06, 0xe7, 0xa2, 0x19, - 0x9b, 0x58, 0x73, 0x48, 0x50, 0xd6, 0xc6, 0x7b, 0xa4, 0xe5, 0x8c, 0x97, 0xea, 0x17, 0x95, 0x3a, - 0xe7, 0x1a, 0x59, 0x64, 0x3c, 0x28, 0x4c, 0xbf, 0x09, 0xcb, 0xdb, 0xd4, 0xde, 0xeb, 0xd8, 0x26, - 0x0b, 0xb5, 0xfa, 0x06, 0x40, 0x57, 0x7c, 0x37, 0xa9, 0x1d, 0x16, 0xa0, 0x2f, 0x70, 0x2f, 0xee, - 0x45, 0xab, 0x8f, 0x53, 0x5f, 0x38, 0x41, 0xaf, 0xff, 0x51, 0x83, 0x95, 0x6c, 0xb9, 0x9e, 0xa8, - 0xa9, 0xbe, 0x37, 0x74, 0x32, 0x30, 0xd1, 0xa4, 0x28, 0xee, 0x00, 0xc6, 0x9c, 0x0e, 0xfc, 0x29, - 0x6d, 0xc4, 0xe4, 0x93, 0x81, 0x1f, 0x0e, 0x6f, 0x9f, 0x27, 0xb3, 0xe2, 0x92, 0x12, 0x36, 0x7e, - 0x0b, 0xfd, 0xef, 0x33, 0x70, 0x19, 0x13, 0x8b, 0xba, 0x2e, 0xf1, 0x6c, 0x62, 0x0f, 0xa4, 0x4c, - 0x70, 0xb2, 0x89, 0xf0, 0x7d, 0x2d, 0x3a, 0xd9, 0xb2, 0xb3, 0xb8, 0x31, 0xba, 0x8a, 0x1f, 0xa3, - 0x8c, 0x21, 0xa3, 0x23, 0xa7, 0xa2, 0xbb, 0xe9, 0x73, 0x3e, 0xa5, 0x89, 0x68, 0x58, 0x2d, 0xfe, - 0xac, 0x01, 0xb4, 0xe9, 0x47, 0xc4, 0xaf, 0xd3, 0xae, 0x17, 0x4e, 0xa5, 0x9b, 0x27, 0xd3, 0x7e, - 0x2b, 0xc2, 0xcb, 0xcc, 0x75, 0xe3, 0x8d, 0x69, 0xcd, 0x75, 0x63, 0xd5, 0x85, 0x25, 0xdd, 0x4e, - 0x27, 0xb4, 0xa4, 0x34, 0x0d, 0x4b, 0xf6, 0x22, 0xbc, 0x8c, 0x25, 0xf1, 0xc6, 0xb4, 0x2c, 0x89, - 0x55, 0x5f, 0x73, 0x60, 0x21, 0x91, 0x00, 0xa7, 0x3d, 0x9d, 0xce, 0x44, 0xeb, 0xb4, 0xc5, 0x65, - 0x5c, 0x7a, 0xaa, 0xc3, 0xf0, 0xfb, 0x1a, 0xac, 0x26, 0x02, 0x9c, 0xb8, 0x77, 0x02, 0xf4, 0x2b, - 0x0d, 0xca, 0x56, 0x1c, 0x71, 0x45, 0x64, 0xca, 0xd6, 0x44, 0xde, 0x3c, 0xaf, 0x9f, 0x28, 0x79, - 0xa2, 0xb7, 0x6a, 0xb9, 0x91, 0x23, 0x06, 0xe7, 0x2a, 0xa0, 0xff, 0xae, 0x00, 0x17, 0x86, 0xbd, - 0xcb, 0x51, 0x43, 0x4d, 0xe7, 0x65, 0x75, 0xaa, 0x25, 0xa7, 0xf3, 0x23, 0x32, 0x31, 0x31, 0xc0, - 0x7f, 0x17, 0xca, 0xa9, 0x5a, 0xbf, 0xc7, 0x9c, 0xb6, 0x73, 0x4f, 0xb6, 0xcb, 0x72, 0x30, 0xc0, - 0xaf, 0xb9, 0xf2, 0x6e, 0x0e, 0x0d, 0xce, 0xe5, 0xce, 0x99, 0x62, 0x17, 0x4f, 0x7d, 0x8a, 0x7d, - 0x7f, 0xd0, 0x5f, 0xf2, 0xae, 0x9a, 0x8a, 0xbf, 0xde, 0x87, 0x8b, 0xe9, 0x4b, 0x65, 0xd0, 0x61, - 0x97, 0xfb, 0xbd, 0xea, 0xc5, 0x46, 0x1e, 0x11, 0xce, 0xe7, 0xcf, 0xbb, 0x19, 0x8b, 0x4f, 0xe9, - 0x66, 0xfc, 0x43, 0x01, 0x9e, 0xbd, 0x45, 0x7c, 0xe6, 0x58, 0x4f, 0x7f, 0xb4, 0xfc, 0x7e, 0x6a, - 0xb4, 0xfc, 0xb5, 0x51, 0xc7, 0x6d, 0xa8, 0x9a, 0xb9, 0x83, 0x65, 0x2b, 0x33, 0x58, 0xbe, 0x36, - 0x19, 0xfc, 0xf1, 0x63, 0xe5, 0x1f, 0x15, 0xa1, 0x32, 0x94, 0x2f, 0x1e, 0x2a, 0xbf, 0x95, 0x6a, - 0x60, 0x37, 0x32, 0x0d, 0xac, 0x7e, 0x3c, 0xf7, 0xe7, 0x23, 0xe5, 0xd1, 0x23, 0xe5, 0xbf, 0x68, - 0x70, 0x71, 0xa8, 0x17, 0x9f, 0xc2, 0x40, 0xf9, 0xbd, 0xf4, 0x40, 0xf9, 0x95, 0x89, 0x72, 0x2c, - 0x67, 0x9c, 0xfc, 0xb0, 0x90, 0x63, 0x97, 0x18, 0x63, 0x7d, 0x08, 0xf3, 0x41, 0xf8, 0x27, 0x9b, - 0x36, 0xf9, 0x9f, 0x6c, 0xa2, 0xb1, 0x8f, 0xfe, 0x5e, 0x8b, 0x20, 0x11, 0x81, 0xc5, 0x6e, 0xa2, - 0x17, 0x52, 0x47, 0xb4, 0x36, 0xc6, 0xc0, 0x23, 0xd9, 0x42, 0xd5, 0x57, 0x78, 0x3b, 0x98, 0x5c, - 0xc1, 0x29, 0x58, 0xe4, 0xc2, 0x92, 0x9f, 0xea, 0xda, 0x54, 0x0a, 0x5e, 0x19, 0x43, 0x50, 0xa6, - 0xdd, 0x13, 0x7f, 0x17, 0xa6, 0xd7, 0x70, 0x06, 0x5c, 0xff, 0x69, 0x01, 0x2e, 0x1d, 0x73, 0xcc, - 0x51, 0xc0, 0xd5, 0x49, 0xde, 0xc4, 0xca, 0xb5, 0xaf, 0x3e, 0xc1, 0x4b, 0x20, 0xf9, 0xca, 0x08, - 0x95, 0x4a, 0x42, 0xe2, 0x8c, 0x08, 0xe4, 0xa7, 0xa6, 0xa2, 0x32, 0x91, 0xbe, 0x39, 0x51, 0x22, - 0x8d, 0x3d, 0x13, 0xad, 0xbf, 0xf8, 0xe0, 0x51, 0x65, 0xe6, 0xe1, 0xa3, 0xca, 0xcc, 0x67, 0x8f, - 0x2a, 0x33, 0x1f, 0xf7, 0x2b, 0xda, 0x83, 0x7e, 0x45, 0x7b, 0xd8, 0xaf, 0x68, 0x9f, 0xf5, 0x2b, - 0xda, 0x3f, 0xfa, 0x15, 0xed, 0x67, 0xff, 0xac, 0xcc, 0xbc, 0x77, 0x46, 0x49, 0xfb, 0x4f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x58, 0x06, 0x79, 0x35, 0x11, 0x25, 0x00, 0x00, + // 1441 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x8f, 0x1b, 0xc5, + 0x12, 0x5f, 0x7f, 0xec, 0x66, 0xd3, 0xde, 0xec, 0xe6, 0x75, 0xa2, 0xc4, 0xd9, 0xbc, 0xd8, 0xab, + 0xd1, 0xd3, 0x53, 0x88, 0xc8, 0x4c, 0xe2, 0x2c, 0x1f, 0x12, 0x42, 0x62, 0x6d, 0x20, 0x89, 0x58, + 0x27, 0xa1, 0x77, 0x13, 0x21, 0x08, 0x88, 0xf6, 0xb8, 0xe3, 0x6d, 0xd6, 0x33, 0x63, 0x75, 0xb7, + 0xad, 0x6c, 0x10, 0x12, 0x17, 0xee, 0x1c, 0xf8, 0xb8, 0x72, 0x46, 0x70, 0x85, 0x33, 0x48, 0x48, + 0x39, 0xe6, 0x18, 0x84, 0x64, 0x91, 0xe1, 0xbf, 0xc8, 0x09, 0x4d, 0x77, 0xcf, 0x78, 0xc6, 0xf6, + 0xac, 0x1d, 0xb3, 0x09, 0x70, 0x9b, 0xee, 0xaa, 0xfa, 0x55, 0x75, 0x55, 0x75, 0x75, 0xd5, 0x80, + 0xcb, 0xbb, 0x2f, 0x73, 0x93, 0x7a, 0xd6, 0x6e, 0xb7, 0x41, 0x98, 0x4b, 0x04, 0xe1, 0x56, 0x8f, + 0xb8, 0x4d, 0x8f, 0x59, 0x9a, 0x80, 0x3b, 0xd4, 0xc2, 0x5d, 0xe1, 0x71, 0x1b, 0xb7, 0xa9, 0xdb, + 0xb2, 0x7a, 0x95, 0x06, 0x11, 0xf8, 0xa2, 0xd5, 0x22, 0x2e, 0x61, 0x58, 0x90, 0xa6, 0xd9, 0x61, + 0x9e, 0xf0, 0x60, 0x49, 0xf1, 0x9b, 0xb8, 0x43, 0xcd, 0x18, 0xbf, 0xa9, 0xf9, 0x57, 0xcf, 0xb7, + 0xa8, 0xd8, 0xe9, 0x36, 0x4c, 0xdb, 0x73, 0xac, 0x96, 0xd7, 0xf2, 0x2c, 0x29, 0xd6, 0xe8, 0xde, + 0x91, 0x2b, 0xb9, 0x90, 0x5f, 0x0a, 0x6e, 0xd5, 0x88, 0xa9, 0xb7, 0x3d, 0x46, 0xac, 0xde, 0x88, + 0xca, 0xd5, 0xf5, 0x01, 0x8f, 0x83, 0xed, 0x1d, 0xea, 0x12, 0xb6, 0x67, 0x75, 0x76, 0x5b, 0x52, + 0x88, 0x11, 0xee, 0x75, 0x99, 0x4d, 0x9e, 0x48, 0x8a, 0x5b, 0x0e, 0x11, 0x78, 0x9c, 0x2e, 0x2b, + 0x4d, 0x8a, 0x75, 0x5d, 0x41, 0x9d, 0x51, 0x35, 0x2f, 0x4e, 0x12, 0xe0, 0xf6, 0x0e, 0x71, 0xf0, + 0x88, 0xdc, 0xa5, 0x34, 0xb9, 0xae, 0xa0, 0x6d, 0x8b, 0xba, 0x82, 0x0b, 0x36, 0x2c, 0x64, 0x7c, + 0x99, 0x01, 0xa7, 0x6b, 0xcc, 0xe3, 0xfc, 0x16, 0x61, 0x9c, 0x7a, 0xee, 0xf5, 0xc6, 0x47, 0xc4, + 0x16, 0x88, 0xdc, 0x21, 0x8c, 0xb8, 0x36, 0x81, 0x6b, 0x20, 0xbf, 0x4b, 0xdd, 0x66, 0x31, 0xb3, + 0x96, 0x39, 0x7b, 0xb8, 0xba, 0x74, 0xbf, 0x5f, 0x9e, 0xf3, 0xfb, 0xe5, 0xfc, 0x5b, 0xd4, 0x6d, + 0x22, 0x49, 0x09, 0x38, 0x5c, 0xec, 0x90, 0x62, 0x36, 0xc9, 0x71, 0x0d, 0x3b, 0x04, 0x49, 0x0a, + 0xac, 0x00, 0x80, 0x3b, 0x54, 0x2b, 0x28, 0xe6, 0x24, 0x1f, 0xd4, 0x7c, 0x60, 0xe3, 0xc6, 0x55, + 0x4d, 0x41, 0x31, 0x2e, 0xe3, 0xab, 0x1c, 0x38, 0xfe, 0xc6, 0x5d, 0x41, 0x98, 0x8b, 0xdb, 0x75, + 0x22, 0x18, 0xb5, 0xb7, 0x64, 0x50, 0x02, 0x30, 0x47, 0xae, 0x03, 0x05, 0xda, 0xac, 0x08, 0xac, + 0x1e, 0x51, 0x50, 0x8c, 0x0b, 0x7a, 0x60, 0x59, 0xad, 0xb6, 0x48, 0x9b, 0xd8, 0xc2, 0x63, 0xd2, + 0xd8, 0x42, 0xe5, 0x92, 0x39, 0x48, 0xbd, 0xc8, 0x65, 0x66, 0x67, 0xb7, 0x15, 0x6c, 0x70, 0x33, + 0x88, 0xa8, 0xd9, 0xbb, 0x68, 0x6e, 0xe2, 0x06, 0x69, 0x87, 0xa2, 0x55, 0xe8, 0xf7, 0xcb, 0xcb, + 0xf5, 0x04, 0x1c, 0x1a, 0x82, 0x87, 0x18, 0x14, 0x04, 0x66, 0x2d, 0x22, 0x6e, 0xe1, 0x76, 0x97, + 0xc8, 0x23, 0x17, 0x2a, 0xe6, 0x7e, 0xda, 0xcc, 0x30, 0xeb, 0xcc, 0xb7, 0xbb, 0xd8, 0x15, 0x54, + 0xec, 0x55, 0x57, 0xfc, 0x7e, 0xb9, 0xb0, 0x3d, 0x80, 0x41, 0x71, 0x4c, 0xd8, 0x03, 0x50, 0x2d, + 0x37, 0x7a, 0x84, 0xe1, 0x16, 0x51, 0x9a, 0xf2, 0x33, 0x69, 0x3a, 0xe1, 0xf7, 0xcb, 0x70, 0x7b, + 0x04, 0x0d, 0x8d, 0xd1, 0x60, 0x7c, 0x33, 0x1a, 0x18, 0x81, 0x45, 0x97, 0xff, 0x3b, 0x02, 0xb3, + 0x03, 0x96, 0xec, 0x2e, 0x63, 0xc4, 0xfd, 0x4b, 0x91, 0x39, 0xae, 0x8f, 0xb5, 0x54, 0x8b, 0x61, + 0xa1, 0x04, 0x32, 0xdc, 0x03, 0xc7, 0xf4, 0xfa, 0x00, 0x02, 0x74, 0xd2, 0xef, 0x97, 0x8f, 0xd5, + 0x46, 0xe1, 0xd0, 0x38, 0x1d, 0xc6, 0x4f, 0x59, 0x70, 0xf2, 0x8a, 0xc7, 0xe8, 0x3d, 0xcf, 0x15, + 0xb8, 0x7d, 0xc3, 0x6b, 0x6e, 0xe8, 0xaa, 0x4a, 0x18, 0xfc, 0x10, 0x2c, 0x06, 0xde, 0x6b, 0x62, + 0x81, 0x65, 0x8c, 0x0a, 0x95, 0x0b, 0xd3, 0xf9, 0x5a, 0x15, 0x86, 0x3a, 0x11, 0x78, 0x10, 0xd5, + 0xc1, 0x1e, 0x8a, 0x50, 0xe1, 0xfb, 0x20, 0xcf, 0x3b, 0xc4, 0xd6, 0x91, 0x7c, 0xc5, 0xdc, 0xbf, + 0xba, 0x9b, 0x29, 0x86, 0x6e, 0x75, 0x88, 0x3d, 0x28, 0x26, 0xc1, 0x0a, 0x49, 0x58, 0x48, 0xc0, + 0x02, 0x97, 0x09, 0xa7, 0x63, 0xf7, 0xea, 0xac, 0x0a, 0x24, 0x48, 0x75, 0x59, 0xab, 0x58, 0x50, + 0x6b, 0xa4, 0xc1, 0x8d, 0xcf, 0x72, 0x60, 0x2d, 0x45, 0xb2, 0xe6, 0xb9, 0x4d, 0x2a, 0xa8, 0xe7, + 0xc2, 0x2b, 0x20, 0x2f, 0xf6, 0x3a, 0x61, 0xb2, 0xaf, 0x87, 0xd6, 0x6e, 0xef, 0x75, 0xc8, 0xe3, + 0x7e, 0xf9, 0x7f, 0x93, 0xe4, 0x03, 0x3e, 0x24, 0x11, 0xe0, 0x66, 0x74, 0xaa, 0x6c, 0x02, 0x4b, + 0x9b, 0xf5, 0xb8, 0x5f, 0x1e, 0xf3, 0xac, 0x99, 0x11, 0x52, 0xd2, 0xf8, 0xa0, 0x36, 0xb4, 0x31, + 0x17, 0xdb, 0x0c, 0xbb, 0x5c, 0x69, 0xa2, 0x4e, 0x98, 0xeb, 0xe7, 0xa6, 0x0b, 0x77, 0x20, 0x51, + 0x5d, 0xd5, 0x56, 0xc0, 0xcd, 0x11, 0x34, 0x34, 0x46, 0x03, 0xfc, 0x3f, 0x58, 0x60, 0x04, 0x73, + 0xcf, 0x95, 0x69, 0x7e, 0x78, 0xe0, 0x5c, 0x24, 0x77, 0x91, 0xa6, 0xc2, 0xe7, 0xc0, 0x21, 0x87, + 0x70, 0x8e, 0x5b, 0xa4, 0x38, 0x2f, 0x19, 0x57, 0x34, 0xe3, 0xa1, 0xba, 0xda, 0x46, 0x21, 0xdd, + 0xf8, 0x35, 0x03, 0x4e, 0xa7, 0xf8, 0x71, 0x93, 0x72, 0x01, 0x6f, 0x8f, 0xe4, 0xb3, 0x39, 0x65, + 0xed, 0xa0, 0x5c, 0x65, 0xf3, 0x51, 0xad, 0x7b, 0x31, 0xdc, 0x89, 0xe5, 0xf2, 0x6d, 0x30, 0x4f, + 0x05, 0x71, 0x82, 0xa8, 0xe4, 0xce, 0x16, 0x2a, 0x2f, 0xcd, 0x98, 0x6b, 0xd5, 0x23, 0x5a, 0xc7, + 0xfc, 0xd5, 0x00, 0x0d, 0x29, 0x50, 0xe3, 0xb7, 0x6c, 0xea, 0xd9, 0x82, 0x84, 0x87, 0x1f, 0x83, + 0x65, 0xb9, 0x52, 0x95, 0x19, 0x91, 0x3b, 0xfa, 0x84, 0x13, 0xef, 0xd4, 0x3e, 0x0f, 0x7a, 0xf5, + 0x84, 0x36, 0x65, 0x79, 0x2b, 0x01, 0x8d, 0x86, 0x54, 0xc1, 0x8b, 0xa0, 0xe0, 0x50, 0x17, 0x91, + 0x4e, 0x9b, 0xda, 0x58, 0xa5, 0xe5, 0xbc, 0x7a, 0x92, 0xea, 0x83, 0x6d, 0x14, 0xe7, 0x81, 0x2f, + 0x80, 0x82, 0x83, 0xef, 0x46, 0x22, 0x39, 0x29, 0x72, 0x4c, 0xeb, 0x2b, 0xd4, 0x07, 0x24, 0x14, + 0xe7, 0x83, 0x37, 0x83, 0x6c, 0x08, 0xaa, 0x34, 0x2f, 0xe6, 0xa5, 0x9b, 0xcf, 0x4d, 0x3a, 0x9f, + 0x2e, 0xf2, 0x41, 0x89, 0x88, 0x65, 0x8e, 0x84, 0x40, 0x21, 0x96, 0xf1, 0x43, 0x1e, 0x9c, 0xd9, + 0xf7, 0xee, 0xc3, 0x37, 0x01, 0xf4, 0x1a, 0x9c, 0xb0, 0x1e, 0x69, 0x5e, 0x56, 0x6d, 0x51, 0xd0, + 0x9f, 0x04, 0x3e, 0xce, 0xa9, 0x27, 0xf1, 0xfa, 0x08, 0x15, 0x8d, 0x91, 0x80, 0x36, 0x38, 0x12, + 0x5c, 0x06, 0xe5, 0x50, 0xaa, 0x5b, 0xa1, 0x27, 0xbb, 0x69, 0xff, 0xf1, 0xfb, 0xe5, 0x23, 0x9b, + 0x71, 0x10, 0x94, 0xc4, 0x84, 0x1b, 0x60, 0x45, 0xd7, 0xfa, 0x21, 0x07, 0x9f, 0xd4, 0x1e, 0x58, + 0xa9, 0x25, 0xc9, 0x68, 0x98, 0x3f, 0x80, 0x68, 0x12, 0x4e, 0x19, 0x69, 0x46, 0x10, 0xf9, 0x24, + 0xc4, 0xeb, 0x49, 0x32, 0x1a, 0xe6, 0x87, 0x6d, 0xb0, 0xac, 0x51, 0xb5, 0xbf, 0x8b, 0xf3, 0x32, + 0x64, 0xcf, 0x4f, 0x19, 0x32, 0x55, 0x74, 0xa3, 0x1c, 0xac, 0x25, 0xb0, 0xd0, 0x10, 0x36, 0x14, + 0x00, 0xd8, 0x61, 0x89, 0xe3, 0xc5, 0x05, 0xa9, 0xe9, 0xb5, 0x19, 0xef, 0x60, 0x54, 0x2b, 0x07, + 0xcf, 0x57, 0xb4, 0xc5, 0x51, 0x4c, 0x8f, 0xf1, 0x6d, 0x0e, 0x80, 0x41, 0x86, 0xc1, 0xf5, 0x44, + 0x91, 0x5f, 0x1b, 0x2a, 0xf2, 0x47, 0xe3, 0xcd, 0x69, 0xac, 0xa0, 0xdf, 0x02, 0x0b, 0x9e, 0xbc, + 0x79, 0x3a, 0x19, 0x2a, 0x93, 0xcc, 0x8e, 0xde, 0xd2, 0x08, 0xad, 0x0a, 0x82, 0xd2, 0xa9, 0xef, + 0xaf, 0x46, 0x83, 0xd7, 0x40, 0xbe, 0xe3, 0x35, 0xc3, 0xc7, 0xef, 0xc2, 0x24, 0xd4, 0x1b, 0x5e, + 0x93, 0x27, 0x30, 0x17, 0x03, 0xdb, 0x83, 0x5d, 0x24, 0x71, 0xe0, 0x07, 0x60, 0x31, 0x6c, 0x37, + 0x74, 0x6f, 0xb2, 0x3e, 0x09, 0x13, 0x69, 0xfe, 0x04, 0xee, 0x52, 0x50, 0x41, 0x43, 0x0a, 0x8a, + 0x30, 0x03, 0x7c, 0xa2, 0xbb, 0x45, 0x59, 0xeb, 0xa7, 0xc0, 0x1f, 0xd7, 0xf6, 0x2b, 0xfc, 0x90, + 0x82, 0x22, 0x4c, 0xe3, 0xbb, 0x1c, 0x58, 0x4a, 0xb4, 0xa1, 0x7f, 0x47, 0xb8, 0x54, 0x56, 0x1f, + 0x6c, 0xb8, 0x14, 0xe6, 0xc1, 0x87, 0x4b, 0xe1, 0x3e, 0xbd, 0x70, 0xc5, 0xf0, 0xc7, 0x84, 0xeb, + 0x8b, 0x2c, 0x80, 0xa3, 0x99, 0x0e, 0x6d, 0xb0, 0xa0, 0x46, 0x8d, 0x83, 0x78, 0xe1, 0xa2, 0xae, + 0x43, 0x3f, 0x66, 0x1a, 0x7a, 0x68, 0x40, 0xc9, 0x4e, 0x35, 0xa0, 0x90, 0x83, 0x18, 0xe4, 0xa2, + 0x27, 0x30, 0x6d, 0x98, 0x33, 0xbe, 0x1e, 0x76, 0x8b, 0xca, 0xe5, 0x7f, 0xac, 0x5b, 0x9e, 0xd9, + 0x18, 0x65, 0xfc, 0x9c, 0x01, 0x47, 0x87, 0x8b, 0xd8, 0x4c, 0xa3, 0xe6, 0xbd, 0xb1, 0xf3, 0x72, + 0x76, 0x26, 0xc3, 0xa3, 0xbe, 0x78, 0xca, 0x99, 0xf9, 0x97, 0xe4, 0x21, 0x66, 0x9f, 0x97, 0x3f, + 0x19, 0x3f, 0x54, 0xce, 0x76, 0x8a, 0xd3, 0x5a, 0xd9, 0xf4, 0x83, 0xe5, 0xf7, 0x59, 0x70, 0x7c, + 0x5c, 0xf5, 0x87, 0x35, 0xfd, 0x0f, 0x48, 0x9d, 0xc2, 0x8a, 0xff, 0x03, 0x7a, 0xdc, 0x2f, 0x97, + 0xc7, 0x8c, 0x2e, 0x21, 0x4c, 0xec, 0x37, 0xd1, 0x3b, 0xa0, 0x98, 0xf0, 0xdd, 0x4d, 0x41, 0xdb, + 0xf4, 0x9e, 0x6a, 0xca, 0x54, 0xfb, 0xf9, 0x5f, 0xbf, 0x5f, 0x2e, 0x6e, 0xa7, 0xf0, 0xa0, 0x54, + 0xe9, 0x94, 0x7f, 0x25, 0xb9, 0xa7, 0xfe, 0xaf, 0xe4, 0xc7, 0x51, 0x7f, 0xa9, 0xd8, 0x1f, 0x88, + 0xbf, 0xde, 0x03, 0xa7, 0x92, 0x41, 0x1a, 0x75, 0xd8, 0x19, 0xbf, 0x5f, 0x3e, 0x55, 0x4b, 0x63, + 0x42, 0xe9, 0xf2, 0x69, 0x99, 0x96, 0x7b, 0x36, 0x99, 0x56, 0x3d, 0x7f, 0xff, 0x51, 0x69, 0xee, + 0xc1, 0xa3, 0xd2, 0xdc, 0xc3, 0x47, 0xa5, 0xb9, 0x4f, 0xfd, 0x52, 0xe6, 0xbe, 0x5f, 0xca, 0x3c, + 0xf0, 0x4b, 0x99, 0x87, 0x7e, 0x29, 0xf3, 0xbb, 0x5f, 0xca, 0x7c, 0xfe, 0x47, 0x69, 0xee, 0xdd, + 0x43, 0xba, 0xee, 0xfd, 0x19, 0x00, 0x00, 0xff, 0xff, 0x91, 0x09, 0xa9, 0x38, 0x8c, 0x16, 0x00, + 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.proto index 5e5c491a4bfe..0cd10143b2b2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/generated.proto @@ -31,29 +31,6 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v2beta1"; -// ContainerResourcePolicy controls how autoscaler computes the recommended -// resources for a specific container. -message ContainerResourcePolicy { - // Name of the container or DefaultContainerResourcePolicy, in which - // case the policy is used by the containers that don't have their own - // policy specified. - optional string containerName = 1; - - // Whether autoscaler is enabled for the container. The default is "Auto". - // +optional - optional string mode = 2; - - // Specifies the minimal amount of resources that will be recommended - // for the container. The default is no minimum. - // +optional - map minAllowed = 3; - - // Specifies the maximum amount of resources that will be recommended - // for the container. The default is no maximum. - // +optional - map maxAllowed = 4; -} - // CrossVersionObjectReference contains enough information to let you identify the referred resource. message CrossVersionObjectReference { // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" @@ -312,26 +289,6 @@ message ObjectMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; } -// PodResourcePolicy controls how autoscaler computes the recommended resources -// for containers belonging to the pod. There can be at most one entry for every -// named container and optionally a single wildcard entry with `containerName` = '*', -// which handles all containers that don't have individual policies. -message PodResourcePolicy { - // Per-container resource policies. - // +optional - // +patchMergeKey=containerName - // +patchStrategy=merge - repeated ContainerResourcePolicy containerPolicies = 1; -} - -// PodUpdatePolicy describes the rules on how changes are applied to the pods. -message PodUpdatePolicy { - // Controls when autoscaler applies changes to the pod resources. - // The default is 'Auto'. - // +optional - optional string updateMode = 1; -} - // PodsMetricSource indicates how to scale on a metric describing each pod in // the current scale target (for example, transactions-processed-per-second). // The values will be averaged together before being compared to the target @@ -356,39 +313,6 @@ message PodsMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2; } -// RecommendedContainerResources is the recommendation of resources computed by -// autoscaler for a specific container. Respects the container resource policy -// if present in the spec. In particular the recommendation is not produced for -// containers with `ContainerScalingMode` set to 'Off'. -message RecommendedContainerResources { - // Name of the container. - optional string containerName = 1; - - // Recommended amount of resources. - map target = 2; - - // Minimum recommended amount of resources. - // This amount is not guaranteed to be sufficient for the application to operate in a stable way, however - // running with less resources is likely to have significant impact on performance/availability. - // +optional - map lowerBound = 3; - - // Maximum recommended amount of resources. - // Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum - // amount of application is actually capable of consuming. - // +optional - map upperBound = 4; -} - -// RecommendedPodResources is the recommendation of resources computed by -// autoscaler. It contains a recommendation for each container in the pod -// (except for those with `ContainerScalingMode` set to 'Off'). -message RecommendedPodResources { - // Resources recommended by the autoscaler for each container. - // +optional - repeated RecommendedContainerResources containerRecommendations = 1; -} - // ResourceMetricSource indicates how to scale on a resource metric known to // Kubernetes, as specified in requests and limits, describing each pod in the // current scale target (e.g. CPU or memory). The values will be averaged @@ -437,89 +361,3 @@ message ResourceMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3; } -// VerticalPodAutoscaler is the configuration for a vertical pod -// autoscaler, which automatically manages pod resources based on historical and -// real time resource utilization. -message VerticalPodAutoscaler { - // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the behavior of the autoscaler. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - optional VerticalPodAutoscalerSpec spec = 2; - - // Current information about the autoscaler. - // +optional - optional VerticalPodAutoscalerStatus status = 3; -} - -// VerticalPodAutoscalerCondition describes the state of -// a VerticalPodAutoscaler at a certain point. -message VerticalPodAutoscalerCondition { - // type describes the current condition - optional string type = 1; - - // status is the status of the condition (True, False, Unknown) - optional string status = 2; - - // lastTransitionTime is the last time the condition transitioned from - // one status to another - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // reason is the reason for the condition's last transition. - // +optional - optional string reason = 4; - - // message is a human-readable explanation containing details about - // the transition - // +optional - optional string message = 5; -} - -// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects. -message VerticalPodAutoscalerList { - // metadata is the standard list metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is the list of vertical pod autoscaler objects. - repeated VerticalPodAutoscaler items = 2; -} - -// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. -message VerticalPodAutoscalerSpec { - // A label query that determines the set of pods controlled by the Autoscaler. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; - - // Describes the rules on how changes are applied to the pods. - // If not specified, all fields in the `PodUpdatePolicy` are set to their - // default values. - // +optional - optional PodUpdatePolicy updatePolicy = 2; - - // Controls how the autoscaler computes recommended resources. - // The resource policy may be used to set constraints on the recommendations - // for individual containers. If not specified, the autoscaler computes recommended - // resources for all containers in the pod, without additional constraints. - // +optional - optional PodResourcePolicy resourcePolicy = 3; -} - -// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. -message VerticalPodAutoscalerStatus { - // The most recently computed amount of resources recommended by the - // autoscaler for the controlled pods. - // +optional - optional RecommendedPodResources recommendation = 1; - - // Conditions is the set of conditions required for this autoscaler to scale its target, - // and indicates whether or not those conditions are met. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - repeated VerticalPodAutoscalerCondition conditions = 2; -} - diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types.go index 450bbc5cf164..f842cc342da2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types.go @@ -22,8 +22,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -// ** Horizontal Pod Autoscaler types start here ** - // CrossVersionObjectReference contains enough information to let you identify the referred resource. type CrossVersionObjectReference struct { // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" @@ -372,212 +370,3 @@ type HorizontalPodAutoscalerList struct { // items is the list of horizontal pod autoscaler objects. Items []HorizontalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"` } - -// ** Vertical Pod Autoscaler types start here ** - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects. -type VerticalPodAutoscalerList struct { - metav1.TypeMeta `json:",inline"` - // metadata is the standard list metadata. - // +optional - metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - - // items is the list of vertical pod autoscaler objects. - Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// VerticalPodAutoscaler is the configuration for a vertical pod -// autoscaler, which automatically manages pod resources based on historical and -// real time resource utilization. -type VerticalPodAutoscaler struct { - metav1.TypeMeta `json:",inline"` - // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Specification of the behavior of the autoscaler. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"` - - // Current information about the autoscaler. - // +optional - Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. -type VerticalPodAutoscalerSpec struct { - // A label query that determines the set of pods controlled by the Autoscaler. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,1,name=selector"` - - // Describes the rules on how changes are applied to the pods. - // If not specified, all fields in the `PodUpdatePolicy` are set to their - // default values. - // +optional - UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"` - - // Controls how the autoscaler computes recommended resources. - // The resource policy may be used to set constraints on the recommendations - // for individual containers. If not specified, the autoscaler computes recommended - // resources for all containers in the pod, without additional constraints. - // +optional - ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"` -} - -// PodUpdatePolicy describes the rules on how changes are applied to the pods. -type PodUpdatePolicy struct { - // Controls when autoscaler applies changes to the pod resources. - // The default is 'Auto'. - // +optional - UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"` -} - -// UpdateMode controls when autoscaler applies changes to the pod resoures. -type UpdateMode string - -const ( - // UpdateModeOff means that autoscaler never changes Pod resources. - // The recommender still sets the recommended resources in the - // VerticalPodAutoscaler object. This can be used for a "dry run". - UpdateModeOff UpdateMode = "Off" - // UpdateModeInitial means that autoscaler only assigns resources on pod - // creation and does not change them during the lifetime of the pod. - UpdateModeInitial UpdateMode = "Initial" - // UpdateModeRecreate means that autoscaler assigns resources on pod - // creation and additionally can update them during the lifetime of the - // pod by deleting and recreating the pod. - UpdateModeRecreate UpdateMode = "Recreate" - // UpdateModeAuto means that autoscaler assigns resources on pod creation - // and additionally can update them during the lifetime of the pod, - // using any available update method. Currently this is equivalent to - // Recreate, which is the only available update method. - UpdateModeAuto UpdateMode = "Auto" -) - -// PodResourcePolicy controls how autoscaler computes the recommended resources -// for containers belonging to the pod. There can be at most one entry for every -// named container and optionally a single wildcard entry with `containerName` = '*', -// which handles all containers that don't have individual policies. -type PodResourcePolicy struct { - // Per-container resource policies. - // +optional - // +patchMergeKey=containerName - // +patchStrategy=merge - ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"` -} - -// ContainerResourcePolicy controls how autoscaler computes the recommended -// resources for a specific container. -type ContainerResourcePolicy struct { - // Name of the container or DefaultContainerResourcePolicy, in which - // case the policy is used by the containers that don't have their own - // policy specified. - ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"` - // Whether autoscaler is enabled for the container. The default is "Auto". - // +optional - Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"` - // Specifies the minimal amount of resources that will be recommended - // for the container. The default is no minimum. - // +optional - MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"` - // Specifies the maximum amount of resources that will be recommended - // for the container. The default is no maximum. - // +optional - MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"` -} - -const ( - // DefaultContainerResourcePolicy can be passed as - // ContainerResourcePolicy.ContainerName to specify the default policy. - DefaultContainerResourcePolicy = "*" -) - -// ContainerScalingMode controls whether autoscaler is enabled for a specific -// container. -type ContainerScalingMode string - -const ( - // ContainerScalingModeAuto means autoscaling is enabled for a container. - ContainerScalingModeAuto ContainerScalingMode = "Auto" - // ContainerScalingModeOff means autoscaling is disabled for a container. - ContainerScalingModeOff ContainerScalingMode = "Off" -) - -// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. -type VerticalPodAutoscalerStatus struct { - // The most recently computed amount of resources recommended by the - // autoscaler for the controlled pods. - // +optional - Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"` - - // Conditions is the set of conditions required for this autoscaler to scale its target, - // and indicates whether or not those conditions are met. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"` -} - -// RecommendedPodResources is the recommendation of resources computed by -// autoscaler. It contains a recommendation for each container in the pod -// (except for those with `ContainerScalingMode` set to 'Off'). -type RecommendedPodResources struct { - // Resources recommended by the autoscaler for each container. - // +optional - ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"` -} - -// RecommendedContainerResources is the recommendation of resources computed by -// autoscaler for a specific container. Respects the container resource policy -// if present in the spec. In particular the recommendation is not produced for -// containers with `ContainerScalingMode` set to 'Off'. -type RecommendedContainerResources struct { - // Name of the container. - ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"` - // Recommended amount of resources. - Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"` - // Minimum recommended amount of resources. - // This amount is not guaranteed to be sufficient for the application to operate in a stable way, however - // running with less resources is likely to have significant impact on performance/availability. - // +optional - LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"` - // Maximum recommended amount of resources. - // Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum - // amount of application is actually capable of consuming. - // +optional - UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"` -} - -// VerticalPodAutoscalerConditionType are the valid conditions of -// a VerticalPodAutoscaler. -type VerticalPodAutoscalerConditionType string - -var ( - // RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation. - RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided" -) - -// VerticalPodAutoscalerCondition describes the state of -// a VerticalPodAutoscaler at a certain point. -type VerticalPodAutoscalerCondition struct { - // type describes the current condition - Type VerticalPodAutoscalerConditionType `json:"type" protobuf:"bytes,1,name=type"` - // status is the status of the condition (True, False, Unknown) - Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,name=status"` - // lastTransitionTime is the last time the condition transitioned from - // one status to another - // +optional - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // reason is the reason for the condition's last transition. - // +optional - Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` - // message is a human-readable explanation containing details about - // the transition - // +optional - Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go index fe67bb1b487e..6fa9385c234f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go @@ -27,18 +27,6 @@ package v2beta1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. -var map_ContainerResourcePolicy = map[string]string{ - "": "ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.", - "containerName": "Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don't have their own policy specified.", - "mode": "Whether autoscaler is enabled for the container. The default is \"Auto\".", - "minAllowed": "Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.", - "maxAllowed": "Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.", -} - -func (ContainerResourcePolicy) SwaggerDoc() map[string]string { - return map_ContainerResourcePolicy -} - var map_CrossVersionObjectReference = map[string]string{ "": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", "kind": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", @@ -182,24 +170,6 @@ func (ObjectMetricStatus) SwaggerDoc() map[string]string { return map_ObjectMetricStatus } -var map_PodResourcePolicy = map[string]string{ - "": "PodResourcePolicy controls how autoscaler computes the recommended resources for containers belonging to the pod. There can be at most one entry for every named container and optionally a single wildcard entry with `containerName` = '*', which handles all containers that don't have individual policies.", - "containerPolicies": "Per-container resource policies.", -} - -func (PodResourcePolicy) SwaggerDoc() map[string]string { - return map_PodResourcePolicy -} - -var map_PodUpdatePolicy = map[string]string{ - "": "PodUpdatePolicy describes the rules on how changes are applied to the pods.", - "updateMode": "Controls when autoscaler applies changes to the pod resources. The default is 'Auto'.", -} - -func (PodUpdatePolicy) SwaggerDoc() map[string]string { - return map_PodUpdatePolicy -} - var map_PodsMetricSource = map[string]string{ "": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", "metricName": "metricName is the name of the metric in question", @@ -220,27 +190,6 @@ func (PodsMetricStatus) SwaggerDoc() map[string]string { return map_PodsMetricStatus } -var map_RecommendedContainerResources = map[string]string{ - "": "RecommendedContainerResources is the recommendation of resources computed by autoscaler for a specific container. Respects the container resource policy if present in the spec. In particular the recommendation is not produced for containers with `ContainerScalingMode` set to 'Off'.", - "containerName": "Name of the container.", - "target": "Recommended amount of resources.", - "lowerBound": "Minimum recommended amount of resources. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability.", - "upperBound": "Maximum recommended amount of resources. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.", -} - -func (RecommendedContainerResources) SwaggerDoc() map[string]string { - return map_RecommendedContainerResources -} - -var map_RecommendedPodResources = map[string]string{ - "": "RecommendedPodResources is the recommendation of resources computed by autoscaler. It contains a recommendation for each container in the pod (except for those with `ContainerScalingMode` set to 'Off').", - "containerRecommendations": "Resources recommended by the autoscaler for each container.", -} - -func (RecommendedPodResources) SwaggerDoc() map[string]string { - return map_RecommendedPodResources -} - var map_ResourceMetricSource = map[string]string{ "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", "name": "name is the name of the resource in question.", @@ -263,59 +212,4 @@ func (ResourceMetricStatus) SwaggerDoc() map[string]string { return map_ResourceMetricStatus } -var map_VerticalPodAutoscaler = map[string]string{ - "": "VerticalPodAutoscaler is the configuration for a vertical pod autoscaler, which automatically manages pod resources based on historical and real time resource utilization.", - "metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "spec": "Specification of the behavior of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "status": "Current information about the autoscaler.", -} - -func (VerticalPodAutoscaler) SwaggerDoc() map[string]string { - return map_VerticalPodAutoscaler -} - -var map_VerticalPodAutoscalerCondition = map[string]string{ - "": "VerticalPodAutoscalerCondition describes the state of a VerticalPodAutoscaler at a certain point.", - "type": "type describes the current condition", - "status": "status is the status of the condition (True, False, Unknown)", - "lastTransitionTime": "lastTransitionTime is the last time the condition transitioned from one status to another", - "reason": "reason is the reason for the condition's last transition.", - "message": "message is a human-readable explanation containing details about the transition", -} - -func (VerticalPodAutoscalerCondition) SwaggerDoc() map[string]string { - return map_VerticalPodAutoscalerCondition -} - -var map_VerticalPodAutoscalerList = map[string]string{ - "": "VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.", - "metadata": "metadata is the standard list metadata.", - "items": "items is the list of vertical pod autoscaler objects.", -} - -func (VerticalPodAutoscalerList) SwaggerDoc() map[string]string { - return map_VerticalPodAutoscalerList -} - -var map_VerticalPodAutoscalerSpec = map[string]string{ - "": "VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.", - "selector": "A label query that determines the set of pods controlled by the Autoscaler. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "updatePolicy": "Describes the rules on how changes are applied to the pods. If not specified, all fields in the `PodUpdatePolicy` are set to their default values.", - "resourcePolicy": "Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.", -} - -func (VerticalPodAutoscalerSpec) SwaggerDoc() map[string]string { - return map_VerticalPodAutoscalerSpec -} - -var map_VerticalPodAutoscalerStatus = map[string]string{ - "": "VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.", - "recommendation": "The most recently computed amount of resources recommended by the autoscaler for the controlled pods.", - "conditions": "Conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", -} - -func (VerticalPodAutoscalerStatus) SwaggerDoc() map[string]string { - return map_VerticalPodAutoscalerStatus -} - // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go index 56fa1cec5567..fd46bd8921c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go @@ -21,50 +21,10 @@ limitations under the License. package v2beta1 import ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) { - *out = *in - if in.Mode != nil { - in, out := &in.Mode, &out.Mode - if *in == nil { - *out = nil - } else { - *out = new(ContainerScalingMode) - **out = **in - } - } - if in.MinAllowed != nil { - in, out := &in.MinAllowed, &out.MinAllowed - *out = make(v1.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.MaxAllowed != nil { - in, out := &in.MaxAllowed, &out.MaxAllowed - *out = make(v1.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy. -func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy { - if in == nil { - return nil - } - out := new(ContainerResourcePolicy) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { *out = *in @@ -89,7 +49,7 @@ func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { if *in == nil { *out = nil } else { - *out = new(meta_v1.LabelSelector) + *out = new(v1.LabelSelector) (*in).DeepCopyInto(*out) } } @@ -132,7 +92,7 @@ func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { if *in == nil { *out = nil } else { - *out = new(meta_v1.LabelSelector) + *out = new(v1.LabelSelector) (*in).DeepCopyInto(*out) } } @@ -457,54 +417,6 @@ func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) { - *out = *in - if in.ContainerPolicies != nil { - in, out := &in.ContainerPolicies, &out.ContainerPolicies - *out = make([]ContainerResourcePolicy, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy. -func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy { - if in == nil { - return nil - } - out := new(PodResourcePolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) { - *out = *in - if in.UpdateMode != nil { - in, out := &in.UpdateMode, &out.UpdateMode - if *in == nil { - *out = nil - } else { - *out = new(UpdateMode) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy. -func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy { - if in == nil { - return nil - } - out := new(PodUpdatePolicy) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) { *out = *in @@ -539,66 +451,6 @@ func (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) { - *out = *in - if in.Target != nil { - in, out := &in.Target, &out.Target - *out = make(v1.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.LowerBound != nil { - in, out := &in.LowerBound, &out.LowerBound - *out = make(v1.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - if in.UpperBound != nil { - in, out := &in.UpperBound, &out.UpperBound - *out = make(v1.ResourceList, len(*in)) - for key, val := range *in { - (*out)[key] = val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources. -func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources { - if in == nil { - return nil - } - out := new(RecommendedContainerResources) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) { - *out = *in - if in.ContainerRecommendations != nil { - in, out := &in.ContainerRecommendations, &out.ContainerRecommendations - *out = make([]RecommendedContainerResources, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources. -func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources { - if in == nil { - return nil - } - out := new(RecommendedPodResources) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) { *out = *in @@ -658,156 +510,3 @@ func (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus { in.DeepCopyInto(out) return out } - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler. -func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler { - if in == nil { - return nil - } - out := new(VerticalPodAutoscaler) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VerticalPodAutoscaler) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition. -func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]VerticalPodAutoscaler, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList. -func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VerticalPodAutoscalerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) { - *out = *in - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - if in.UpdatePolicy != nil { - in, out := &in.UpdatePolicy, &out.UpdatePolicy - if *in == nil { - *out = nil - } else { - *out = new(PodUpdatePolicy) - (*in).DeepCopyInto(*out) - } - } - if in.ResourcePolicy != nil { - in, out := &in.ResourcePolicy, &out.ResourcePolicy - if *in == nil { - *out = nil - } else { - *out = new(PodResourcePolicy) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec. -func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) { - *out = *in - if in.Recommendation != nil { - in, out := &in.Recommendation, &out.Recommendation - if *in == nil { - *out = nil - } else { - *out = new(RecommendedPodResources) - (*in).DeepCopyInto(*out) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]VerticalPodAutoscalerCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus. -func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus { - if in == nil { - return nil - } - out := new(VerticalPodAutoscalerStatus) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index 8ab8188f6816..0dc76fa09a28 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -532,7 +532,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/mailru/easyjson/buffer", @@ -2036,23 +2036,23 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types_jsonschema.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types_jsonschema.go index 9edd276d84c1..9776731cf998 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types_jsonschema.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types_jsonschema.go @@ -62,6 +62,19 @@ type JSON struct { Raw []byte `protobuf:"bytes,1,opt,name=raw"` } +// OpenAPISchemaType is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +// +// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators +func (_ JSON) OpenAPISchemaType() []string { + // TODO: return actual types when anyOf is supported + return []string{} +} + +// OpenAPISchemaFormat is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +func (_ JSON) OpenAPISchemaFormat() string { return "" } + // JSONSchemaURL represents a schema url. type JSONSchemaURL string @@ -72,6 +85,19 @@ type JSONSchemaPropsOrArray struct { JSONSchemas []JSONSchemaProps `protobuf:"bytes,2,rep,name=jSONSchemas"` } +// OpenAPISchemaType is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +// +// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators +func (_ JSONSchemaPropsOrArray) OpenAPISchemaType() []string { + // TODO: return actual types when anyOf is supported + return []string{} +} + +// OpenAPISchemaFormat is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +func (_ JSONSchemaPropsOrArray) OpenAPISchemaFormat() string { return "" } + // JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. // Defaults to true for the boolean property. type JSONSchemaPropsOrBool struct { @@ -79,6 +105,19 @@ type JSONSchemaPropsOrBool struct { Schema *JSONSchemaProps `protobuf:"bytes,2,opt,name=schema"` } +// OpenAPISchemaType is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +// +// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators +func (_ JSONSchemaPropsOrBool) OpenAPISchemaType() []string { + // TODO: return actual types when anyOf is supported + return []string{} +} + +// OpenAPISchemaFormat is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +func (_ JSONSchemaPropsOrBool) OpenAPISchemaFormat() string { return "" } + // JSONSchemaDependencies represent a dependencies property. type JSONSchemaDependencies map[string]JSONSchemaPropsOrStringArray @@ -88,6 +127,19 @@ type JSONSchemaPropsOrStringArray struct { Property []string `protobuf:"bytes,2,rep,name=property"` } +// OpenAPISchemaType is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +// +// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators +func (_ JSONSchemaPropsOrStringArray) OpenAPISchemaType() []string { + // TODO: return actual types when anyOf is supported + return []string{} +} + +// OpenAPISchemaFormat is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +func (_ JSONSchemaPropsOrStringArray) OpenAPISchemaFormat() string { return "" } + // JSONSchemaDefinitions contains the models explicitly defined in this spec. type JSONSchemaDefinitions map[string]JSONSchemaProps diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go index 25c8f04d9391..7be3711dc17a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go @@ -17,7 +17,6 @@ limitations under the License. package apiserver import ( - encodingjson "encoding/json" "fmt" "net/http" "path" @@ -821,6 +820,8 @@ func (v *unstructuredSchemaCoercer) apply(u *unstructured.Unstructured) error { return nil } +var encodingjson = json.CaseSensitiveJsonIterator() + func getObjectMeta(u *unstructured.Unstructured, dropMalformedFields bool) (*metav1.ObjectMeta, bool, error) { metadata, found := u.UnstructuredContent()["metadata"] if !found { @@ -862,6 +863,7 @@ func getObjectMeta(u *unstructured.Unstructured, dropMalformedFields bool) (*met } } } + return accumulatedObjectMeta, true, nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go index 3f0635797f49..a6d6e23a1231 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go @@ -17,7 +17,6 @@ limitations under the License. package apiserver import ( - encodingjson "encoding/json" "math/rand" "reflect" "testing" @@ -136,7 +135,7 @@ func TestRoundtripObjectMeta(t *testing.T) { } // TestMalformedObjectMetaFields sets a number of different random values and types for all -// metadata fields. If encoding/json.Unmarshal accepts them, compare that getObjectMeta +// metadata fields. If json.Unmarshal accepts them, compare that getObjectMeta // gives the same result. Otherwise, drop malformed fields. func TestMalformedObjectMetaFields(t *testing.T) { fuzzer := fuzzer.FuzzerFor(metafuzzer.Funcs, rand.NewSource(rand.Int63()), serializer.NewCodecFactory(runtime.NewScheme())) @@ -277,3 +276,33 @@ func TestGetObjectMetaNils(t *testing.T) { t.Errorf("expected labels to be %v, got %v", expected, got) } } + +func TestGetObjectMeta(t *testing.T) { + for i := 0; i < 100; i++ { + u := &unstructured.Unstructured{Object: map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "good", + "Name": "bad1", + "nAme": "bad2", + "naMe": "bad3", + "namE": "bad4", + + "namespace": "good", + "Namespace": "bad1", + "nAmespace": "bad2", + "naMespace": "bad3", + "namEspace": "bad4", + + "creationTimestamp": "a", + }, + }} + + meta, _, err := getObjectMeta(u, true) + if err != nil { + t.Fatal(err) + } + if meta.Name != "good" || meta.Namespace != "good" { + t.Fatalf("got %#v", meta) + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go index e82ff07e5687..d9e8fd97cbdf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go @@ -23,6 +23,7 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" @@ -106,6 +107,59 @@ func newREST(resource schema.GroupResource, listKind schema.GroupVersionKind, st // Implement CategoriesProvider var _ rest.CategoriesProvider = &REST{} +// List returns a list of items matching labels and field according to the store's PredicateFunc. +func (e *REST) List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) { + l, err := e.Store.List(ctx, options) + if err != nil { + return nil, err + } + + // Shallow copy ObjectMeta in returned list for each item. Native types have `Items []Item` fields and therefore + // implicitly shallow copy ObjectMeta. The generic store sets the self-link for each item. So this is necessary + // to avoid mutation of the objects from the cache. + if ul, ok := l.(*unstructured.UnstructuredList); ok { + for i := range ul.Items { + shallowCopyObjectMeta(&ul.Items[i]) + } + } + + return l, nil +} + +func (r *REST) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + o, err := r.Store.Get(ctx, name, options) + if err != nil { + return nil, err + } + if u, ok := o.(*unstructured.Unstructured); ok { + shallowCopyObjectMeta(u) + } + return o, nil +} + +func shallowCopyObjectMeta(u runtime.Unstructured) { + obj := shallowMapDeepCopy(u.UnstructuredContent()) + if metadata, ok := obj["metadata"]; ok { + if metadata, ok := metadata.(map[string]interface{}); ok { + obj["metadata"] = shallowMapDeepCopy(metadata) + u.SetUnstructuredContent(obj) + } + } +} + +func shallowMapDeepCopy(in map[string]interface{}) map[string]interface{} { + if in == nil { + return nil + } + + out := make(map[string]interface{}, len(in)) + for k, v := range in { + out[k] = v + } + + return out +} + // Categories implements the CategoriesProvider interface. Returns a list of categories a resource is part of. func (r *REST) Categories() []string { return r.categories diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go index 73585b42c424..a53c4ca94a24 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go @@ -226,7 +226,7 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta t.Fatal(err) } if e, a := createdObjectMeta.GetUID(), deletedObjectMeta.GetUID(); e != a { - t.Errorf("expected %v, got %v", e, a) + t.Errorf("expected equal UID for (expected) %v, and (actual) %v", createdNoxuInstance, watchEvent.Object) } case <-time.After(5 * time.Second): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/objectmeta_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/objectmeta_test.go index d066556080ba..50f656bf1208 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/objectmeta_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/objectmeta_test.go @@ -62,8 +62,8 @@ func TestPostInvalidObjectMeta(t *testing.T) { t.Fatalf("expected APIStatus error, but got: %#v", err) } else if !errors.IsBadRequest(err) { t.Fatalf("expected BadRequst error, but got: %v", errors.ReasonForError(err)) - } else if !strings.Contains(status.Status().Message, "json: cannot unmarshal") { - t.Fatalf("expected 'json: cannot unmarshal' error message, got: %v", status.Status().Message) + } else if !strings.Contains(status.Status().Message, "cannot be handled") { + t.Fatalf("expected 'cannot be handled' error message, got: %v", status.Status().Message) } unstructured.SetNestedField(obj.UnstructuredContent(), map[string]interface{}{"bar": "abc"}, "metadata", "labels") diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go index 987fbc5eab22..bce63a4a5aba 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go @@ -362,7 +362,7 @@ func TestValidationSchema(t *testing.T) { Required: []string{"spec"}, Description: "This is a description at the root of the schema", } - noxuDefinition, err = testserver.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) + _, err = testserver.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) if err != nil { t.Fatalf("unable to created crd %v: %v", noxuDefinition.Name, err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD index 6ea1e1ec92b1..3e55438bdc4a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD @@ -19,7 +19,6 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/cmd/server:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go index b5c24fe1a128..f341b002f77f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go @@ -23,7 +23,6 @@ import ( apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" @@ -191,6 +190,35 @@ func NewCurletInstance(namespace, name string) *unstructured.Unstructured { } } +func servedVersions(crd *apiextensionsv1beta1.CustomResourceDefinition) []string { + if len(crd.Spec.Versions) == 0 { + return []string{crd.Spec.Version} + } + var versions []string + for _, v := range crd.Spec.Versions { + if v.Served { + versions = append(versions, v.Name) + } + } + return versions +} + +func existsInDiscovery(crd *apiextensionsv1beta1.CustomResourceDefinition, apiExtensionsClient clientset.Interface, version string) (bool, error) { + groupResource, err := apiExtensionsClient.Discovery().ServerResourcesForGroupVersion(crd.Spec.Group + "/" + version) + if err != nil { + if errors.IsNotFound(err) { + return false, nil + } + return false, err + } + for _, g := range groupResource.APIResources { + if g.Name == crd.Spec.Names.Plural { + return true, nil + } + } + return false, nil +} + // CreateNewCustomResourceDefinitionWatchUnsafe creates the CRD and makes sure // the apiextension apiserver has installed the CRD. But it's not safe to watch // the created CR. Please call CreateNewCustomResourceDefinition if you need to @@ -201,19 +229,15 @@ func CreateNewCustomResourceDefinitionWatchUnsafe(crd *apiextensionsv1beta1.Cust return nil, err } - // wait until the resource appears in discovery - err = wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { - resourceList, err := apiExtensionsClient.Discovery().ServerResourcesForGroupVersion(crd.Spec.Group + "/" + crd.Spec.Version) + // wait until all resources appears in discovery + for _, version := range servedVersions(crd) { + err := wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { + return existsInDiscovery(crd, apiExtensionsClient, version) + }) if err != nil { - return false, nil - } - for _, resource := range resourceList.APIResources { - if resource.Name == crd.Spec.Names.Plural { - return true, nil - } + return nil, err } - return false, nil - }) + } return crd, err } @@ -234,48 +258,35 @@ func CreateNewCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceD // For this test, we'll actually cycle, "list/watch/create/delete" until we get an RV from list that observes the create and not an error. // This way all the tests that are checking for watches don't have to worry about RV too old problems because crazy things *could* happen // before like the created RV could be too old to watch. - var primingErr error - wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { - primingErr = checkForWatchCachePrimed(crd, dynamicClientSet) - if primingErr == nil { - return true, nil + for _, version := range servedVersions(crd) { + err := wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { + return isWatchCachePrimed(crd, dynamicClientSet, version) + }) + if err != nil { + return nil, err } - return false, nil - }) - if primingErr != nil { - return nil, primingErr } - return crd, nil } -func checkForWatchCachePrimed(crd *apiextensionsv1beta1.CustomResourceDefinition, dynamicClientSet dynamic.Interface) error { +// isWatchCachePrimed returns true if the watch is primed for an specified version of CRD watch +func isWatchCachePrimed(crd *apiextensionsv1beta1.CustomResourceDefinition, dynamicClientSet dynamic.Interface, version string) (bool, error) { ns := "" if crd.Spec.Scope != apiextensionsv1beta1.ClusterScoped { ns = "aval" } - gvr := schema.GroupVersionResource{Group: crd.Spec.Group, Version: crd.Spec.Version, Resource: crd.Spec.Names.Plural} + gvr := schema.GroupVersionResource{Group: crd.Spec.Group, Version: version, Resource: crd.Spec.Names.Plural} var resourceClient dynamic.ResourceInterface if crd.Spec.Scope != apiextensionsv1beta1.ClusterScoped { resourceClient = dynamicClientSet.Resource(gvr).Namespace(ns) } else { resourceClient = dynamicClientSet.Resource(gvr) } - - initialList, err := resourceClient.List(metav1.ListOptions{}) - if err != nil { - return err - } - initialListListMeta, err := meta.ListAccessor(initialList) - if err != nil { - return err - } - instanceName := "setup-instance" instance := &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": crd.Spec.Group + "/" + crd.Spec.Version, + "apiVersion": crd.Spec.Group + "/" + version, "kind": crd.Spec.Names.Kind, "metadata": map[string]interface{}{ "namespace": ns, @@ -289,29 +300,32 @@ func checkForWatchCachePrimed(crd *apiextensionsv1beta1.CustomResourceDefinition "spec": map[string]interface{}{}, }, } - if _, err := resourceClient.Create(instance); err != nil { - return err + createdInstance, err := resourceClient.Create(instance) + if err != nil { + return false, err + } + err = resourceClient.Delete(createdInstance.GetName(), nil) + if err != nil { + return false, err } - // we created something, clean it up - defer func() { - resourceClient.Delete(instanceName, nil) - }() - noxuWatch, err := resourceClient.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()}) + noxuWatch, err := resourceClient.Watch(metav1.ListOptions{ResourceVersion: createdInstance.GetResourceVersion()}) if err != nil { - return err + return false, err } defer noxuWatch.Stop() select { case watchEvent := <-noxuWatch.ResultChan(): - if watch.Added == watchEvent.Type { - return nil + if watch.Error == watchEvent.Type { + return false, nil } - return fmt.Errorf("expected add, but got %#v", watchEvent) - + if watch.Deleted != watchEvent.Type { + return false, fmt.Errorf("expected DELETE, but got %#v", watchEvent) + } + return true, nil case <-time.After(5 * time.Second): - return fmt.Errorf("gave up waiting for watch event") + return false, fmt.Errorf("gave up waiting for watch event") } } @@ -319,23 +333,16 @@ func DeleteCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceDefi if err := apiExtensionsClient.Apiextensions().CustomResourceDefinitions().Delete(crd.Name, nil); err != nil { return err } - err := wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { - groupResource, err := apiExtensionsClient.Discovery().ServerResourcesForGroupVersion(crd.Spec.Group + "/" + crd.Spec.Version) + for _, version := range servedVersions(crd) { + err := wait.PollImmediate(500*time.Millisecond, 30*time.Second, func() (bool, error) { + exists, err := existsInDiscovery(crd, apiExtensionsClient, version) + return !exists, err + }) if err != nil { - if errors.IsNotFound(err) { - return true, nil - - } - return false, err - } - for _, g := range groupResource.APIResources { - if g.Name == crd.Spec.Names.Plural { - return false, nil - } + return err } - return true, nil - }) - return err + } + return nil } func CreateNewScaleClient(crd *apiextensionsv1beta1.CustomResourceDefinition, config *rest.Config) (scale.ScalesGetter, error) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json index 4d1d9d007e1c..b580e4b3175f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json @@ -92,7 +92,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/modern-go/concurrent", @@ -180,7 +180,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go index c88efd1bd22e..3a28f743118c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go @@ -301,15 +301,11 @@ func v1alpha1FuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { case 2: r.Cells[i] = c.RandBool() case 3: - // maps roundtrip as map[interface{}]interface{}, but the json codec cannot encode that - // TODO: get maps to roundtrip properly - /* - x := map[string]interface{}{} - for j := c.Intn(10) + 1; j >= 0; j-- { - x[c.RandString()] = c.RandString() - } - r.Cells[i] = x - */ + x := map[string]interface{}{} + for j := c.Intn(10) + 1; j >= 0; j-- { + x[c.RandString()] = c.RandString() + } + r.Cells[i] = x case 4: x := make([]interface{}, c.Intn(10)) for i := range x { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 186db1871e4f..b4f04f884f18 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -21,9 +21,9 @@ go_test( embed = [":go_default_library"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", - "//vendor/github.com/json-iterator/go:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/group_version_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/group_version_test.go index 5f2bc0cbc511..ab62ff424cbe 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/group_version_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/group_version_test.go @@ -21,9 +21,7 @@ import ( "reflect" "testing" - "github.com/ugorji/go/codec" - - serializerjson "k8s.io/apimachinery/pkg/runtime/serializer/json" + k8s_json "k8s.io/apimachinery/pkg/runtime/serializer/json" ) type GroupVersionHolder struct { @@ -49,11 +47,9 @@ func TestGroupVersionUnmarshalJSON(t *testing.T) { t.Errorf("JSON codec failed to unmarshal input '%s': expected %+v, got %+v", c.input, c.expect, result.GV) } // test the json-iterator codec - // if err := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(c.input, &result); err != nil { - // t.Errorf("json-iterator codec failed to unmarshal input '%v': %v", c.input, err) - // test the Ugorji codec - if err := codec.NewDecoderBytes(c.input, serializerjson.NewUgorjiHandler()).Decode(&result); err != nil { - t.Errorf("Ugorji codec failed to unmarshal input '%v': %v", c.input, err) + iter := k8s_json.CaseSensitiveJsonIterator() + if err := iter.Unmarshal(c.input, &result); err != nil { + t.Errorf("json-iterator codec failed to unmarshal input '%v': %v", c.input, err) } if !reflect.DeepEqual(result.GV, c.expect) { t.Errorf("json-iterator codec failed to unmarshal input '%s': expected %+v, got %+v", c.input, c.expect, result.GV) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_test.go index 0ec0ce865478..ed5f20c4057f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_test.go @@ -21,9 +21,7 @@ import ( "reflect" "testing" - "github.com/ugorji/go/codec" - - serializerjson "k8s.io/apimachinery/pkg/runtime/serializer/json" + k8s_json "k8s.io/apimachinery/pkg/runtime/serializer/json" ) func TestVerbsUgorjiMarshalJSON(t *testing.T) { @@ -47,7 +45,7 @@ func TestVerbsUgorjiMarshalJSON(t *testing.T) { } } -func TestVerbsUgorjiUnmarshalJSON(t *testing.T) { +func TestVerbsUJsonIterUnmarshalJSON(t *testing.T) { cases := []struct { input string result APIResource @@ -58,10 +56,10 @@ func TestVerbsUgorjiUnmarshalJSON(t *testing.T) { {`{"verbs":["delete"]}`, APIResource{Verbs: Verbs([]string{"delete"})}}, } + iter := k8s_json.CaseSensitiveJsonIterator() for i, c := range cases { var result APIResource - // if err := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal([]byte(c.input), &result); err != nil { - if err := codec.NewDecoderBytes([]byte(c.input), serializerjson.NewUgorjiHandler()).Decode(&result); err != nil { + if err := iter.Unmarshal([]byte(c.input), &result); err != nil { t.Errorf("[%d] Failed to unmarshal input '%v': %v", i, c.input, err) } if !reflect.DeepEqual(result, c.result) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go index 114e2008a5a3..068d3f708e3c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go @@ -19,9 +19,11 @@ package json import ( "encoding/json" "io" + "strconv" + "unsafe" "github.com/ghodss/yaml" - "github.com/ugorji/go/codec" + jsoniter "github.com/json-iterator/go" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -30,12 +32,6 @@ import ( utilyaml "k8s.io/apimachinery/pkg/util/yaml" ) -func NewUgorjiHandler() *codec.JsonHandle { - codecOptions := &codec.JsonHandle{} - codecOptions.SignedInteger = true - return codecOptions -} - // NewSerializer creates a JSON serializer that handles encoding versioned objects into the proper JSON form. If typer // is not nil, the object has the group, version, and kind fields set. func NewSerializer(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, pretty bool) *Serializer { @@ -72,6 +68,45 @@ type Serializer struct { var _ runtime.Serializer = &Serializer{} var _ recognizer.RecognizingDecoder = &Serializer{} +func init() { + // Force jsoniter to decode number to interface{} via ints, if possible. + decodeNumberAsInt64IfPossible := func(ptr unsafe.Pointer, iter *jsoniter.Iterator) { + switch iter.WhatIsNext() { + case jsoniter.NumberValue: + var number json.Number + iter.ReadVal(&number) + i64, err := strconv.ParseInt(string(number), 10, 64) + if err == nil { + *(*interface{})(ptr) = i64 + return + } + f64, err := strconv.ParseFloat(string(number), 64) + if err == nil { + *(*interface{})(ptr) = f64 + return + } + // Not much we can do here. + default: + *(*interface{})(ptr) = iter.Read() + } + } + jsoniter.RegisterTypeDecoderFunc("interface {}", decodeNumberAsInt64IfPossible) +} + +// CaseSensitiveJsonIterator returns a jsoniterator API that's configured to be +// case-sensitive when unmarshalling, and otherwise compatible with +// the encoding/json standard library. +func CaseSensitiveJsonIterator() jsoniter.API { + return jsoniter.Config{ + EscapeHTML: true, + SortMapKeys: true, + ValidateJsonRawMessage: true, + CaseSensitive: true, + }.Froze() +} + +var caseSensitiveJsonIterator = CaseSensitiveJsonIterator() + // gvkWithDefaults returns group kind and version defaulting from provided default func gvkWithDefaults(actual, defaultGVK schema.GroupVersionKind) schema.GroupVersionKind { if len(actual.Kind) == 0 { @@ -136,8 +171,7 @@ func (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, i types, _, err := s.typer.ObjectKinds(into) switch { case runtime.IsNotRegisteredError(err), isUnstructured: - // if err := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(data, into); err != nil { - if err := codec.NewDecoderBytes(data, NewUgorjiHandler()).Decode(into); err != nil { + if err := caseSensitiveJsonIterator.Unmarshal(data, into); err != nil { return nil, actual, err } return into, actual, nil @@ -161,8 +195,7 @@ func (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, i return nil, actual, err } - // if err := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(data, obj); err != nil { - if err := codec.NewDecoderBytes(data, NewUgorjiHandler()).Decode(obj); err != nil { + if err := caseSensitiveJsonIterator.Unmarshal(data, obj); err != nil { return nil, actual, err } return obj, actual, nil @@ -171,8 +204,7 @@ func (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, i // Encode serializes the provided object to the given writer. func (s *Serializer) Encode(obj runtime.Object, w io.Writer) error { if s.yaml { - // json, err := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(obj) - json, err := json.Marshal(obj) + json, err := caseSensitiveJsonIterator.Marshal(obj) if err != nil { return err } @@ -185,8 +217,7 @@ func (s *Serializer) Encode(obj runtime.Object, w io.Writer) error { } if s.pretty { - // data, err := jsoniter.ConfigCompatibleWithStandardLibrary.MarshalIndent(obj, "", " ") - data, err := json.MarshalIndent(obj, "", " ") + data, err := caseSensitiveJsonIterator.MarshalIndent(obj, "", " ") if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_test.go index c8ae5550c526..b3d629a063ce 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_test.go @@ -30,10 +30,31 @@ import ( type testDecodable struct { Other string - Value int `json:"value"` + Value int `json:"value"` + Spec DecodableSpec `json:"spec"` gvk schema.GroupVersionKind } +// DecodableSpec has 15 fields. json-iterator treats struct with more than 10 +// fields differently from struct that has less than 10 fields. +type DecodableSpec struct { + A int `json:"A"` + B int `json:"B"` + C int `json:"C"` + D int `json:"D"` + E int `json:"E"` + F int `json:"F"` + G int `json:"G"` + H int `json:"h"` + I int `json:"i"` + J int `json:"j"` + K int `json:"k"` + L int `json:"l"` + M int `json:"m"` + N int `json:"n"` + O int `json:"o"` +} + func (d *testDecodable) GetObjectKind() schema.ObjectKind { return d } func (d *testDecodable) SetGroupVersionKind(gvk schema.GroupVersionKind) { d.gvk = gvk } func (d *testDecodable) GroupVersionKind() schema.GroupVersionKind { return d.gvk } @@ -221,6 +242,28 @@ func TestDecode(t *testing.T) { }, }, }, + // Unmarshalling is case-sensitive + { + // "VaLue" should have been "value" + data: []byte(`{"kind":"Test","apiVersion":"other/blah","VaLue":1,"Other":"test"}`), + into: &testDecodable{}, + typer: &mockTyper{err: runtime.NewNotRegisteredErrForKind(schema.GroupVersionKind{Kind: "Test", Group: "other", Version: "blah"})}, + expectedGVK: &schema.GroupVersionKind{Kind: "Test", Group: "other", Version: "blah"}, + expectedObject: &testDecodable{ + Other: "test", + }, + }, + // Unmarshalling is case-sensitive for big struct. + { + // "b" should have been "B", "I" should have been "i" + data: []byte(`{"kind":"Test","apiVersion":"other/blah","spec": {"A": 1, "b": 2, "h": 3, "I": 4}}`), + into: &testDecodable{}, + typer: &mockTyper{err: runtime.NewNotRegisteredErrForKind(schema.GroupVersionKind{Kind: "Test", Group: "other", Version: "blah"})}, + expectedGVK: &schema.GroupVersionKind{Kind: "Test", Group: "other", Version: "blah"}, + expectedObject: &testDecodable{ + Spec: DecodableSpec{A: 1, H: 3}, + }, + }, } for i, test := range testCases { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json index 149ebc8a2d57..8a777ef756c2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json @@ -504,7 +504,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/mailru/easyjson/buffer", @@ -1764,23 +1764,23 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/client-go/discovery", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/BUILD index 96cf3fcba0bb..460ecab2ae52 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/BUILD @@ -15,6 +15,7 @@ go_library( "//vendor/k8s.io/api/admission/v1beta1:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go index d10f1935cd89..adfe9f37f3eb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go @@ -29,6 +29,7 @@ import ( admissionv1beta1 "k8s.io/api/admission/v1beta1" "k8s.io/api/admissionregistration/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" admissionmetrics "k8s.io/apiserver/pkg/admission/metrics" @@ -113,11 +114,24 @@ func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *v1beta if err != nil { return apierrors.NewInternalError(err) } + + var newVersionedObject runtime.Object + if _, ok := attr.VersionedObject.(*unstructured.Unstructured); ok { + // Custom Resources don't have corresponding Go struct's. + // They are represented as Unstructured. + newVersionedObject = &unstructured.Unstructured{} + } else { + newVersionedObject, err = a.plugin.scheme.New(attr.GetKind()) + if err != nil { + return apierrors.NewInternalError(err) + } + } // TODO: if we have multiple mutating webhooks, we can remember the json // instead of encoding and decoding for each one. - if _, _, err := a.plugin.jsonSerializer.Decode(patchedJS, nil, attr.VersionedObject); err != nil { + if _, _, err := a.plugin.jsonSerializer.Decode(patchedJS, nil, newVersionedObject); err != nil { return apierrors.NewInternalError(err) } + attr.VersionedObject = newVersionedObject a.plugin.scheme.Default(attr.VersionedObject) return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/plugin_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/plugin_test.go index 82c4e3972717..b60a62f3bd9d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/plugin_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/plugin_test.go @@ -18,13 +18,16 @@ package mutating import ( "net/url" + "reflect" "strings" "testing" "k8s.io/api/admission/v1beta1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" webhooktesting "k8s.io/apiserver/pkg/admission/plugin/webhook/testing" ) @@ -69,10 +72,22 @@ func TestAdmit(t *testing.T) { continue } - err = wh.Admit(webhooktesting.NewAttribute(ns)) + var attr admission.Attributes + if tt.IsCRD { + attr = webhooktesting.NewAttributeUnstructured(ns, tt.AdditionalLabels) + } else { + attr = webhooktesting.NewAttribute(ns, tt.AdditionalLabels) + } + + err = wh.Admit(attr) if tt.ExpectAllow != (err == nil) { t.Errorf("%s: expected allowed=%v, but got err=%v", tt.Name, tt.ExpectAllow, err) } + if tt.ExpectLabels != nil { + if !reflect.DeepEqual(tt.ExpectLabels, attr.GetObject().(metav1.Object).GetLabels()) { + t.Errorf("%s: expected labels '%v', but got '%v'", tt.Name, tt.ExpectLabels, attr.GetObject().(metav1.Object).GetLabels()) + } + } // ErrWebhookRejected is not an error for our purposes if tt.ErrorContains != "" { if err == nil || !strings.Contains(err.Error(), tt.ErrorContains) { @@ -127,7 +142,7 @@ func TestAdmitCachedClient(t *testing.T) { continue } - err = wh.Admit(webhooktesting.NewAttribute(ns)) + err = wh.Admit(webhooktesting.NewAttribute(ns, nil)) if tt.ExpectAllow != (err == nil) { t.Errorf("%s: expected allowed=%v, but got err=%v", tt.Name, tt.ExpectAllow, err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/BUILD index 46650326fea9..fcb3ce0967cd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/BUILD @@ -15,7 +15,9 @@ go_library( "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/testcerts:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/testcase.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/testcase.go index eb74a58f2474..96d696788ad1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/testcase.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/testcase.go @@ -22,7 +22,9 @@ import ( registrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/plugin/webhook/testcerts" "k8s.io/apiserver/pkg/authentication/user" @@ -74,36 +76,57 @@ func NewFakeDataSource(name string, webhooks []registrationv1beta1.Webhook, muta return client, informerFactory } +func newAttributesRecord(object metav1.Object, oldObject metav1.Object, kind schema.GroupVersionKind, namespace string, name string, resource string, labels map[string]string) admission.Attributes { + object.SetName(name) + object.SetNamespace(namespace) + objectLabels := map[string]string{resource + ".name": name} + for k, v := range labels { + objectLabels[k] = v + } + object.SetLabels(objectLabels) + + oldObject.SetName(name) + oldObject.SetNamespace(namespace) + + gvr := kind.GroupVersion().WithResource(resource) + subResource := "" + userInfo := user.DefaultInfo{ + Name: "webhook-test", + UID: "webhook-test", + } + + return admission.NewAttributesRecord(object.(runtime.Object), oldObject.(runtime.Object), kind, namespace, name, gvr, subResource, admission.Update, &userInfo) +} + // NewAttribute returns static admission Attributes for testing. -func NewAttribute(namespace string) admission.Attributes { +func NewAttribute(namespace string, labels map[string]string) admission.Attributes { // Set up a test object for the call - kind := corev1.SchemeGroupVersion.WithKind("Pod") - name := "my-pod" object := corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "pod.name": name, - }, - Name: name, - Namespace: namespace, - }, TypeMeta: metav1.TypeMeta{ APIVersion: "v1", Kind: "Pod", }, } - oldObject := corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, - } - operation := admission.Update - resource := corev1.Resource("pods").WithVersion("v1") - subResource := "" - userInfo := user.DefaultInfo{ - Name: "webhook-test", - UID: "webhook-test", - } + oldObject := corev1.Pod{} + kind := corev1.SchemeGroupVersion.WithKind("Pod") + name := "my-pod" - return admission.NewAttributesRecord(&object, &oldObject, kind, namespace, name, resource, subResource, operation, &userInfo) + return newAttributesRecord(&object, &oldObject, kind, namespace, name, "pod", labels) +} + +// NewAttributeUnstructured returns static admission Attributes for testing with custom resources. +func NewAttributeUnstructured(namespace string, labels map[string]string) admission.Attributes { + // Set up a test object for the call + object := unstructured.Unstructured{} + object.SetKind("TestCRD") + object.SetAPIVersion("custom.resource/v1") + oldObject := unstructured.Unstructured{} + oldObject.SetKind("TestCRD") + oldObject.SetAPIVersion("custom.resource/v1") + kind := object.GroupVersionKind() + name := "my-test-crd" + + return newAttributesRecord(&object, &oldObject, kind, namespace, name, "crd", labels) } type urlConfigGenerator struct { @@ -122,11 +145,14 @@ func (c urlConfigGenerator) ccfgURL(urlPath string) registrationv1beta1.WebhookC // Test is a webhook test case. type Test struct { - Name string - Webhooks []registrationv1beta1.Webhook - Path string - ExpectAllow bool - ErrorContains string + Name string + Webhooks []registrationv1beta1.Webhook + Path string + IsCRD bool + AdditionalLabels map[string]string + ExpectLabels map[string]string + ExpectAllow bool + ErrorContains string } // NewTestCases returns test cases with a given base url. @@ -158,6 +184,64 @@ func NewTestCases(url *url.URL) []Test { }}, ExpectAllow: true, }, + { + Name: "match & remove label", + Webhooks: []registrationv1beta1.Webhook{{ + Name: "removeLabel", + ClientConfig: ccfgSVC("removeLabel"), + Rules: matchEverythingRules, + NamespaceSelector: &metav1.LabelSelector{}, + }}, + ExpectAllow: true, + AdditionalLabels: map[string]string{"remove": "me"}, + ExpectLabels: map[string]string{"pod.name": "my-pod"}, + }, + { + Name: "match & add label", + Webhooks: []registrationv1beta1.Webhook{{ + Name: "addLabel", + ClientConfig: ccfgSVC("addLabel"), + Rules: matchEverythingRules, + NamespaceSelector: &metav1.LabelSelector{}, + }}, + ExpectAllow: true, + ExpectLabels: map[string]string{"pod.name": "my-pod", "added": "test"}, + }, + { + Name: "match CRD & add label", + Webhooks: []registrationv1beta1.Webhook{{ + Name: "addLabel", + ClientConfig: ccfgSVC("addLabel"), + Rules: matchEverythingRules, + NamespaceSelector: &metav1.LabelSelector{}, + }}, + IsCRD: true, + ExpectAllow: true, + ExpectLabels: map[string]string{"crd.name": "my-test-crd", "added": "test"}, + }, + { + Name: "match CRD & remove label", + Webhooks: []registrationv1beta1.Webhook{{ + Name: "removeLabel", + ClientConfig: ccfgSVC("removeLabel"), + Rules: matchEverythingRules, + NamespaceSelector: &metav1.LabelSelector{}, + }}, + IsCRD: true, + ExpectAllow: true, + AdditionalLabels: map[string]string{"remove": "me"}, + ExpectLabels: map[string]string{"crd.name": "my-test-crd"}, + }, + { + Name: "match & invalid mutation", + Webhooks: []registrationv1beta1.Webhook{{ + Name: "invalidMutation", + ClientConfig: ccfgSVC("invalidMutation"), + Rules: matchEverythingRules, + NamespaceSelector: &metav1.LabelSelector{}, + }}, + ErrorContains: "invalid character", + }, { Name: "match & disallow", Webhooks: []registrationv1beta1.Webhook{{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/webhook_server.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/webhook_server.go index 1736b4673122..a8bb1ac823c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/webhook_server.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/testing/webhook_server.go @@ -85,6 +85,36 @@ func webhookHandler(w http.ResponseWriter, r *http.Request) { Allowed: true, }, }) + case "/removeLabel": + w.Header().Set("Content-Type", "application/json") + pt := v1beta1.PatchTypeJSONPatch + json.NewEncoder(w).Encode(&v1beta1.AdmissionReview{ + Response: &v1beta1.AdmissionResponse{ + Allowed: true, + PatchType: &pt, + Patch: []byte(`[{"op": "remove", "path": "/metadata/labels/remove"}]`), + }, + }) + case "/addLabel": + w.Header().Set("Content-Type", "application/json") + pt := v1beta1.PatchTypeJSONPatch + json.NewEncoder(w).Encode(&v1beta1.AdmissionReview{ + Response: &v1beta1.AdmissionResponse{ + Allowed: true, + PatchType: &pt, + Patch: []byte(`[{"op": "add", "path": "/metadata/labels/added", "value": "test"}]`), + }, + }) + case "/invalidMutation": + w.Header().Set("Content-Type", "application/json") + pt := v1beta1.PatchTypeJSONPatch + json.NewEncoder(w).Encode(&v1beta1.AdmissionReview{ + Response: &v1beta1.AdmissionResponse{ + Allowed: true, + PatchType: &pt, + Patch: []byte(`[{"op": "add", "CORRUPTED_KEY":}]`), + }, + }) case "/nilResponse": w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(&v1beta1.AdmissionReview{}) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/plugin_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/plugin_test.go index 65832d0a239c..1cc031c577b6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/plugin_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/plugin_test.go @@ -75,7 +75,7 @@ func TestValidate(t *testing.T) { continue } - err = wh.Validate(webhooktesting.NewAttribute(ns)) + err = wh.Validate(webhooktesting.NewAttribute(ns, nil)) if tt.ExpectAllow != (err == nil) { t.Errorf("%s: expected allowed=%v, but got err=%v", tt.Name, tt.ExpectAllow, err) } @@ -133,7 +133,7 @@ func TestValidateCachedClient(t *testing.T) { continue } - err = wh.Validate(webhooktesting.NewAttribute(ns)) + err = wh.Validate(webhooktesting.NewAttribute(ns, nil)) if tt.ExpectAllow != (err == nil) { t.Errorf("%s: expected allowed=%v, but got err=%v", tt.Name, tt.ExpectAllow, err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go index 9ab6b2254249..3edd09dcdf92 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go @@ -448,7 +448,6 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag // TODO: more strongly type whether a resource allows these actions on "all namespaces" (bulk delete) if !isSubresource { actions = appendIf(actions, action{"LIST", resource, params, namer, true}, isLister) - actions = appendIf(actions, action{"POST", resource, params, namer, true}, isCreater) actions = appendIf(actions, action{"WATCHLIST", "watch/" + resource, params, namer, true}, allowWatchList) } break diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json index f0d9a1d6bc08..edd6f72961a8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json @@ -156,7 +156,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/modern-go/concurrent", @@ -588,7 +588,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD index ea15b5a56ec2..3439a4ed2b0f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD @@ -5,7 +5,6 @@ go_library( srcs = [ "horizontalpodautoscaler.go", "interface.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/client-go/informers/autoscaling/v2beta1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go index fdf723fb6e61..ff5d44b09d69 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go @@ -26,8 +26,6 @@ import ( type Interface interface { // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer - // VerticalPodAutoscalers returns a VerticalPodAutoscalerInformer. - VerticalPodAutoscalers() VerticalPodAutoscalerInformer } type version struct { @@ -45,8 +43,3 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } - -// VerticalPodAutoscalers returns a VerticalPodAutoscalerInformer. -func (v *version) VerticalPodAutoscalers() VerticalPodAutoscalerInformer { - return &verticalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/verticalpodautoscaler.go deleted file mode 100644 index 1b178ebecae3..000000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/verticalpodautoscaler.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v2beta1 - -import ( - time "time" - - autoscaling_v2beta1 "k8s.io/api/autoscaling/v2beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" - kubernetes "k8s.io/client-go/kubernetes" - v2beta1 "k8s.io/client-go/listers/autoscaling/v2beta1" - cache "k8s.io/client-go/tools/cache" -) - -// VerticalPodAutoscalerInformer provides access to a shared informer and lister for -// VerticalPodAutoscalers. -type VerticalPodAutoscalerInformer interface { - Informer() cache.SharedIndexInformer - Lister() v2beta1.VerticalPodAutoscalerLister -} - -type verticalPodAutoscalerInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewVerticalPodAutoscalerInformer constructs a new informer for VerticalPodAutoscaler type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewVerticalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredVerticalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredVerticalPodAutoscalerInformer constructs a new informer for VerticalPodAutoscaler type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredVerticalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AutoscalingV2beta1().VerticalPodAutoscalers(namespace).List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AutoscalingV2beta1().VerticalPodAutoscalers(namespace).Watch(options) - }, - }, - &autoscaling_v2beta1.VerticalPodAutoscaler{}, - resyncPeriod, - indexers, - ) -} - -func (f *verticalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredVerticalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *verticalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling_v2beta1.VerticalPodAutoscaler{}, f.defaultInformer) -} - -func (f *verticalPodAutoscalerInformer) Lister() v2beta1.VerticalPodAutoscalerLister { - return v2beta1.NewVerticalPodAutoscalerLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go index 2ed12f5e094a..08c43906f3c4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go @@ -125,8 +125,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=autoscaling, Version=v2beta1 case v2beta1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().HorizontalPodAutoscalers().Informer()}, nil - case v2beta1.SchemeGroupVersion.WithResource("verticalpodautoscalers"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().VerticalPodAutoscalers().Informer()}, nil // Group=batch, Version=v1 case batch_v1.SchemeGroupVersion.WithResource("jobs"): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD index dcb3f73819e4..1bb145072b56 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD @@ -7,7 +7,6 @@ go_library( "doc.go", "generated_expansion.go", "horizontalpodautoscaler.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go index c86663b271c5..3a49b26b3226 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go @@ -28,7 +28,6 @@ import ( type AutoscalingV2beta1Interface interface { RESTClient() rest.Interface HorizontalPodAutoscalersGetter - VerticalPodAutoscalersGetter } // AutoscalingV2beta1Client is used to interact with features provided by the autoscaling group. @@ -40,10 +39,6 @@ func (c *AutoscalingV2beta1Client) HorizontalPodAutoscalers(namespace string) Ho return newHorizontalPodAutoscalers(c, namespace) } -func (c *AutoscalingV2beta1Client) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface { - return newVerticalPodAutoscalers(c, namespace) -} - // NewForConfig creates a new AutoscalingV2beta1Client for the given config. func NewForConfig(c *rest.Config) (*AutoscalingV2beta1Client, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD index 03a967cfbe54..6d7d873267cd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD @@ -6,7 +6,6 @@ go_library( "doc.go", "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", - "fake_verticalpodautoscaler.go", ], importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go index b4ed7f21fd0c..be8e0f48e509 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go @@ -32,10 +32,6 @@ func (c *FakeAutoscalingV2beta1) HorizontalPodAutoscalers(namespace string) v2be return &FakeHorizontalPodAutoscalers{c, namespace} } -func (c *FakeAutoscalingV2beta1) VerticalPodAutoscalers(namespace string) v2beta1.VerticalPodAutoscalerInterface { - return &FakeVerticalPodAutoscalers{c, namespace} -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeAutoscalingV2beta1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_verticalpodautoscaler.go deleted file mode 100644 index 04173b264be8..000000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_verticalpodautoscaler.go +++ /dev/null @@ -1,140 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v2beta1 "k8s.io/api/autoscaling/v2beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeVerticalPodAutoscalers implements VerticalPodAutoscalerInterface -type FakeVerticalPodAutoscalers struct { - Fake *FakeAutoscalingV2beta1 - ns string -} - -var verticalpodautoscalersResource = schema.GroupVersionResource{Group: "autoscaling", Version: "v2beta1", Resource: "verticalpodautoscalers"} - -var verticalpodautoscalersKind = schema.GroupVersionKind{Group: "autoscaling", Version: "v2beta1", Kind: "VerticalPodAutoscaler"} - -// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any. -func (c *FakeVerticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v2beta1.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(verticalpodautoscalersResource, c.ns, name), &v2beta1.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*v2beta1.VerticalPodAutoscaler), err -} - -// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors. -func (c *FakeVerticalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta1.VerticalPodAutoscalerList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(verticalpodautoscalersResource, verticalpodautoscalersKind, c.ns, opts), &v2beta1.VerticalPodAutoscalerList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v2beta1.VerticalPodAutoscalerList{ListMeta: obj.(*v2beta1.VerticalPodAutoscalerList).ListMeta} - for _, item := range obj.(*v2beta1.VerticalPodAutoscalerList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers. -func (c *FakeVerticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(verticalpodautoscalersResource, c.ns, opts)) - -} - -// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *FakeVerticalPodAutoscalers) Create(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (result *v2beta1.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(verticalpodautoscalersResource, c.ns, verticalPodAutoscaler), &v2beta1.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*v2beta1.VerticalPodAutoscaler), err -} - -// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *FakeVerticalPodAutoscalers) Update(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (result *v2beta1.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(verticalpodautoscalersResource, c.ns, verticalPodAutoscaler), &v2beta1.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*v2beta1.VerticalPodAutoscaler), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeVerticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (*v2beta1.VerticalPodAutoscaler, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(verticalpodautoscalersResource, "status", c.ns, verticalPodAutoscaler), &v2beta1.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*v2beta1.VerticalPodAutoscaler), err -} - -// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *FakeVerticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(verticalpodautoscalersResource, c.ns, name), &v2beta1.VerticalPodAutoscaler{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeVerticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(verticalpodautoscalersResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &v2beta1.VerticalPodAutoscalerList{}) - return err -} - -// Patch applies the patch and returns the patched verticalPodAutoscaler. -func (c *FakeVerticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta1.VerticalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(verticalpodautoscalersResource, c.ns, name, data, subresources...), &v2beta1.VerticalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*v2beta1.VerticalPodAutoscaler), err -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go index be40b5d365fd..6f1704f1ee67 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go @@ -19,5 +19,3 @@ limitations under the License. package v2beta1 type HorizontalPodAutoscalerExpansion interface{} - -type VerticalPodAutoscalerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/verticalpodautoscaler.go deleted file mode 100644 index 786006cb4599..000000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/verticalpodautoscaler.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v2beta1 - -import ( - v2beta1 "k8s.io/api/autoscaling/v2beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - scheme "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -// VerticalPodAutoscalersGetter has a method to return a VerticalPodAutoscalerInterface. -// A group's client should implement this interface. -type VerticalPodAutoscalersGetter interface { - VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerInterface -} - -// VerticalPodAutoscalerInterface has methods to work with VerticalPodAutoscaler resources. -type VerticalPodAutoscalerInterface interface { - Create(*v2beta1.VerticalPodAutoscaler) (*v2beta1.VerticalPodAutoscaler, error) - Update(*v2beta1.VerticalPodAutoscaler) (*v2beta1.VerticalPodAutoscaler, error) - UpdateStatus(*v2beta1.VerticalPodAutoscaler) (*v2beta1.VerticalPodAutoscaler, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v2beta1.VerticalPodAutoscaler, error) - List(opts v1.ListOptions) (*v2beta1.VerticalPodAutoscalerList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta1.VerticalPodAutoscaler, err error) - VerticalPodAutoscalerExpansion -} - -// verticalPodAutoscalers implements VerticalPodAutoscalerInterface -type verticalPodAutoscalers struct { - client rest.Interface - ns string -} - -// newVerticalPodAutoscalers returns a VerticalPodAutoscalers -func newVerticalPodAutoscalers(c *AutoscalingV2beta1Client, namespace string) *verticalPodAutoscalers { - return &verticalPodAutoscalers{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the verticalPodAutoscaler, and returns the corresponding verticalPodAutoscaler object, and an error if there is any. -func (c *verticalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v2beta1.VerticalPodAutoscaler, err error) { - result = &v2beta1.VerticalPodAutoscaler{} - err = c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of VerticalPodAutoscalers that match those selectors. -func (c *verticalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta1.VerticalPodAutoscalerList, err error) { - result = &v2beta1.VerticalPodAutoscalerList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested verticalPodAutoscalers. -func (c *verticalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a verticalPodAutoscaler and creates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *verticalPodAutoscalers) Create(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (result *v2beta1.VerticalPodAutoscaler, err error) { - result = &v2beta1.VerticalPodAutoscaler{} - err = c.client.Post(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// Update takes the representation of a verticalPodAutoscaler and updates it. Returns the server's representation of the verticalPodAutoscaler, and an error, if there is any. -func (c *verticalPodAutoscalers) Update(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (result *v2beta1.VerticalPodAutoscaler, err error) { - result = &v2beta1.VerticalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(verticalPodAutoscaler.Name). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *verticalPodAutoscalers) UpdateStatus(verticalPodAutoscaler *v2beta1.VerticalPodAutoscaler) (result *v2beta1.VerticalPodAutoscaler, err error) { - result = &v2beta1.VerticalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(verticalPodAutoscaler.Name). - SubResource("status"). - Body(verticalPodAutoscaler). - Do(). - Into(result) - return -} - -// Delete takes name of the verticalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *verticalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *verticalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched verticalPodAutoscaler. -func (c *verticalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta1.VerticalPodAutoscaler, err error) { - result = &v2beta1.VerticalPodAutoscaler{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("verticalpodautoscalers"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD index 26b86dfa5959..78aca5847bcb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD @@ -5,7 +5,6 @@ go_library( srcs = [ "expansion_generated.go", "horizontalpodautoscaler.go", - "verticalpodautoscaler.go", ], importpath = "k8s.io/client-go/listers/autoscaling/v2beta1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go index b0a425968307..8d46a4b6e319 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go @@ -25,11 +25,3 @@ type HorizontalPodAutoscalerListerExpansion interface{} // HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to // HorizontalPodAutoscalerNamespaceLister. type HorizontalPodAutoscalerNamespaceListerExpansion interface{} - -// VerticalPodAutoscalerListerExpansion allows custom methods to be added to -// VerticalPodAutoscalerLister. -type VerticalPodAutoscalerListerExpansion interface{} - -// VerticalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to -// VerticalPodAutoscalerNamespaceLister. -type VerticalPodAutoscalerNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/verticalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/verticalpodautoscaler.go deleted file mode 100644 index 2302fd2948d9..000000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/autoscaling/v2beta1/verticalpodautoscaler.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v2beta1 - -import ( - v2beta1 "k8s.io/api/autoscaling/v2beta1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// VerticalPodAutoscalerLister helps list VerticalPodAutoscalers. -type VerticalPodAutoscalerLister interface { - // List lists all VerticalPodAutoscalers in the indexer. - List(selector labels.Selector) (ret []*v2beta1.VerticalPodAutoscaler, err error) - // VerticalPodAutoscalers returns an object that can list and get VerticalPodAutoscalers. - VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerNamespaceLister - VerticalPodAutoscalerListerExpansion -} - -// verticalPodAutoscalerLister implements the VerticalPodAutoscalerLister interface. -type verticalPodAutoscalerLister struct { - indexer cache.Indexer -} - -// NewVerticalPodAutoscalerLister returns a new VerticalPodAutoscalerLister. -func NewVerticalPodAutoscalerLister(indexer cache.Indexer) VerticalPodAutoscalerLister { - return &verticalPodAutoscalerLister{indexer: indexer} -} - -// List lists all VerticalPodAutoscalers in the indexer. -func (s *verticalPodAutoscalerLister) List(selector labels.Selector) (ret []*v2beta1.VerticalPodAutoscaler, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v2beta1.VerticalPodAutoscaler)) - }) - return ret, err -} - -// VerticalPodAutoscalers returns an object that can list and get VerticalPodAutoscalers. -func (s *verticalPodAutoscalerLister) VerticalPodAutoscalers(namespace string) VerticalPodAutoscalerNamespaceLister { - return verticalPodAutoscalerNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// VerticalPodAutoscalerNamespaceLister helps list and get VerticalPodAutoscalers. -type VerticalPodAutoscalerNamespaceLister interface { - // List lists all VerticalPodAutoscalers in the indexer for a given namespace. - List(selector labels.Selector) (ret []*v2beta1.VerticalPodAutoscaler, err error) - // Get retrieves the VerticalPodAutoscaler from the indexer for a given namespace and name. - Get(name string) (*v2beta1.VerticalPodAutoscaler, error) - VerticalPodAutoscalerNamespaceListerExpansion -} - -// verticalPodAutoscalerNamespaceLister implements the VerticalPodAutoscalerNamespaceLister -// interface. -type verticalPodAutoscalerNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all VerticalPodAutoscalers in the indexer for a given namespace. -func (s verticalPodAutoscalerNamespaceLister) List(selector labels.Selector) (ret []*v2beta1.VerticalPodAutoscaler, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v2beta1.VerticalPodAutoscaler)) - }) - return ret, err -} - -// Get retrieves the VerticalPodAutoscaler from the indexer for a given namespace and name. -func (s verticalPodAutoscalerNamespaceLister) Get(name string) (*v2beta1.VerticalPodAutoscaler, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v2beta1.Resource("verticalpodautoscaler"), name) - } - return obj.(*v2beta1.VerticalPodAutoscaler), nil -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json index a4aca68986bd..021cf1458622 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json @@ -260,11 +260,11 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/generators", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json index 089b2f28a402..da5877e7a8ad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json @@ -216,7 +216,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/mailru/easyjson/buffer", @@ -1684,27 +1684,27 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/aggregator", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json index 5ea202777942..02d78f0f3bcf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json @@ -76,7 +76,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/modern-go/concurrent", @@ -492,7 +492,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json index 5e20bf905e2b..4fc028225c6b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json @@ -208,7 +208,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/mailru/easyjson/buffer", @@ -1648,23 +1648,23 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json index ddf1ba8e4824..077157f6a3db 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json @@ -92,7 +92,7 @@ }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "2ddf6d758266fcb080a4f9e054b9f292c85e6798" + "Rev": "f2b4162afba35581b6d4a50d3b8f34e33c144682" }, { "ImportPath": "github.com/modern-go/concurrent", @@ -1076,7 +1076,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2" + "Rev": "91cfa479c814065e420cee7ed227db0f63a5854e" } ] } diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go index 30e6cb22b52b..9b08fcbdc1b0 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go @@ -324,7 +324,7 @@ func TestSampleAPIServer(f *framework.Framework, image string) { currentPods *v1.PodList ) - err = wait.Poll(100*time.Millisecond, 30*time.Second, func() (bool, error) { + err = pollTimed(100*time.Millisecond, 60*time.Second, func() (bool, error) { currentAPIService, _ = aggrclient.ApiregistrationV1beta1().APIServices().Get("v1alpha1.wardle.k8s.io", metav1.GetOptions{}) currentPods, _ = client.CoreV1().Pods(namespace).List(metav1.ListOptions{}) @@ -346,7 +346,7 @@ func TestSampleAPIServer(f *framework.Framework, image string) { return false, err } return true, nil - }) + }, "Waited %s for the sample-apiserver to be ready to handle requests.") if err != nil { currentAPIServiceJSON, _ := json.Marshal(currentAPIService) framework.Logf("current APIService: %s", string(currentAPIServiceJSON)) @@ -460,6 +460,17 @@ func TestSampleAPIServer(f *framework.Framework, image string) { cleanTest(client, aggrclient, namespace) } +// pollTimed will call Poll but time how long Poll actually took. +// It will then framework.logf the msg with the duration of the Poll. +// It is assumed that msg will contain one %s for the elapsed time. +func pollTimed(interval, timeout time.Duration, condition wait.ConditionFunc, msg string) error { + defer func(start time.Time, msg string) { + elapsed := time.Since(start) + framework.Logf(msg, elapsed) + }(time.Now(), msg) + return wait.Poll(interval, timeout, condition) +} + func validateErrorWithDebugInfo(f *framework.Framework, err error, pods *v1.PodList, msg string, fields ...interface{}) { if err != nil { namespace := f.Namespace.Name diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD b/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD index 9f6cba380080..fc650ed9fcc4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD @@ -60,7 +60,6 @@ go_library( "//pkg/controller/deployment/util:go_default_library", "//pkg/controller/nodelifecycle:go_default_library", "//pkg/features:go_default_library", - "//pkg/kubectl:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go index edd31c06ce14..5d61bbf51e5c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go @@ -210,10 +210,14 @@ func (l *PodStartupLatency) PrintJSON() string { } type SchedulingMetrics struct { - SchedulingLatency LatencyMetric `json:"schedulingLatency"` - BindingLatency LatencyMetric `json:"bindingLatency"` - E2ELatency LatencyMetric `json:"e2eLatency"` - ThroughputSamples []float64 `json:"throughputSamples"` + PredicateEvaluationLatency LatencyMetric `json:"predicateEvaluationLatency"` + PriorityEvaluationLatency LatencyMetric `json:"priorityEvaluationLatency"` + PreemptionEvaluationLatency LatencyMetric `json:"preemptionEvaluationLatency"` + BindingLatency LatencyMetric `json:"bindingLatency"` + ThroughputAverage float64 `json:"throughputAverage"` + ThroughputPerc50 float64 `json:"throughputPerc50"` + ThroughputPerc90 float64 `json:"throughputPerc90"` + ThroughputPerc99 float64 `json:"throughputPerc99"` } func (l *SchedulingMetrics) SummaryKind() string { @@ -509,23 +513,24 @@ func getSchedulingLatency(c clientset.Interface) (*SchedulingMetrics, error) { var metric *LatencyMetric = nil switch sample.Metric[schedulermetric.OperationLabel] { - case schedulermetric.SchedulingAlgorithm: - metric = &result.SchedulingLatency + case schedulermetric.PredicateEvaluation: + metric = &result.PredicateEvaluationLatency + case schedulermetric.PriorityEvaluation: + metric = &result.PriorityEvaluationLatency + case schedulermetric.PreemptionEvaluation: + metric = &result.PreemptionEvaluationLatency case schedulermetric.Binding: metric = &result.BindingLatency - case schedulermetric.E2eScheduling: - metric = &result.E2ELatency } if metric == nil { continue } - latency := sample.Value quantile, err := strconv.ParseFloat(string(sample.Metric[model.QuantileLabel]), 64) if err != nil { return nil, err } - setQuantile(metric, quantile, time.Duration(int64(latency))) + setQuantile(metric, quantile, time.Duration(int64(float64(sample.Value)*float64(time.Second)))) } return &result, nil } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go index 233038d46b1b..5c3099c82081 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go @@ -113,6 +113,8 @@ type TestContextType struct { FeatureGates map[string]bool // Node e2e specific test context NodeTestContextType + // Storage e2e specific test context + StorageTestContextType // Monitoring solution that is used in current cluster. ClusterMonitoringMode string // Separate Prometheus monitoring deployed in cluster @@ -160,6 +162,14 @@ type NodeTestContextType struct { SystemSpecName string } +// StorageConfig contains the shared settings for storage 2e2 tests. +type StorageTestContextType struct { + // CSIImageVersion overrides the builtin stable version numbers if set. + CSIImageVersion string + // CSIImageRegistry defines the image registry hosting the CSI container images. + CSIImageRegistry string +} + type CloudConfig struct { ApiEndpoint string ProjectID string @@ -293,6 +303,11 @@ func RegisterNodeFlags() { flag.StringVar(&TestContext.SystemSpecName, "system-spec-name", "", "The name of the system spec (e.g., gke) that's used in the node e2e test. The system specs are in test/e2e_node/system/specs/. This is used by the test framework to determine which tests to run for validating the system requirements.") } +func RegisterStorageFlags() { + flag.StringVar(&TestContext.CSIImageVersion, "csiImageVersion", "", "overrides the default tag used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") + flag.StringVar(&TestContext.CSIImageRegistry, "csiImageRegistry", "quay.io/k8scsi", "overrides the default repository used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") +} + // ViperizeFlags sets up all flag and config processing. Future configuration info should be added to viper, not to flags. func ViperizeFlags() { @@ -301,6 +316,7 @@ func ViperizeFlags() { // since go test 'flag's are sort of incompatible w/ flag, glog, etc. RegisterCommonFlags() RegisterClusterFlags() + RegisterStorageFlags() flag.Parse() // Part 2: Set Viper provided flags. diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/util.go index d5d3c8668c2e..889c403afecf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/util.go @@ -88,7 +88,6 @@ import ( "k8s.io/kubernetes/pkg/controller" nodectlr "k8s.io/kubernetes/pkg/controller/nodelifecycle" "k8s.io/kubernetes/pkg/features" - "k8s.io/kubernetes/pkg/kubectl" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/master/ports" @@ -2847,8 +2846,7 @@ func ScaleResource( gr schema.GroupResource, ) error { By(fmt.Sprintf("Scaling %v %s in namespace %s to %d", kind, name, ns, size)) - scaler := kubectl.NewScaler(scalesGetter) - if err := testutils.ScaleResourceWithRetries(scaler, ns, name, size, gr); err != nil { + if err := testutils.ScaleResourceWithRetries(scalesGetter, ns, name, size, gr); err != nil { return fmt.Errorf("error while scaling RC %s to %d replicas: %v", name, size, err) } if !wait { diff --git a/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go b/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go index c620e7bf26be..3d1c57252a2a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go +++ b/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go @@ -1958,7 +1958,7 @@ func testE2eTestingManifestsStorageCsiGcePdNode_dsYaml() (*asset, error) { return a, nil } -var _testImagesMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x53\xd1\x6e\xe3\x36\x10\x7c\x2e\xbf\x62\x10\xdf\x43\x02\xc4\x54\xe2\x97\x43\x5d\x04\x85\x2e\x71\x13\xe1\x12\xab\xb5\x9c\x0b\xf2\x54\xd0\xd2\x4a\x5a\x84\x22\x55\x92\x8a\xed\xbf\x2f\x28\xc7\xbd\xfa\x4e\x6f\xe4\xce\xce\x0e\x77\x46\x13\xdc\xda\x7e\xef\xb8\x69\x03\x66\x57\xd7\x9f\xb1\x6e\x09\x5f\x87\x0d\x39\x43\x81\x3c\xd2\x21\xb4\xd6\x79\x29\x26\x62\x82\x47\x2e\xc9\x78\xaa\x30\x98\x8a\x1c\x42\x4b\x48\x7b\x55\xb6\x74\xac\x5c\xe2\x1b\x39\xcf\xd6\x60\x26\xaf\x70\x1e\x01\x67\x1f\xa5\xb3\x8b\xdf\xc4\x04\x7b\x3b\xa0\x53\x7b\x18\x1b\x30\x78\x42\x68\xd9\xa3\x66\x4d\xa0\x5d\x49\x7d\x00\x1b\x94\xb6\xeb\x35\x2b\x53\x12\xb6\x1c\xda\x71\xcc\x07\x89\x14\x13\xbc\x7e\x50\xd8\x4d\x50\x6c\xa0\x50\xda\x7e\x0f\x5b\xff\x1f\x07\x15\x46\xc1\xf1\x6b\x43\xe8\xe7\x49\xb2\xdd\x6e\xa5\x1a\xc5\x4a\xeb\x9a\x44\x1f\x80\x3e\x79\xcc\x6e\x17\xcb\x62\x31\x9d\xc9\xab\xb1\xe5\xd9\x68\xf2\x1e\x8e\xfe\x19\xd8\x51\x85\xcd\x1e\xaa\xef\x35\x97\x6a\xa3\x09\x5a\x6d\x61\x1d\x54\xe3\x88\x2a\x04\x1b\xf5\x6e\x1d\x07\x36\xcd\x25\xbc\xad\xc3\x56\x39\x12\x13\x54\xec\x83\xe3\xcd\x10\x4e\x96\x75\x54\xc7\xfe\x04\x60\x0d\x94\xc1\x59\x5a\x20\x2b\xce\xf0\x25\x2d\xb2\xe2\x52\x4c\xf0\x92\xad\x1f\xf2\xe7\x35\x5e\xd2\xd5\x2a\x5d\xae\xb3\x45\x81\x7c\x85\xdb\x7c\x79\x97\xad\xb3\x7c\x59\x20\xff\x03\xe9\xf2\x15\x5f\xb3\xe5\xdd\x25\x88\x43\x4b\x0e\xb4\xeb\x5d\xd4\x6f\x1d\x38\xae\x91\xaa\xb8\xb3\x82\xe8\x44\x40\x6d\x0f\x82\x7c\x4f\x25\xd7\x5c\x42\x2b\xd3\x0c\xaa\x21\x34\xf6\x9d\x9c\x61\xd3\xa0\x27\xd7\xb1\x8f\x66\x7a\x28\x53\x89\x09\x34\x77\x1c\x54\x18\x6f\x7e\x7a\x94\x14\x82\x4d\xa9\x87\x8a\x00\x29\x13\x29\x93\x56\x95\x6f\x49\xa7\xde\x68\xea\x06\x4d\x3e\x79\x52\x6f\x14\xad\x96\x9d\x32\x5c\x93\x0f\x42\xac\x16\xf7\x59\xb1\x5e\xbd\xe2\xf7\x1b\x34\xa5\x93\x6c\x93\xb7\xff\xb2\x37\xa5\x19\x4d\x03\xf9\x30\xe5\x4e\x35\xe4\xc5\x7d\x9e\xae\x9e\x6e\x3e\x8b\xbf\x16\x4f\xcf\xdf\x16\xab\x22\xcb\x97\x37\xef\x33\xf9\xab\xbc\x16\xf7\xf9\x63\xba\xbc\xff\xfb\x78\x7b\x2d\xaf\xaf\xe4\x4c\xd0\xae\xb7\x2e\x08\xc1\xb5\xa9\xa8\xc6\xcb\x43\xba\x16\x9f\xce\xc9\x39\xeb\xc6\x43\x34\x42\x7d\xb7\xfa\x5d\x39\x8e\x2e\x5f\x82\x76\x73\x44\xe5\x50\x5a\x8f\xc8\x1b\x43\xe1\x42\x90\xa9\xb8\x16\x62\x82\x2f\x03\xeb\x0a\xa5\xad\xe8\xf0\x63\xa4\xae\xf1\xf3\x31\x6f\x11\x3c\xc7\x1d\x3b\x2a\x83\x75\x7b\x18\xd5\x91\x8f\x41\xd9\xc4\x96\x03\x7a\xb1\x53\x5d\xaf\xe9\xd0\x70\x3a\xa6\xd4\x83\x0f\xe4\x54\xcf\xe3\xcb\xc9\x09\xa5\xf5\x3c\xd6\xa7\xa5\x35\x31\xf0\xe4\x84\x38\x39\xce\xc5\x2f\x32\x19\x37\x34\x1d\x02\x6b\xe9\xdb\xc3\x2c\x7c\x3a\x8f\x94\x17\x07\x78\x3f\xf8\xf6\x07\x1e\x1c\x7d\x98\x06\x6b\xf5\xcf\x2c\xb1\xe5\x3b\x89\xfc\xf3\x21\x5f\xbe\x8e\x14\x38\x12\xfe\xa0\xeb\xdf\x00\x00\x00\xff\xff\x1e\x9f\x6f\xeb\x4c\x04\x00\x00") +var _testImagesMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x53\xd1\x6e\xe3\x36\x10\x7c\x2e\xbf\x62\x10\xdf\x43\x02\xd8\x54\xe2\x97\x43\x5d\x04\x85\x2e\x71\x13\xe1\x12\xab\xb5\x9c\x0b\xf2\x54\xd0\xd2\x4a\x5a\x84\x22\x55\x92\x8a\xed\xbf\x2f\x28\x27\xbd\xfa\x4e\x6f\xe4\xce\xcc\x0e\x77\x56\x13\xdc\xd8\xfe\xe0\xb8\x69\x03\xe6\x97\x57\x9f\xb1\x69\x09\x5f\x87\x2d\x39\x43\x81\x3c\xd2\x21\xb4\xd6\x79\x29\x26\x62\x82\x07\x2e\xc9\x78\xaa\x30\x98\x8a\x1c\x42\x4b\x48\x7b\x55\xb6\xf4\x51\x99\xe2\x1b\x39\xcf\xd6\x60\x2e\x2f\x71\x1e\x01\x67\xef\xa5\xb3\x8b\xdf\xc4\x04\x07\x3b\xa0\x53\x07\x18\x1b\x30\x78\x42\x68\xd9\xa3\x66\x4d\xa0\x7d\x49\x7d\x00\x1b\x94\xb6\xeb\x35\x2b\x53\x12\x76\x1c\xda\xb1\xcd\xbb\x88\x14\x13\xbc\xbc\x4b\xd8\x6d\x50\x6c\xa0\x50\xda\xfe\x00\x5b\xff\x1f\x07\x15\x46\xc3\xf1\x6b\x43\xe8\x17\x49\xb2\xdb\xed\xa4\x1a\xcd\x4a\xeb\x9a\x44\x1f\x81\x3e\x79\xc8\x6e\x96\xab\x62\x39\x9b\xcb\xcb\x91\xf2\x64\x34\x79\x0f\x47\xff\x0c\xec\xa8\xc2\xf6\x00\xd5\xf7\x9a\x4b\xb5\xd5\x04\xad\x76\xb0\x0e\xaa\x71\x44\x15\x82\x8d\x7e\x77\x8e\x03\x9b\x66\x0a\x6f\xeb\xb0\x53\x8e\xc4\x04\x15\xfb\xe0\x78\x3b\x84\x93\x61\x7d\xb8\x63\x7f\x02\xb0\x06\xca\xe0\x2c\x2d\x90\x15\x67\xf8\x92\x16\x59\x31\x15\x13\x3c\x67\x9b\xfb\xfc\x69\x83\xe7\x74\xbd\x4e\x57\x9b\x6c\x59\x20\x5f\xe3\x26\x5f\xdd\x66\x9b\x2c\x5f\x15\xc8\xff\x40\xba\x7a\xc1\xd7\x6c\x75\x3b\x05\x71\x68\xc9\x81\xf6\xbd\x8b\xfe\xad\x03\xc7\x31\x52\x15\x67\x56\x10\x9d\x18\xa8\xed\xd1\x90\xef\xa9\xe4\x9a\x4b\x68\x65\x9a\x41\x35\x84\xc6\xbe\x91\x33\x6c\x1a\xf4\xe4\x3a\xf6\x31\x4c\x0f\x65\x2a\x31\x81\xe6\x8e\x83\x0a\xe3\xcd\x4f\x8f\x92\x42\xb0\x29\xf5\x50\x11\x20\x65\x22\x65\xd2\xaa\xf2\x35\xe9\xd4\x2b\xcd\xdc\xa0\xc9\x27\x8f\xea\x95\x62\xd4\xb2\x53\x86\x6b\xf2\x41\x88\xf5\xf2\x2e\x2b\x36\xeb\x17\xfc\x7e\x8d\xa6\x74\x92\x6d\xf2\xfa\xdf\xee\xcd\x68\x4e\xb3\x40\x3e\xcc\xb8\x53\x0d\x79\x71\x97\xa7\xeb\xc7\xeb\xcf\xe2\xaf\xe5\xe3\xd3\xb7\xe5\xba\xc8\xf2\xd5\xf5\xdb\x5c\xfe\x2a\xaf\xc4\x5d\xfe\x90\xae\xee\xfe\xfe\xb8\xbd\x92\x57\x97\x72\x2e\x68\xdf\x5b\x17\x84\xe0\xda\x54\x54\xe3\xf9\x3e\xdd\x88\x4f\xe7\xe4\x9c\x75\xe3\x21\x06\xa1\xbe\x47\xfd\xa6\x1c\xc7\x94\xa7\xa0\xfd\x02\xd1\x39\x94\xd6\x23\xf2\xda\x50\xb8\x10\x64\x2a\xae\x85\x98\xe0\xcb\xc0\xba\x42\x69\x2b\x3a\xfe\x18\xa9\x6b\xfc\x62\xdc\xb7\x08\x5e\xe0\x96\x1d\x95\xc1\xba\x03\x8c\xea\xc8\xc7\x45\xd9\x46\xca\x11\xbd\xdc\xab\xae\xd7\x74\x24\x9c\xb6\x29\xf5\xe0\x03\x39\xd5\xf3\xf8\x72\x72\x42\x69\xbd\x88\xf5\x59\x69\x4d\x5c\x78\x72\x42\x9c\x1c\x17\xe2\x17\x99\x8c\x13\x9a\x0d\x81\xb5\xf4\xed\xb1\x17\x3e\x9d\x47\xc9\x8b\x23\xbc\x1f\x7c\xfb\xa3\xce\x4f\xbc\x08\xfa\x4e\x93\x7f\xde\xe7\xab\x97\x91\x84\x0f\x89\x1f\x14\xfe\x0d\x00\x00\xff\xff\xf7\xb6\xcd\xd1\x3e\x04\x00\x00") func testImagesMakefileBytes() ([]byte, error) { return bindataRead( @@ -2598,7 +2598,7 @@ func testImagesHostexecPodYaml() (*asset, error) { return a, nil } -var _testImagesImageUtilSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x57\x6d\x73\xdb\xb8\x11\xfe\xce\x5f\xb1\x47\x69\x62\x2b\x63\x92\x49\x9a\x49\x53\xa7\x9a\x09\x2d\xab\x8e\xc6\x2f\x6a\x45\xf9\x6e\x72\x3e\x57\x03\x91\x4b\x0a\x35\x09\xf0\x00\xd0\xb2\x4f\xd6\x7f\xef\x2c\x48\xea\xc5\x76\xda\x7e\xaa\x3f\x58\x04\xb0\x8b\xdd\x7d\xf6\xd9\x5d\xb2\xf3\x53\x50\x69\x15\xcc\xb9\x08\x50\xdc\xc3\x9c\xe9\x85\xe3\x74\x60\x20\xcb\x47\xc5\xb3\x85\x81\x0f\xef\xde\xff\x19\xa6\x0b\x84\xf3\x6a\x8e\x4a\xa0\x41\x0d\x61\x65\x16\x52\x69\xdf\xe9\x38\x1d\xb8\xe0\x31\x0a\x8d\x09\x54\x22\x41\x05\x66\x81\x10\x96\x2c\x5e\x60\x7b\x72\x04\x3f\xa3\xd2\x5c\x0a\xf8\xe0\xbf\x83\x43\x12\x70\x9b\x23\xb7\xf7\xc5\xe9\xc0\xa3\xac\xa0\x60\x8f\x20\xa4\x81\x4a\x23\x98\x05\xd7\x90\xf2\x1c\x01\x1f\x62\x2c\x0d\x70\x01\xb1\x2c\xca\x9c\x33\x11\x23\x2c\xb9\x59\x58\x33\xcd\x25\xbe\xd3\x81\xef\xcd\x15\x72\x6e\x18\x17\xc0\x20\x96\xe5\x23\xc8\x74\x57\x0e\x98\xb1\x0e\xd3\xdf\xc2\x98\xf2\x38\x08\x96\xcb\xa5\xcf\xac\xb3\xbe\x54\x59\x90\xd7\x82\x3a\xb8\x18\x0d\x86\x57\xd1\xd0\xfb\xe0\xbf\xb3\x2a\xd7\x22\x47\xad\x41\xe1\xef\x15\x57\x98\xc0\xfc\x11\x58\x59\xe6\x3c\x66\xf3\x1c\x21\x67\x4b\x90\x0a\x58\xa6\x10\x13\x30\x92\xfc\x5d\x2a\x6e\xb8\xc8\x8e\x40\xcb\xd4\x2c\x99\x42\xa7\x03\x09\xd7\x46\xf1\x79\x65\xf6\xc0\x6a\xbd\xe3\x7a\x4f\x40\x0a\x60\x02\xdc\x30\x82\x51\xe4\xc2\x49\x18\x8d\xa2\x23\xa7\x03\xbf\x8c\xa6\xdf\xc6\xd7\x53\xf8\x25\x9c\x4c\xc2\xab\xe9\x68\x18\xc1\x78\x02\x83\xf1\xd5\xe9\x68\x3a\x1a\x5f\x45\x30\xfe\x1b\x84\x57\xdf\xe1\x7c\x74\x75\x7a\x04\xc8\xcd\x02\x15\xe0\x43\xa9\xc8\x7f\xa9\x80\x13\x8c\x98\x10\x66\x11\xe2\x9e\x03\xa9\xac\x1d\xd2\x25\xc6\x3c\xe5\x31\xe4\x4c\x64\x15\xcb\x10\x32\x79\x8f\x4a\x70\x91\x41\x89\xaa\xe0\x9a\x92\xa9\x81\x89\xc4\xe9\x40\xce\x0b\x6e\x98\xb1\x3b\x2f\x82\xf2\x1d\x47\xa3\x01\x4f\x02\x2a\x85\x0f\xdc\xb4\x4b\x21\x2b\xa1\x71\xb3\x2c\x79\x89\x29\xe3\xb9\xe3\x4c\xc3\xe8\xbc\xdf\x7d\xef\x8c\x2e\xc3\xb3\x61\xbf\xfb\xc1\x71\xce\xaf\x4f\x86\xb3\xc9\x78\x3c\xed\xbb\xdd\xc3\x38\x01\xb7\x7b\x98\x70\x25\x58\x81\xe0\x76\x57\x27\x61\xf4\x6d\x16\x8d\xaf\x27\x83\xe1\xda\xed\x05\xbe\x1f\xf8\xbe\x0b\x6f\xde\x40\xb9\x4c\xc0\xfb\x7b\xcf\x25\x36\x5f\xb2\xb2\x24\xef\x65\x0a\x99\x84\x70\x32\xf8\x46\x59\x62\xb1\xa9\x58\x0e\x4c\xc5\x0b\x6e\x30\x36\x95\x42\x0d\x7a\xc1\xcb\x12\x13\x28\x99\x32\x24\x5f\x54\xb9\xe1\x24\x12\xfc\x8e\x45\xe5\x55\x1a\x95\xa7\x29\xde\x18\x4a\x25\xff\x85\xb1\x71\x12\x8c\x73\xa6\x10\xbc\x10\xfe\x31\xbc\xbc\xa6\xeb\xa3\xfe\x21\xdc\xb8\xac\x48\x3e\x7d\x74\x6f\xfb\xee\xc3\xe7\x4f\xb3\x4f\x1f\x5d\xda\x52\x05\x6d\xd0\x4f\xbd\xaa\x05\x18\x59\xa8\x25\xca\x32\xfe\xf4\x31\x47\xda\x6d\x1f\xe1\xc6\xd5\x7f\xfa\xcb\xbb\x07\xda\xab\x1f\xa0\x47\x61\x4d\xd0\x54\x4a\x68\xc8\xb9\xb6\xbe\xb2\x3c\x07\x5d\x95\xa5\x54\x44\xa0\xfd\xb8\x52\x25\x0b\x62\xd1\xd0\x02\x6b\xab\xcb\x21\xbd\x50\xc5\x0b\x7d\xd8\x83\x95\x03\x10\x57\x06\xbc\x04\xdc\xbe\x0b\x5e\x0a\xef\xa1\xbb\xb2\xc2\xeb\x60\xa3\xe7\xac\x77\xed\xce\x99\x46\x5e\x10\x41\x44\x43\xfc\x8a\xfa\x00\x17\x70\x2a\xe3\x3b\x54\xb6\x84\x89\x55\x4c\x3c\x42\xc6\xef\x51\xec\x39\xe5\x64\x68\x4e\x98\xc6\x11\x5d\xd1\xb8\x40\xe7\x94\x7e\x00\x8c\x17\x12\xba\x87\x99\xc2\x92\xf2\x4c\x07\xeb\xbe\xbb\x13\xc2\x53\xe3\x6f\x1f\xbc\xf4\x43\xaf\xf6\x6c\x6a\x3b\x47\x25\x62\xe2\x23\x2c\x79\x9e\xc3\xbc\xe2\x79\x02\x06\xb5\x81\xda\x57\xeb\x50\x9e\x5b\x9a\xee\x61\xe4\x74\xa0\x40\x41\x9a\x75\x10\xfb\x68\xf9\x30\x12\xb5\xce\x5c\x23\xb5\x21\x99\x3e\x93\xa0\xf2\xe4\x66\xd7\xea\xae\xa9\xfd\xc4\xd4\x39\xf3\xc0\x52\xe4\x08\x98\x2a\x48\xdb\xf2\xe1\x08\x9a\xbc\x1f\x81\x4d\xb6\x63\xef\x6a\xf0\xe1\x29\xdc\xdc\x50\x76\x5e\xe6\x06\x6e\x6f\xbf\x90\x25\xe1\x50\x83\x23\x23\xba\xdf\x3d\xdc\xe4\xb8\x47\x98\xe6\x1a\x77\x4f\x57\x3f\x6d\x08\x7b\xf3\xf5\x76\xed\x00\xa4\xdc\xa1\xff\xe4\x37\x79\xc9\x05\xd4\xd0\xeb\xf5\x17\x48\xa4\xd5\xb5\x89\x71\x4f\xc8\x29\xaa\xa9\x2d\xa8\xad\x4b\xb6\xc0\x8e\x1b\xc5\xb5\xef\xfb\xae\x63\x15\x3b\x30\x50\xc8\x0c\x02\x03\x83\x45\x29\x15\x53\x8f\x90\x70\x85\xb1\x91\xea\xd1\x5e\x81\xf7\xa8\x1e\xf7\xb2\x42\x5d\xa6\x6e\xe6\x04\x62\x6d\x2c\x96\xc2\xa0\x30\xcd\xa5\x24\xd0\x24\x79\x23\x61\xd9\xfe\x8a\x11\xab\x42\xfb\xb3\x84\xab\x7e\xf7\xb0\xb8\xa3\x05\x78\x49\xcf\x9e\xc4\x25\x78\xdb\x38\x82\xb7\xd0\x5d\xb5\xc2\x6b\x2b\xf0\x12\xfe\x4b\x76\x87\x96\xe7\x7b\xe8\x93\x5f\x05\xbb\x43\x98\xf3\x86\x86\x86\x56\x31\xb5\x89\xa6\x50\xc9\xd9\x52\xa1\x1d\x29\x9a\xd3\x54\xa5\x22\xc2\x64\xa3\x4f\x78\xcc\x5b\x94\x49\x3a\xb1\x45\x55\x47\xd8\x48\x59\x1b\xde\x60\x0b\x3d\xd9\x23\xf8\xfb\x0d\xfa\x30\x0d\x27\x67\xc3\x69\xff\x79\x20\x29\xb7\x3f\x65\xa5\x17\xc9\x8b\x28\x3b\x0d\x8a\x86\x65\x76\x3d\x0d\xcf\xfa\xdd\xc3\xbf\xfe\x3c\x9c\x44\xa3\xf1\x55\xcf\xd9\x87\xe2\x07\x04\x84\xed\x41\xbf\x7b\xb8\x5b\xea\x2d\x33\x7a\x8d\x1c\xf5\x0c\x8f\x83\xab\x9f\x36\x1a\x4f\xb6\xb1\xd7\xcf\xeb\xa7\xcc\xdd\x69\x28\xad\xfb\x8d\xa7\x1b\x6a\xd8\xf6\xfc\xb6\xed\xcd\x73\x2e\x28\xf1\x46\xee\xa1\x46\xeb\x2d\x55\x6c\x6b\xdf\x27\x5b\x2d\x25\x05\x3c\x7c\xfe\x04\x65\xce\x4c\x2a\x55\xb1\x13\x6e\xdb\x8f\x06\x93\x71\x14\xcd\x4e\xae\x47\x17\xa7\xb3\x5d\xe7\x7a\xcf\x31\xa8\xd5\xda\xfe\xe5\x42\xbf\x0f\xcd\x58\x78\x2e\xb9\xc5\x21\xd8\xbd\x3d\x48\x5e\x04\xbf\x53\xc7\xfb\xf0\xb5\xc5\xfc\xd4\x5d\x6d\xeb\xba\x4b\x96\x6f\x5f\x03\xb1\x06\x70\x82\x19\xd7\x06\xd5\x33\x00\xdb\xd6\xb5\x6d\x5b\xa5\x92\x31\x6a\x2d\x95\x6e\x5f\xcb\x08\xc4\xb8\x52\x0a\x85\x01\x29\xb6\x97\x36\x90\xab\x4a\x80\xe7\xa9\x02\x3c\xaf\x54\xfc\x9e\xe7\x98\x61\xf2\x1f\x06\xea\xb1\x6a\x5d\xf1\x3c\x85\xf4\x76\xd0\x5e\x18\x57\x2a\x07\x4f\x47\x17\xf6\xbd\x4d\x1f\x07\x41\xc6\xcd\xa2\x9a\xfb\xb1\x2c\x82\x1f\x5f\x18\x28\xcc\x91\xd1\xfb\x5c\x22\x97\x22\x97\x2c\x09\x6a\x64\x1a\x26\xaf\x83\x7a\x30\xcf\xac\xe2\x2b\xa0\x35\xf7\xf8\x86\x29\x3f\xfb\x03\x9e\xc0\x30\x05\xde\xc3\x1f\x75\xc9\xed\x17\xcd\x5e\x2a\xf6\x53\x18\xbc\x86\x7d\x53\x81\x2d\x93\x1b\xcc\x6a\x76\x7a\x5e\x59\xe5\x39\x78\x06\xba\xab\xc9\xf0\x6c\x14\x4d\x27\xdf\xd7\x41\x5b\xe4\x5e\xc3\xa6\xe3\xee\x6a\x1a\x9e\xad\xc1\xaf\x6f\x28\x65\x49\xcd\x23\xa1\x4c\xfc\x68\x18\x52\xbd\xbf\xe8\x25\xda\xa1\xed\xff\xdf\x80\xf9\x2f\xf3\xa5\xe9\x36\x1b\xfb\x9b\xb6\xb3\x03\x93\x8d\xe3\x7f\xc0\xa6\xc5\xc3\x21\xa6\x53\xab\xae\x1d\xab\xa7\x2f\x17\x46\xc2\x38\x0a\xf6\x3a\x40\xc9\xb8\xf2\x61\x98\x1d\xc3\x81\xad\xd3\x76\x18\x1f\x50\xef\x38\xc8\xb9\xa8\x1e\x82\x7a\x68\xd7\xcf\xed\xb1\xb3\x45\xa4\x7e\x73\xa9\x0d\x3d\xd5\x9c\x40\x38\xd0\xc1\xcd\x3f\xe1\xf6\x2d\xbc\x0d\xac\xe2\x6f\xc1\x9b\x20\x3b\x68\x4e\x20\x38\x0a\xb2\x03\x8a\xb0\x60\x82\xa7\xa8\x8d\x67\xa4\x6c\xd2\x45\xb3\xcc\x63\x2a\xd3\x44\x8b\xa6\x25\xe9\x0d\x6c\xe0\x79\xc4\xc3\x9c\xe6\xea\xab\x80\xd8\x61\xdc\x30\xc5\xf3\x0c\x53\x19\xbe\x4e\xab\x16\xb2\x57\xb8\x43\xcf\xcf\xa7\x51\x26\x21\x96\x09\x3a\x73\x2e\x1a\xea\x90\x48\x34\x19\xd8\xa4\x7e\xfd\x62\xa1\x77\x5e\x69\x06\xdc\x80\x77\x0f\x64\x8c\x26\x53\x6d\xb6\x7e\xfa\xb5\x3e\xd8\xbc\xf0\xaf\x8f\x83\x4c\x06\x5a\xc5\xc1\xdd\x67\xed\x73\x19\xdc\x6d\x3e\x41\x8f\x7f\x85\xdf\x36\x65\x97\x49\xfa\x52\x39\xee\xae\xce\xc6\x17\xe1\xd5\xd9\xac\x2d\xef\x1d\x11\xfb\x81\x4b\x1f\xb7\xe0\xc5\xe0\x6e\xf7\x37\x1d\x26\x81\x1f\xda\x0a\xe8\xe5\x31\xa8\x4b\x25\xe8\xae\xa2\xc9\x60\x76\x3a\x9a\xac\xe9\x23\xe3\xe5\x45\x83\xb3\xf1\x6c\x78\x15\x9e\x5c\x0c\x4f\xfb\xef\xe0\x6c\x1c\x4e\x2e\xfb\xe4\x58\x38\xb9\x5c\xdb\xa5\x9d\xcd\xf4\xb3\x26\x08\x9b\x7a\x67\xe0\x71\xa1\x0d\xcb\x73\x5d\xa5\x29\x7f\x80\x38\x93\xe0\x79\x79\x92\xe6\x2c\xd3\x70\xe0\x2d\x0f\xe8\x33\x69\x03\x55\xed\xc6\x1a\xfc\x60\xfb\x31\x54\x6f\xf5\xdc\x9d\x1e\xa0\x17\x3c\x35\x8e\x83\xf7\x2c\xb7\xba\xd1\xf9\x1a\xdc\xee\x57\xd7\xf9\x77\x00\x00\x00\xff\xff\x15\xe6\x83\x2c\xf6\x0f\x00\x00") +var _testImagesImageUtilSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x57\x5b\x73\xdb\xb8\x15\x7e\xe7\xaf\x38\x4b\x71\xd6\x52\xc6\x24\x93\x34\x93\xa6\x4e\x35\x13\x5a\x56\x1d\x4d\x6c\xab\x95\xe4\xdd\xc9\x3a\xae\x07\x22\x0f\x29\xd4\x24\xc0\x05\x40\xcb\x5e\x5b\xf9\xed\x9d\x03\x92\xba\xf8\xb2\xcd\x53\xfd\x60\x11\xc0\xb9\x7c\xf8\xce\x05\x40\xe7\xa7\xb0\xd2\x2a\x9c\x73\x11\xa2\xb8\x81\x39\xd3\x0b\xc7\xe9\xc0\x40\x96\x77\x8a\x67\x0b\x03\x6f\x5f\xbf\xf9\x2b\xcc\x16\x08\x5f\xaa\x39\x2a\x81\x06\x35\x44\x95\x59\x48\xa5\x03\xa7\xe3\x74\xe0\x84\xc7\x28\x34\x26\x50\x89\x04\x15\x98\x05\x42\x54\xb2\x78\x81\xed\xca\x3e\xfc\x82\x4a\x73\x29\xe0\x6d\xf0\x1a\xba\x24\xe0\x36\x4b\x6e\xef\xa3\xd3\x81\x3b\x59\x41\xc1\xee\x40\x48\x03\x95\x46\x30\x0b\xae\x21\xe5\x39\x02\xde\xc6\x58\x1a\xe0\x02\x62\x59\x94\x39\x67\x22\x46\x58\x72\xb3\xb0\x6e\x1a\x23\x81\xd3\x81\xaf\x8d\x09\x39\x37\x8c\x0b\x60\x10\xcb\xf2\x0e\x64\xba\x2d\x07\xcc\x58\xc0\xf4\xb7\x30\xa6\x3c\x08\xc3\xe5\x72\x19\x30\x0b\x36\x90\x2a\x0b\xf3\x5a\x50\x87\x27\xa3\xc1\xf0\x6c\x3a\xf4\xdf\x06\xaf\xad\xca\xb9\xc8\x51\x6b\x50\xf8\x7b\xc5\x15\x26\x30\xbf\x03\x56\x96\x39\x8f\xd9\x3c\x47\xc8\xd9\x12\xa4\x02\x96\x29\xc4\x04\x8c\x24\xbc\x4b\xc5\x0d\x17\xd9\x3e\x68\x99\x9a\x25\x53\xe8\x74\x20\xe1\xda\x28\x3e\xaf\xcc\x0e\x59\x2d\x3a\xae\x77\x04\xa4\x00\x26\xc0\x8d\xa6\x30\x9a\xba\x70\x18\x4d\x47\xd3\x7d\xa7\x03\xbf\x8e\x66\x9f\xc7\xe7\x33\xf8\x35\x9a\x4c\xa2\xb3\xd9\x68\x38\x85\xf1\x04\x06\xe3\xb3\xa3\xd1\x6c\x34\x3e\x9b\xc2\xf8\x1f\x10\x9d\x7d\x85\x2f\xa3\xb3\xa3\x7d\x40\x6e\x16\xa8\x00\x6f\x4b\x45\xf8\xa5\x02\x4e\x34\x62\x42\x9c\x4d\x11\x77\x00\xa4\xb2\x06\xa4\x4b\x8c\x79\xca\x63\xc8\x99\xc8\x2a\x96\x21\x64\xf2\x06\x95\xe0\x22\x83\x12\x55\xc1\x35\x05\x53\x03\x13\x89\xd3\x81\x9c\x17\xdc\x30\x63\x67\x9e\x6c\x2a\x70\x1c\x8d\x06\x7c\x09\xa8\x14\xde\x72\xd3\x0e\x85\xac\x84\xc6\xf5\xb0\xe4\x25\xa6\x8c\xe7\x8e\x33\x8b\xa6\x5f\xfa\xde\x1b\x67\x74\x1a\x1d\x0f\xfb\xde\x5b\xc7\xf9\x72\x7e\x38\xbc\x9a\x8c\xc7\xb3\xbe\xeb\x75\xe3\x04\x5c\xaf\x9b\x70\x25\x58\x81\xe0\x7a\xf7\x87\xd1\xf4\xf3\xd5\x74\x7c\x3e\x19\x0c\x57\x6e\x2f\x0c\x82\x30\x08\x5c\xf8\xf9\x67\x28\x97\x09\xf8\xff\xec\xb9\x94\xcd\xa7\xac\x2c\x09\xbd\x4c\x21\x93\x10\x4d\x06\x9f\x29\x4a\x2c\x36\x15\xcb\x81\xa9\x78\xc1\x0d\xc6\xa6\x52\xa8\x41\x2f\x78\x59\x62\x02\x25\x53\x86\xe4\x8b\x2a\x37\x9c\x44\xc2\xdf\xb1\xa8\xfc\x4a\xa3\xf2\x35\xed\x37\x86\x52\xc9\xff\x60\x6c\x9c\x04\xe3\x9c\x29\x04\x3f\x82\x7f\x0d\x4f\xcf\xc9\xfc\xb4\xdf\x85\x0b\x97\x15\xc9\xfb\x77\xee\x65\xdf\xbd\xfd\xf0\xfe\xea\xfd\x3b\x97\xa6\x54\x41\x13\xf4\x53\x8f\x6a\x01\x46\x1e\x6a\x89\xb2\x8c\xdf\xbf\xcb\x91\x66\xdb\x4f\xb8\x70\xf5\x5f\xfe\xf6\xfa\x96\xe6\xea\x0f\xe8\xd1\xb6\x26\x68\x2a\x25\x34\xe4\x5c\x5b\xac\x2c\xcf\x41\x57\x65\x29\x15\x25\xd0\xee\xbe\x52\x25\x0b\xca\xa2\xa1\x25\xd6\x56\x97\x43\x7a\x91\x8a\x17\xba\xdb\x83\x7b\x07\x20\xae\x0c\xf8\x09\xb8\x7d\x17\xfc\x14\xde\x80\x77\x6f\x85\x57\xe1\x5a\xcf\x59\x6d\xfb\x9d\x33\x8d\xbc\xa0\x04\x11\x4d\xe2\x57\xd4\x07\xb8\x80\x23\x19\x5f\xa3\xb2\x25\x4c\x59\xc5\xc4\x1d\x64\xfc\x06\xc5\x0e\x28\x27\x43\x73\xc8\x34\x8e\xc8\x44\x03\x81\xd6\x29\xfc\x00\x18\x2f\x24\x78\xdd\x4c\x61\x49\x71\xa6\x85\x55\xdf\xdd\xda\xc2\x43\x83\xb7\x0f\x7e\xfa\xb6\x57\x23\x9b\xd9\xce\x51\x89\x98\xf2\x11\x96\x3c\xcf\x61\x5e\xf1\x3c\x01\x83\xda\x40\x8d\xd5\x02\xca\x73\x9b\xa6\x3b\x1c\x39\x1d\x28\x50\x90\x66\xbd\x89\x5d\xb6\x02\x18\x89\x5a\x67\xae\x91\xda\x90\x4c\x1f\x49\x50\x79\x72\xb3\xed\x75\xdb\xd5\x6e\x60\xea\x98\xf9\x60\x53\x64\x1f\x98\x2a\x48\xdb\xe6\xc3\x3e\x34\x71\xdf\x07\x1b\x6c\xc7\xda\x6a\xf8\xe1\x29\x5c\x5c\x50\x74\x9e\xc6\x06\x2e\x2f\x3f\x92\x27\xe1\x50\x83\x23\x27\xba\xef\x75\xd7\x31\xee\x11\xa7\xb9\xc6\xed\xd5\xfb\x9f\xd6\x09\x7b\xf1\xe9\x72\xe5\x00\xa4\xdc\xa1\xff\x84\x9b\x50\x72\x01\x35\xf5\x7a\xf5\x11\x12\x69\x75\x6d\x60\xdc\x43\x02\x45\x35\xb5\x21\xb5\x85\x64\x0b\xec\xa0\x51\x5c\x05\x41\xe0\x3a\x56\xb1\x03\x03\x85\xcc\x20\x30\x30\x58\x94\x52\x31\x75\x07\x09\x57\x18\x1b\xa9\xee\xac\x09\xbc\x41\x75\xb7\x13\x15\xea\x32\x75\x33\x27\x12\x6b\x67\xb1\x14\x06\x85\x69\x8c\x92\x40\x13\xe4\xb5\x84\xcd\xf6\x67\x9c\x58\x15\x9a\xbf\x4a\xb8\xea\x7b\xdd\xe2\x9a\x06\xe0\x27\x3d\xbb\x12\x97\xe0\x6f\xf6\x11\xbe\x02\xef\xbe\x15\x5e\x59\x81\xa7\xf4\x9f\xb2\x6b\xb4\x79\xbe\xc3\x3e\xe1\x2a\xd8\x35\xc2\x9c\x37\x69\x68\x68\x14\x53\x9b\x68\x0a\x95\xc0\x96\x0a\xed\x91\xa2\x39\x9d\xaa\x54\x44\x98\xac\xf5\x89\x8f\x79\xcb\x32\x49\x27\xb6\xa8\xea\x1d\x36\x52\xd6\x87\x3f\xd8\x50\x4f\xfe\x88\xfe\x7e\xc3\x3e\xcc\xa2\xc9\xf1\x70\xd6\x7f\xbc\x91\x94\xdb\x9f\xb2\xd2\x8b\xe4\xc9\x2e\x3b\x0d\x8b\x86\x65\x76\x3c\x8b\x8e\xfb\x5e\xf7\xef\xbf\x0c\x27\xd3\xd1\xf8\xac\xe7\xec\x52\xf1\x42\x02\xc2\x66\xa1\xef\x75\xb7\x4b\xbd\xcd\x8c\x5e\x23\x47\x3d\xc3\xe7\xe0\xea\x87\xb5\xc6\x83\x6d\xec\xf5\xf7\xea\x21\x73\xb7\x1a\x4a\x0b\xbf\x41\xba\x4e\x0d\xdb\x9e\x5f\xb5\xbd\x79\xce\x05\x05\xde\xc8\x1d\xd6\x68\xbc\x49\x15\xdb\xda\x77\x93\xad\x96\x92\x02\x6e\x3f\xbc\x87\x32\x67\x26\x95\xaa\xd8\xda\x6e\xdb\x8f\x06\x93\xf1\x74\x7a\x75\x78\x3e\x3a\x39\xba\xda\x06\xd7\x7b\xcc\x41\xad\xd6\xf6\x2f\x17\xfa\x7d\x68\x8e\x85\xc7\x92\x1b\x1e\xc2\x6d\xeb\x61\xf2\x64\xf3\x5b\x75\xbc\x4b\x5f\x5b\xcc\x0f\xde\xfd\xa6\xae\x3d\xf2\x7c\xf9\x1c\x89\x35\x81\x13\xcc\xb8\x36\xa8\x1e\x11\xd8\xb6\xae\x4d\xdb\x2a\x95\x8c\x51\x6b\xa9\x74\x7b\x2d\x23\x12\xe3\x4a\x29\x14\x06\xa4\xd8\x18\x6d\x28\x57\x95\x00\xdf\x57\x05\xf8\x7e\xa9\xf8\x0d\xcf\x31\xc3\xe4\x4f\x0e\xd4\x03\xd5\x42\xf1\x7d\x85\x74\x3b\x68\x0d\xc6\x95\xca\xc1\xd7\xd3\x13\x7b\x6f\xd3\x07\x61\x98\x71\xb3\xa8\xe6\x41\x2c\x8b\xf0\x65\x83\xa1\xc2\x1c\x19\xdd\xe7\x12\xb9\x14\xb9\x64\x49\x58\x33\xd3\x64\xf2\x2a\xac\x0f\xe6\x2b\xab\xf8\x0c\x69\x8d\x9d\xc0\x30\x15\x64\x7f\xc0\x03\x18\xa6\xc0\xbf\xfd\xa3\x2e\xb9\xdd\xa2\xd9\x09\xc5\x6e\x08\xc3\xe7\xb8\x6f\x2a\xb0\xcd\xe4\x86\xb3\x3a\x3b\x7d\xbf\xac\xf2\x1c\x7c\x03\xde\xfd\x64\x78\x3c\x9a\xce\x26\x5f\x57\x61\x5b\xe4\x7e\x93\x4d\x07\xde\xfd\x2c\x3a\x5e\x41\x50\x5b\x28\x65\x49\xcd\x23\xa1\x48\xbc\x74\x18\x52\xbd\x3f\xe9\x25\xda\xa1\xe9\xe6\x80\x69\x6a\x7d\xdd\xdf\xd6\x45\xff\x7f\x39\x7b\xfe\xc7\xd1\xd3\xa0\xb6\xbb\xf8\x01\x66\x5a\x36\x1c\xca\x73\x6a\xd4\xb5\xef\xfa\xec\xe5\x82\x2e\xea\xb6\xde\x0b\x26\x78\x8a\xda\x04\x30\xcc\x0e\x60\xcf\xd6\x67\x7b\x08\xef\x51\xcf\xd8\x7b\xd6\x99\x95\x6b\x83\xf0\xac\x44\x63\xa3\x91\xd9\x73\x60\xed\xaa\xef\x75\xeb\x0b\x4e\x8d\xe8\xa1\x4e\x1d\x04\x57\x7f\xbf\xf8\x37\x5c\xbe\xfa\xee\xb5\xe6\xbe\x85\x9e\xb5\xf6\xcd\xff\xf9\xc0\x9b\x45\xc7\xdf\x33\xb7\xe7\xac\xa9\x68\xed\x41\x5c\x1f\xad\xbe\xcf\x0a\x14\xc9\xb3\x70\x36\x50\x5b\xad\xd5\x0f\x12\xbe\xf6\xc2\x84\x90\xa6\xf1\x43\x3a\xed\x29\xf3\xe7\xee\x7e\x38\x50\x4f\x1d\xbe\x18\xea\x56\xf3\x99\x4c\xa7\xef\xc7\x67\x67\x26\x21\x96\x09\x3a\x73\x2e\x9a\x44\x27\x91\xe9\x64\x60\xb7\xfd\xe9\xa3\x75\xed\x3c\xd3\xba\xb8\x01\xff\x06\xc8\x19\x9d\xa3\xb5\xdb\xfa\xeb\xb7\x7a\x61\xfd\x3c\x59\x1d\x84\x99\x0c\xb5\x8a\xc3\xeb\x0f\x3a\xe0\x32\xbc\x5e\x3f\x98\x0f\x7e\x83\x6f\xeb\x26\x91\x49\x7a\x57\x1d\x78\xf7\xc7\xe3\x93\xe8\xec\xf8\xaa\x6d\x46\x5b\x22\xf6\x39\x4e\x4f\x71\xf0\x63\x70\x37\xf3\xeb\x7e\x98\xc0\x8b\xbe\x42\xba\xea\x86\x75\x61\x87\xde\xfd\x74\x32\xb8\x3a\x1a\x4d\x56\xf4\x24\x7a\x6a\x68\x70\x3c\xbe\x1a\x9e\x45\x87\x27\xc3\xa3\xfe\x6b\x38\x1e\x47\x93\xd3\x3e\x01\x8b\x26\xa7\x2b\x3b\xb4\x37\x09\xfa\x59\x11\x85\x4d\x77\x62\xe0\x73\xa1\x0d\xcb\x73\x5d\xa5\x29\xbf\x85\x38\x93\xe0\xfb\x79\x92\xe6\x2c\xd3\xb0\xe7\x2f\xf7\xe8\x51\xb7\xa6\xaa\x86\xb1\x82\x20\xdc\x3c\xdd\xea\xa9\x9e\xbb\xd5\xb1\xf4\x82\xa7\xc6\x71\xf0\x86\xe5\x56\x77\xfa\x65\x05\xae\xf7\xc9\x75\xfe\x1b\x00\x00\xff\xff\x78\xef\x93\x49\xa4\x10\x00\x00") func testImagesImageUtilShBytes() ([]byte, error) { return bindataRead( diff --git a/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go b/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go index 9d7794b96b30..30df63e7afef 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go @@ -222,6 +222,24 @@ func density30AddonResourceVerifier(numNodes int) map[string]framework.ResourceC return constraints } +func computeAverage(sample []float64) float64 { + sum := 0.0 + for _, value := range sample { + sum += value + } + return sum / float64(len(sample)) +} + +func computeQuantile(sample []float64, quantile float64) float64 { + Expect(sort.Float64sAreSorted(sample)).To(Equal(true)) + Expect(quantile >= 0.0 && quantile <= 1.0).To(Equal(true)) + index := int(quantile*float64(len(sample))) - 1 + if index < 0 { + return math.NaN() + } + return sample[index] +} + func logPodStartupStatus( c clientset.Interface, expectedPods int, @@ -398,7 +416,16 @@ var _ = SIGDescribe("Density", func() { latency, err := framework.VerifySchedulerLatency(c) framework.ExpectNoError(err) if err == nil { - latency.ThroughputSamples = scheduleThroughputs + // Compute avg and quantiles of throughput (excluding last element, that's usually an outlier). + sampleSize := len(scheduleThroughputs) + if sampleSize > 1 { + scheduleThroughputs = scheduleThroughputs[:sampleSize-1] + sort.Float64s(scheduleThroughputs) + latency.ThroughputAverage = computeAverage(scheduleThroughputs) + latency.ThroughputPerc50 = computeQuantile(scheduleThroughputs, 0.5) + latency.ThroughputPerc90 = computeQuantile(scheduleThroughputs, 0.9) + latency.ThroughputPerc99 = computeQuantile(scheduleThroughputs, 0.99) + } summaries = append(summaries, latency) } summaries = append(summaries, testPhaseDurations) diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/csi_objects.go b/vendor/k8s.io/kubernetes/test/e2e/storage/csi_objects.go index d888abdbb5c7..15fd7cf32824 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/csi_objects.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/csi_objects.go @@ -37,12 +37,23 @@ import ( . "github.com/onsi/ginkgo" ) -const ( - csiHostPathPluginImage string = "quay.io/k8scsi/hostpathplugin:v0.2.0" - csiExternalAttacherImage string = "quay.io/k8scsi/csi-attacher:v0.2.0" - csiExternalProvisionerImage string = "quay.io/k8scsi/csi-provisioner:v0.2.1" - csiDriverRegistrarImage string = "quay.io/k8scsi/driver-registrar:v0.2.0" -) +var csiImageVersions = map[string]string{ + "hostpathplugin": "v0.2.0", + "csi-attacher": "v0.2.0", + "csi-provisioner": "v0.2.1", + "driver-registrar": "v0.2.0", +} + +func csiContainerImage(image string) string { + var fullName string + fullName += framework.TestContext.CSIImageRegistry + "/" + image + ":" + if framework.TestContext.CSIImageVersion != "" { + fullName += framework.TestContext.CSIImageVersion + } else { + fullName += csiImageVersions[image] + } + return fullName +} // Create the driver registrar cluster role if it doesn't exist, no teardown so that tests // are parallelizable. This role will be shared with many of the CSI tests. @@ -207,7 +218,7 @@ func csiHostPathPod( Containers: []v1.Container{ { Name: "external-provisioner", - Image: csiExternalProvisionerImage, + Image: csiContainerImage("csi-provisioner"), ImagePullPolicy: v1.PullAlways, Args: []string{ "--v=5", @@ -223,7 +234,7 @@ func csiHostPathPod( }, { Name: "driver-registrar", - Image: csiDriverRegistrarImage, + Image: csiContainerImage("driver-registrar"), ImagePullPolicy: v1.PullAlways, Args: []string{ "--v=5", @@ -248,7 +259,7 @@ func csiHostPathPod( }, { Name: "external-attacher", - Image: csiExternalAttacherImage, + Image: csiContainerImage("csi-attacher"), ImagePullPolicy: v1.PullAlways, Args: []string{ "--v=5", @@ -269,7 +280,7 @@ func csiHostPathPod( }, { Name: "hostpath-driver", - Image: csiHostPathPluginImage, + Image: csiContainerImage("hostpathplugin"), ImagePullPolicy: v1.PullAlways, SecurityContext: &v1.SecurityContext{ Privileged: &priv, diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go b/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go index e9a9a8079183..5d37ca931f1e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go @@ -205,7 +205,7 @@ func (e *E2EServices) startKubelet() (*server, error) { "-v", "/etc/localtime:/etc/localtime:ro", "-v", "/etc/machine-id:/etc/machine-id:ro", "-v", filepath.Dir(kubeconfigPath)+":/etc/kubernetes", - "-v", "/:/rootfs:ro,rslave", + "-v", "/:/rootfs:rw,rslave", "-v", "/run:/run", "-v", "/sys/fs/cgroup:/sys/fs/cgroup:rw", "-v", "/sys:/sys:rw", diff --git a/vendor/k8s.io/kubernetes/test/images/Makefile b/vendor/k8s.io/kubernetes/test/images/Makefile index eab02cc3a99d..81be891ce491 100644 --- a/vendor/k8s.io/kubernetes/test/images/Makefile +++ b/vendor/k8s.io/kubernetes/test/images/Makefile @@ -36,7 +36,7 @@ all: all-container all-container: ./image-util.sh build $(WHAT) -all-push: all-container manifest-tool +all-push: all-container ./image-util.sh push $(WHAT) .PHONY: all all-push all-container diff --git a/vendor/k8s.io/kubernetes/test/images/image-util.sh b/vendor/k8s.io/kubernetes/test/images/image-util.sh index c933d2c8f996..238bade4382f 100755 --- a/vendor/k8s.io/kubernetes/test/images/image-util.sh +++ b/vendor/k8s.io/kubernetes/test/images/image-util.sh @@ -90,19 +90,23 @@ build() { # This function will push the docker images push() { + TAG=$(<${IMAGE}/VERSION) if [[ -f ${IMAGE}/BASEIMAGE ]]; then archs=$(listArchs) else archs=${!QEMUARCHS[@]} fi for arch in ${archs}; do - TAG=$(<${IMAGE}/VERSION) docker push ${REGISTRY}/${IMAGE}-${arch}:${TAG} done - # Make archs list into OS/architecture pair. Eg: 'amd64 ppc64le' to 'linux/amd64,linux/ppc64le' - archs=$(echo $archs | sed -e 's/[^ ]* */linux\/&/g' -e 's/ /,/g') - manifest-tool push from-args --platforms ${archs} --template ${REGISTRY}/${IMAGE}-ARCH:${TAG} --target ${REGISTRY}/${IMAGE}:${TAG} + # Make archs list into image manifest. Eg: 'amd64 ppc64le' to '${REGISTRY}/${IMAGE}-amd64:${TAG} ${REGISTRY}/${IMAGE}-ppc64le:${TAG}' + manifest=$(echo $archs | sed -e "s~[^ ]*~$REGISTRY\/$IMAGE\-&:$TAG~g") + docker manifest create --amend ${REGISTRY}/${IMAGE}:${TAG} ${manifest} + for arch in ${archs}; do + docker manifest annotate --arch ${arch} ${REGISTRY}/${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}-${arch}:${TAG} + done + docker manifest push ${REGISTRY}/${IMAGE}:${TAG} } # This function is for building the go code diff --git a/vendor/k8s.io/kubernetes/test/utils/update_resources.go b/vendor/k8s.io/kubernetes/test/utils/update_resources.go index b666454e54ac..210847cb3794 100644 --- a/vendor/k8s.io/kubernetes/test/utils/update_resources.go +++ b/vendor/k8s.io/kubernetes/test/utils/update_resources.go @@ -21,6 +21,8 @@ import ( "time" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/scale" "k8s.io/kubernetes/pkg/kubectl" ) @@ -30,13 +32,32 @@ const ( updateRetryInterval = 5 * time.Second updateRetryTimeout = 1 * time.Minute waitRetryInterval = 5 * time.Second - waitRetryTImeout = 5 * time.Minute + waitRetryTimeout = 5 * time.Minute ) -func ScaleResourceWithRetries(scaler kubectl.Scaler, namespace, name string, size uint, gr schema.GroupResource) error { - waitForScale := kubectl.NewRetryParams(updateRetryInterval, updateRetryTimeout) - waitForReplicas := kubectl.NewRetryParams(waitRetryInterval, waitRetryTImeout) - if err := scaler.Scale(namespace, name, size, nil, waitForScale, waitForReplicas, gr); err != nil { +func RetryErrorCondition(condition wait.ConditionFunc) wait.ConditionFunc { + return func() (bool, error) { + done, err := condition() + if err != nil && IsRetryableAPIError(err) { + return false, nil + } + return done, err + } +} + +func ScaleResourceWithRetries(scalesGetter scale.ScalesGetter, namespace, name string, size uint, gr schema.GroupResource) error { + scaler := kubectl.NewScaler(scalesGetter) + preconditions := &kubectl.ScalePrecondition{ + Size: -1, + ResourceVersion: "", + } + waitForReplicas := kubectl.NewRetryParams(waitRetryInterval, waitRetryTimeout) + cond := RetryErrorCondition(kubectl.ScaleCondition(scaler, preconditions, namespace, name, size, nil, gr)) + err := wait.PollImmediate(updateRetryInterval, updateRetryTimeout, cond) + if err == nil { + err = kubectl.WaitForScaleHasDesiredReplicas(scalesGetter, gr, name, namespace, size, waitForReplicas) + } + if err != nil { return fmt.Errorf("Error while scaling %s to %d replicas: %v", name, size, err) } return nil From d9f27908156431b8489fe93d992d235f3be21c37 Mon Sep 17 00:00:00 2001 From: David Eads Date: Fri, 29 Jun 2018 16:11:55 -0400 Subject: [PATCH 3/5] generated --- api/docs/api/v1.Binding.adoc | 72 - api/docs/api/v1.ConfigMap.adoc | 74 +- api/docs/api/v1.Endpoints.adoc | 74 +- api/docs/api/v1.Event.adoc | 74 +- api/docs/api/v1.LimitRange.adoc | 74 +- api/docs/api/v1.PersistentVolumeClaim.adoc | 74 +- api/docs/api/v1.Pod.adoc | 74 +- api/docs/api/v1.PodTemplate.adoc | 74 +- api/docs/api/v1.ReplicationController.adoc | 74 +- api/docs/api/v1.ResourceQuota.adoc | 74 +- api/docs/api/v1.Secret.adoc | 74 +- api/docs/api/v1.Service.adoc | 74 +- api/docs/api/v1.ServiceAccount.adoc | 74 +- .../v1.DeploymentConfig.adoc | 74 +- api/docs/apis-apps/v1.ControllerRevision.adoc | 74 +- api/docs/apis-apps/v1.DaemonSet.adoc | 74 +- api/docs/apis-apps/v1.Deployment.adoc | 74 +- api/docs/apis-apps/v1.ReplicaSet.adoc | 74 +- api/docs/apis-apps/v1.StatefulSet.adoc | 74 +- .../apis-apps/v1beta1.ControllerRevision.adoc | 74 +- api/docs/apis-apps/v1beta1.Deployment.adoc | 74 +- api/docs/apis-apps/v1beta1.StatefulSet.adoc | 74 +- .../apis-apps/v1beta2.ControllerRevision.adoc | 74 +- api/docs/apis-apps/v1beta2.DaemonSet.adoc | 74 +- api/docs/apis-apps/v1beta2.Deployment.adoc | 74 +- api/docs/apis-apps/v1beta2.ReplicaSet.adoc | 74 +- api/docs/apis-apps/v1beta2.StatefulSet.adoc | 74 +- .../v1.LocalSubjectAccessReview.adoc | 72 - .../v1beta1.LocalSubjectAccessReview.adoc | 72 - .../v1.LocalResourceAccessReview.adoc | 72 - .../v1.LocalSubjectAccessReview.adoc | 72 - .../v1.Role.adoc | 74 +- .../v1.RoleBinding.adoc | 74 +- .../v1.RoleBindingRestriction.adoc | 74 +- .../v1.SelfSubjectRulesReview.adoc | 72 - .../v1.SubjectRulesReview.adoc | 72 - .../v1.HorizontalPodAutoscaler.adoc | 74 +- .../v2beta1.HorizontalPodAutoscaler.adoc | 74 +- api/docs/apis-batch/v1.Job.adoc | 74 +- api/docs/apis-batch/v1beta1.CronJob.adoc | 74 +- .../apis-build.openshift.io/v1.Build.adoc | 74 +- .../v1.BuildConfig.adoc | 74 +- .../apis-events.k8s.io/v1beta1.Event.adoc | 74 +- .../apis-extensions/v1beta1.DaemonSet.adoc | 74 +- .../apis-extensions/v1beta1.Deployment.adoc | 74 +- api/docs/apis-extensions/v1beta1.Ingress.adoc | 74 +- .../v1beta1.NetworkPolicy.adoc | 74 +- .../apis-extensions/v1beta1.ReplicaSet.adoc | 74 +- .../v1.ImageStream.adoc | 74 +- .../v1.ImageStreamImport.adoc | 72 - .../v1.ImageStreamMapping.adoc | 72 - .../v1.ImageStreamTag.adoc | 74 +- .../v1.EgressNetworkPolicy.adoc | 74 +- .../v1.NetworkPolicy.adoc | 74 +- .../v1beta1.PodDisruptionBudget.adoc | 74 +- .../v1.Role.adoc | 74 +- .../v1.RoleBinding.adoc | 74 +- .../v1beta1.Role.adoc | 74 +- .../v1beta1.RoleBinding.adoc | 74 +- .../apis-route.openshift.io/v1.Route.adoc | 74 +- .../v1.PodSecurityPolicyReview.adoc | 72 - ...v1.PodSecurityPolicySelfSubjectReview.adoc | 72 - .../v1.PodSecurityPolicySubjectReview.adoc | 72 - .../v1.Template.adoc | 146 +- .../v1.TemplateInstance.adoc | 74 +- api/docs/oapi/v1.Build.adoc | 74 +- api/docs/oapi/v1.BuildConfig.adoc | 74 +- api/docs/oapi/v1.DeploymentConfig.adoc | 74 +- api/docs/oapi/v1.EgressNetworkPolicy.adoc | 74 +- api/docs/oapi/v1.ImageStream.adoc | 74 +- api/docs/oapi/v1.ImageStreamImport.adoc | 72 - api/docs/oapi/v1.ImageStreamMapping.adoc | 72 - api/docs/oapi/v1.ImageStreamTag.adoc | 74 +- .../oapi/v1.LocalResourceAccessReview.adoc | 72 - .../oapi/v1.LocalSubjectAccessReview.adoc | 72 - api/docs/oapi/v1.PodSecurityPolicyReview.adoc | 72 - ...v1.PodSecurityPolicySelfSubjectReview.adoc | 72 - .../v1.PodSecurityPolicySubjectReview.adoc | 72 - api/docs/oapi/v1.ProcessedTemplate.adoc | 72 - api/docs/oapi/v1.Role.adoc | 74 +- api/docs/oapi/v1.RoleBinding.adoc | 74 +- api/docs/oapi/v1.RoleBindingRestriction.adoc | 74 +- api/docs/oapi/v1.Route.adoc | 74 +- api/docs/oapi/v1.SelfSubjectRulesReview.adoc | 72 - api/docs/oapi/v1.SubjectRulesReview.adoc | 72 - api/docs/oapi/v1.Template.adoc | 74 +- .../k8s_io_api_autoscaling_v2beta1.proto | 162 - api/swagger-spec/api-v1.json | 657 +- api/swagger-spec/oapi-v1.json | 1111 +- api/swagger-spec/openshift-openapi-spec.json | 24208 ++++++---------- pkg/openapi/zz_generated.openapi.go | 527 +- .../bootstrap_cluster_roles.yaml | 1 + .../bootstrap_policy_file.yaml | 1 + 93 files changed, 9541 insertions(+), 23518 deletions(-) diff --git a/api/docs/api/v1.Binding.adoc b/api/docs/api/v1.Binding.adoc index 32427a282875..b3d2324c1434 100644 --- a/api/docs/api/v1.Binding.adoc +++ b/api/docs/api/v1.Binding.adoc @@ -103,78 +103,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-bindings]] -=== Create a Binding -Create a Binding - -==== HTTP request ----- -POST /api/v1/bindings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Binding", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/bindings <<'EOF' -{ - "kind": "Binding", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Binding -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Binding -|201 Created|v1.Binding -|202 Accepted|v1.Binding -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-bindings]] === Create a Binding in a namespace Create a Binding diff --git a/api/docs/api/v1.ConfigMap.adoc b/api/docs/api/v1.ConfigMap.adoc index 4dc6f5c379a8..af26b9dde736 100644 --- a/api/docs/api/v1.ConfigMap.adoc +++ b/api/docs/api/v1.ConfigMap.adoc @@ -99,78 +99,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-configmaps]] -=== Create a ConfigMap -Create a ConfigMap - -==== HTTP request ----- -POST /api/v1/configmaps HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ConfigMap", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/configmaps <<'EOF' -{ - "kind": "ConfigMap", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ConfigMap -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ConfigMap -|201 Created|v1.ConfigMap -|202 Accepted|v1.ConfigMap -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-configmaps]] === Create a ConfigMap in a namespace Create a ConfigMap @@ -330,7 +258,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -338,6 +265,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.Endpoints.adoc b/api/docs/api/v1.Endpoints.adoc index 10312015ae26..c62b47fc7b60 100644 --- a/api/docs/api/v1.Endpoints.adoc +++ b/api/docs/api/v1.Endpoints.adoc @@ -135,78 +135,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-endpoints]] -=== Create a Endpoints -Create Endpoints - -==== HTTP request ----- -POST /api/v1/endpoints HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Endpoints", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/endpoints <<'EOF' -{ - "kind": "Endpoints", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Endpoints -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Endpoints -|201 Created|v1.Endpoints -|202 Accepted|v1.Endpoints -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-endpoints]] === Create a Endpoints in a namespace Create Endpoints @@ -366,7 +294,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -374,6 +301,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.Event.adoc b/api/docs/api/v1.Event.adoc index 0bfb15a87c0c..d36d180dbe63 100644 --- a/api/docs/api/v1.Event.adoc +++ b/api/docs/api/v1.Event.adoc @@ -128,78 +128,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-events]] -=== Create a Event -Create an Event - -==== HTTP request ----- -POST /api/v1/events HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Event", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/events <<'EOF' -{ - "kind": "Event", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Event -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Event -|201 Created|v1.Event -|202 Accepted|v1.Event -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-events]] === Create a Event in a namespace Create an Event @@ -359,7 +287,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -367,6 +294,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.LimitRange.adoc b/api/docs/api/v1.LimitRange.adoc index d0833366f481..a12cbfd2c2f9 100644 --- a/api/docs/api/v1.LimitRange.adoc +++ b/api/docs/api/v1.LimitRange.adoc @@ -108,78 +108,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-limitranges]] -=== Create a LimitRange -Create a LimitRange - -==== HTTP request ----- -POST /api/v1/limitranges HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LimitRange", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/limitranges <<'EOF' -{ - "kind": "LimitRange", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LimitRange -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LimitRange -|201 Created|v1.LimitRange -|202 Accepted|v1.LimitRange -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-limitranges]] === Create a LimitRange in a namespace Create a LimitRange @@ -339,7 +267,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -347,6 +274,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.PersistentVolumeClaim.adoc b/api/docs/api/v1.PersistentVolumeClaim.adoc index 7b43bc7ec7ef..4a280ffe51c0 100644 --- a/api/docs/api/v1.PersistentVolumeClaim.adoc +++ b/api/docs/api/v1.PersistentVolumeClaim.adoc @@ -127,78 +127,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-persistentvolumeclaims]] -=== Create a PersistentVolumeClaim -Create a PersistentVolumeClaim - -==== HTTP request ----- -POST /api/v1/persistentvolumeclaims HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PersistentVolumeClaim", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/persistentvolumeclaims <<'EOF' -{ - "kind": "PersistentVolumeClaim", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PersistentVolumeClaim -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PersistentVolumeClaim -|201 Created|v1.PersistentVolumeClaim -|202 Accepted|v1.PersistentVolumeClaim -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-persistentvolumeclaims]] === Create a PersistentVolumeClaim in a namespace Create a PersistentVolumeClaim @@ -358,7 +286,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -366,6 +293,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.Pod.adoc b/api/docs/api/v1.Pod.adoc index 899a92903716..1ee65a5f3f66 100644 --- a/api/docs/api/v1.Pod.adoc +++ b/api/docs/api/v1.Pod.adoc @@ -825,78 +825,6 @@ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod- == Operations -[[Post-api-v1-pods]] -=== Create a Pod -Create a Pod - -==== HTTP request ----- -POST /api/v1/pods HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Pod", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/pods <<'EOF' -{ - "kind": "Pod", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Pod -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Pod -|201 Created|v1.Pod -|202 Accepted|v1.Pod -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-pods]] === Create a Pod in a namespace Create a Pod @@ -1056,7 +984,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1064,6 +991,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.PodTemplate.adoc b/api/docs/api/v1.PodTemplate.adoc index 685cb870271d..6226f5821bf9 100644 --- a/api/docs/api/v1.PodTemplate.adoc +++ b/api/docs/api/v1.PodTemplate.adoc @@ -805,78 +805,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-api-v1-podtemplates]] -=== Create a PodTemplate -Create a PodTemplate - -==== HTTP request ----- -POST /api/v1/podtemplates HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodTemplate", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/podtemplates <<'EOF' -{ - "kind": "PodTemplate", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodTemplate -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodTemplate -|201 Created|v1.PodTemplate -|202 Accepted|v1.PodTemplate -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-podtemplates]] === Create a PodTemplate in a namespace Create a PodTemplate @@ -1036,7 +964,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1044,6 +971,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.ReplicationController.adoc b/api/docs/api/v1.ReplicationController.adoc index 35dbfc9084fb..7fc11e92b0c6 100644 --- a/api/docs/api/v1.ReplicationController.adoc +++ b/api/docs/api/v1.ReplicationController.adoc @@ -822,78 +822,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-api-v1-replicationcontrollers]] -=== Create a ReplicationController -Create a ReplicationController - -==== HTTP request ----- -POST /api/v1/replicationcontrollers HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ReplicationController", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/replicationcontrollers <<'EOF' -{ - "kind": "ReplicationController", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ReplicationController -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ReplicationController -|201 Created|v1.ReplicationController -|202 Accepted|v1.ReplicationController -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-replicationcontrollers]] === Create a ReplicationController in a namespace Create a ReplicationController @@ -1053,7 +981,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1061,6 +988,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.ResourceQuota.adoc b/api/docs/api/v1.ResourceQuota.adoc index 49c334b9d9af..e1dcffe0c0ef 100644 --- a/api/docs/api/v1.ResourceQuota.adoc +++ b/api/docs/api/v1.ResourceQuota.adoc @@ -111,78 +111,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-resourcequotas]] -=== Create a ResourceQuota -Create a ResourceQuota - -==== HTTP request ----- -POST /api/v1/resourcequotas HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ResourceQuota", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/resourcequotas <<'EOF' -{ - "kind": "ResourceQuota", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ResourceQuota -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ResourceQuota -|201 Created|v1.ResourceQuota -|202 Accepted|v1.ResourceQuota -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-resourcequotas]] === Create a ResourceQuota in a namespace Create a ResourceQuota @@ -342,7 +270,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -350,6 +277,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.Secret.adoc b/api/docs/api/v1.Secret.adoc index de2fcb57681b..9a22991fb266 100644 --- a/api/docs/api/v1.Secret.adoc +++ b/api/docs/api/v1.Secret.adoc @@ -100,78 +100,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-secrets]] -=== Create a Secret -Create a Secret - -==== HTTP request ----- -POST /api/v1/secrets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Secret", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/secrets <<'EOF' -{ - "kind": "Secret", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Secret -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Secret -|201 Created|v1.Secret -|202 Accepted|v1.Secret -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-secrets]] === Create a Secret in a namespace Create a Secret @@ -331,7 +259,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -339,6 +266,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.Service.adoc b/api/docs/api/v1.Service.adoc index de2b39c6e213..09ebb71d8f73 100644 --- a/api/docs/api/v1.Service.adoc +++ b/api/docs/api/v1.Service.adoc @@ -124,78 +124,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-services]] -=== Create a Service -Create a Service - -==== HTTP request ----- -POST /api/v1/services HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Service", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/services <<'EOF' -{ - "kind": "Service", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Service -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Service -|201 Created|v1.Service -|202 Accepted|v1.Service -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-services]] === Create a Service in a namespace Create a Service @@ -355,7 +283,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -363,6 +290,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/api/v1.ServiceAccount.adoc b/api/docs/api/v1.ServiceAccount.adoc index fe77771fdac6..17c803eb5a6d 100644 --- a/api/docs/api/v1.ServiceAccount.adoc +++ b/api/docs/api/v1.ServiceAccount.adoc @@ -106,78 +106,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-api-v1-serviceaccounts]] -=== Create a ServiceAccount -Create a ServiceAccount - -==== HTTP request ----- -POST /api/v1/serviceaccounts HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ServiceAccount", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/api/v1/serviceaccounts <<'EOF' -{ - "kind": "ServiceAccount", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ServiceAccount -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ServiceAccount -|201 Created|v1.ServiceAccount -|202 Accepted|v1.ServiceAccount -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-api-v1-namespaces-namespace-serviceaccounts]] === Create a ServiceAccount in a namespace Create a ServiceAccount @@ -337,7 +265,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -345,6 +272,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps.openshift.io/v1.DeploymentConfig.adoc b/api/docs/apis-apps.openshift.io/v1.DeploymentConfig.adoc index f0f98fec69f4..f9a0e969cea8 100644 --- a/api/docs/apis-apps.openshift.io/v1.DeploymentConfig.adoc +++ b/api/docs/apis-apps.openshift.io/v1.DeploymentConfig.adoc @@ -1094,78 +1094,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps.openshift.io-v1-deploymentconfigs]] -=== Create a DeploymentConfig -Create a DeploymentConfig - -==== HTTP request ----- -POST /apis/apps.openshift.io/v1/deploymentconfigs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "DeploymentConfig", - "apiVersion": "apps.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps.openshift.io/v1/deploymentconfigs <<'EOF' -{ - "kind": "DeploymentConfig", - "apiVersion": "apps.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.DeploymentConfig -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.DeploymentConfig -|201 Created|v1.DeploymentConfig -|202 Accepted|v1.DeploymentConfig -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps.openshift.io-v1-namespaces-namespace-deploymentconfigs]] === Create a DeploymentConfig in a namespace Create a DeploymentConfig @@ -1325,7 +1253,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1333,6 +1260,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1.ControllerRevision.adoc b/api/docs/apis-apps/v1.ControllerRevision.adoc index 4dad5ac5adb1..8ac0d7b9adc4 100644 --- a/api/docs/apis-apps/v1.ControllerRevision.adoc +++ b/api/docs/apis-apps/v1.ControllerRevision.adoc @@ -98,78 +98,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1-controllerrevisions]] -=== Create a ControllerRevision -Create a ControllerRevision - -==== HTTP request ----- -POST /apis/apps/v1/controllerrevisions HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1/controllerrevisions <<'EOF' -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ControllerRevision -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ControllerRevision -|201 Created|v1.ControllerRevision -|202 Accepted|v1.ControllerRevision -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1-namespaces-namespace-controllerrevisions]] === Create a ControllerRevision in a namespace Create a ControllerRevision @@ -329,7 +257,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -337,6 +264,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1.DaemonSet.adoc b/api/docs/apis-apps/v1.DaemonSet.adoc index cdbd69d8eb22..da61d9bd3de1 100644 --- a/api/docs/apis-apps/v1.DaemonSet.adoc +++ b/api/docs/apis-apps/v1.DaemonSet.adoc @@ -836,78 +836,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1-daemonsets]] -=== Create a DaemonSet -Create a DaemonSet - -==== HTTP request ----- -POST /apis/apps/v1/daemonsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "DaemonSet", - "apiVersion": "apps/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1/daemonsets <<'EOF' -{ - "kind": "DaemonSet", - "apiVersion": "apps/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.DaemonSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.DaemonSet -|201 Created|v1.DaemonSet -|202 Accepted|v1.DaemonSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1-namespaces-namespace-daemonsets]] === Create a DaemonSet in a namespace Create a DaemonSet @@ -1067,7 +995,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1075,6 +1002,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1.Deployment.adoc b/api/docs/apis-apps/v1.Deployment.adoc index 76f6c46753db..0c0248309a0e 100644 --- a/api/docs/apis-apps/v1.Deployment.adoc +++ b/api/docs/apis-apps/v1.Deployment.adoc @@ -839,78 +839,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1-deployments]] -=== Create a Deployment -Create a Deployment - -==== HTTP request ----- -POST /apis/apps/v1/deployments HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Deployment", - "apiVersion": "apps/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1/deployments <<'EOF' -{ - "kind": "Deployment", - "apiVersion": "apps/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Deployment -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Deployment -|201 Created|v1.Deployment -|202 Accepted|v1.Deployment -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1-namespaces-namespace-deployments]] === Create a Deployment in a namespace Create a Deployment @@ -1070,7 +998,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1078,6 +1005,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1.ReplicaSet.adoc b/api/docs/apis-apps/v1.ReplicaSet.adoc index c5a08186439c..17d356eeba1e 100644 --- a/api/docs/apis-apps/v1.ReplicaSet.adoc +++ b/api/docs/apis-apps/v1.ReplicaSet.adoc @@ -828,78 +828,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1-replicasets]] -=== Create a ReplicaSet -Create a ReplicaSet - -==== HTTP request ----- -POST /apis/apps/v1/replicasets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ReplicaSet", - "apiVersion": "apps/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1/replicasets <<'EOF' -{ - "kind": "ReplicaSet", - "apiVersion": "apps/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ReplicaSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ReplicaSet -|201 Created|v1.ReplicaSet -|202 Accepted|v1.ReplicaSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1-namespaces-namespace-replicasets]] === Create a ReplicaSet in a namespace Create a ReplicaSet @@ -1059,7 +987,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1067,6 +994,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1.StatefulSet.adoc b/api/docs/apis-apps/v1.StatefulSet.adoc index 6f525e6b9840..a5fc23b980c1 100644 --- a/api/docs/apis-apps/v1.StatefulSet.adoc +++ b/api/docs/apis-apps/v1.StatefulSet.adoc @@ -944,78 +944,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1-statefulsets]] -=== Create a StatefulSet -Create a StatefulSet - -==== HTTP request ----- -POST /apis/apps/v1/statefulsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1/statefulsets <<'EOF' -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.StatefulSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.StatefulSet -|201 Created|v1.StatefulSet -|202 Accepted|v1.StatefulSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1-namespaces-namespace-statefulsets]] === Create a StatefulSet in a namespace Create a StatefulSet @@ -1175,7 +1103,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1183,6 +1110,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta1.ControllerRevision.adoc b/api/docs/apis-apps/v1beta1.ControllerRevision.adoc index 452912263f3f..a2617a4eac75 100644 --- a/api/docs/apis-apps/v1beta1.ControllerRevision.adoc +++ b/api/docs/apis-apps/v1beta1.ControllerRevision.adoc @@ -98,78 +98,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1beta1-controllerrevisions]] -=== Create a ControllerRevision -Create a ControllerRevision - -==== HTTP request ----- -POST /apis/apps/v1beta1/controllerrevisions HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta1/controllerrevisions <<'EOF' -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.ControllerRevision -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.ControllerRevision -|201 Created|v1beta1.ControllerRevision -|202 Accepted|v1beta1.ControllerRevision -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta1-namespaces-namespace-controllerrevisions]] === Create a ControllerRevision in a namespace Create a ControllerRevision @@ -329,7 +257,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -337,6 +264,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta1.Deployment.adoc b/api/docs/apis-apps/v1beta1.Deployment.adoc index f96643f82c36..cf61e63512cb 100644 --- a/api/docs/apis-apps/v1beta1.Deployment.adoc +++ b/api/docs/apis-apps/v1beta1.Deployment.adoc @@ -841,78 +841,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1beta1-deployments]] -=== Create a Deployment -Create a Deployment - -==== HTTP request ----- -POST /apis/apps/v1beta1/deployments HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Deployment", - "apiVersion": "apps/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta1/deployments <<'EOF' -{ - "kind": "Deployment", - "apiVersion": "apps/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.Deployment -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.Deployment -|201 Created|v1beta1.Deployment -|202 Accepted|v1beta1.Deployment -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta1-namespaces-namespace-deployments]] === Create a Deployment in a namespace Create a Deployment @@ -1072,7 +1000,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1080,6 +1007,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta1.StatefulSet.adoc b/api/docs/apis-apps/v1beta1.StatefulSet.adoc index f24bca834c85..ea9f6160dbcd 100644 --- a/api/docs/apis-apps/v1beta1.StatefulSet.adoc +++ b/api/docs/apis-apps/v1beta1.StatefulSet.adoc @@ -944,78 +944,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1beta1-statefulsets]] -=== Create a StatefulSet -Create a StatefulSet - -==== HTTP request ----- -POST /apis/apps/v1beta1/statefulsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta1/statefulsets <<'EOF' -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.StatefulSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.StatefulSet -|201 Created|v1beta1.StatefulSet -|202 Accepted|v1beta1.StatefulSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta1-namespaces-namespace-statefulsets]] === Create a StatefulSet in a namespace Create a StatefulSet @@ -1175,7 +1103,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1183,6 +1110,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta2.ControllerRevision.adoc b/api/docs/apis-apps/v1beta2.ControllerRevision.adoc index 67017d5981c9..8075800e415f 100644 --- a/api/docs/apis-apps/v1beta2.ControllerRevision.adoc +++ b/api/docs/apis-apps/v1beta2.ControllerRevision.adoc @@ -98,78 +98,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1beta2-controllerrevisions]] -=== Create a ControllerRevision -Create a ControllerRevision - -==== HTTP request ----- -POST /apis/apps/v1beta2/controllerrevisions HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1beta2", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta2/controllerrevisions <<'EOF' -{ - "kind": "ControllerRevision", - "apiVersion": "apps/v1beta2", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta2.ControllerRevision -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta2.ControllerRevision -|201 Created|v1beta2.ControllerRevision -|202 Accepted|v1beta2.ControllerRevision -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta2-namespaces-namespace-controllerrevisions]] === Create a ControllerRevision in a namespace Create a ControllerRevision @@ -329,7 +257,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -337,6 +264,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta2.DaemonSet.adoc b/api/docs/apis-apps/v1beta2.DaemonSet.adoc index 062f68387466..3968962f5407 100644 --- a/api/docs/apis-apps/v1beta2.DaemonSet.adoc +++ b/api/docs/apis-apps/v1beta2.DaemonSet.adoc @@ -836,78 +836,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1beta2-daemonsets]] -=== Create a DaemonSet -Create a DaemonSet - -==== HTTP request ----- -POST /apis/apps/v1beta2/daemonsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "DaemonSet", - "apiVersion": "apps/v1beta2", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta2/daemonsets <<'EOF' -{ - "kind": "DaemonSet", - "apiVersion": "apps/v1beta2", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta2.DaemonSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta2.DaemonSet -|201 Created|v1beta2.DaemonSet -|202 Accepted|v1beta2.DaemonSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta2-namespaces-namespace-daemonsets]] === Create a DaemonSet in a namespace Create a DaemonSet @@ -1067,7 +995,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1075,6 +1002,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta2.Deployment.adoc b/api/docs/apis-apps/v1beta2.Deployment.adoc index feb2351ab81d..8ab689f98c8c 100644 --- a/api/docs/apis-apps/v1beta2.Deployment.adoc +++ b/api/docs/apis-apps/v1beta2.Deployment.adoc @@ -839,78 +839,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1beta2-deployments]] -=== Create a Deployment -Create a Deployment - -==== HTTP request ----- -POST /apis/apps/v1beta2/deployments HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Deployment", - "apiVersion": "apps/v1beta2", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta2/deployments <<'EOF' -{ - "kind": "Deployment", - "apiVersion": "apps/v1beta2", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta2.Deployment -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta2.Deployment -|201 Created|v1beta2.Deployment -|202 Accepted|v1beta2.Deployment -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta2-namespaces-namespace-deployments]] === Create a Deployment in a namespace Create a Deployment @@ -1070,7 +998,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1078,6 +1005,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta2.ReplicaSet.adoc b/api/docs/apis-apps/v1beta2.ReplicaSet.adoc index 9cfc3c96d094..6c0589159348 100644 --- a/api/docs/apis-apps/v1beta2.ReplicaSet.adoc +++ b/api/docs/apis-apps/v1beta2.ReplicaSet.adoc @@ -828,78 +828,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-apps-v1beta2-replicasets]] -=== Create a ReplicaSet -Create a ReplicaSet - -==== HTTP request ----- -POST /apis/apps/v1beta2/replicasets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ReplicaSet", - "apiVersion": "apps/v1beta2", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta2/replicasets <<'EOF' -{ - "kind": "ReplicaSet", - "apiVersion": "apps/v1beta2", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta2.ReplicaSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta2.ReplicaSet -|201 Created|v1beta2.ReplicaSet -|202 Accepted|v1beta2.ReplicaSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta2-namespaces-namespace-replicasets]] === Create a ReplicaSet in a namespace Create a ReplicaSet @@ -1059,7 +987,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1067,6 +994,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-apps/v1beta2.StatefulSet.adoc b/api/docs/apis-apps/v1beta2.StatefulSet.adoc index ca94d0753daa..97591ab3ab10 100644 --- a/api/docs/apis-apps/v1beta2.StatefulSet.adoc +++ b/api/docs/apis-apps/v1beta2.StatefulSet.adoc @@ -944,78 +944,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-apps-v1beta2-statefulsets]] -=== Create a StatefulSet -Create a StatefulSet - -==== HTTP request ----- -POST /apis/apps/v1beta2/statefulsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1beta2", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/apps/v1beta2/statefulsets <<'EOF' -{ - "kind": "StatefulSet", - "apiVersion": "apps/v1beta2", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta2.StatefulSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta2.StatefulSet -|201 Created|v1beta2.StatefulSet -|202 Accepted|v1beta2.StatefulSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-apps-v1beta2-namespaces-namespace-statefulsets]] === Create a StatefulSet in a namespace Create a StatefulSet @@ -1175,7 +1103,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1183,6 +1110,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-authorization.k8s.io/v1.LocalSubjectAccessReview.adoc b/api/docs/apis-authorization.k8s.io/v1.LocalSubjectAccessReview.adoc index 5f84ae46293e..596e3017a69b 100644 --- a/api/docs/apis-authorization.k8s.io/v1.LocalSubjectAccessReview.adoc +++ b/api/docs/apis-authorization.k8s.io/v1.LocalSubjectAccessReview.adoc @@ -118,78 +118,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-authorization.k8s.io-v1-localsubjectaccessreviews]] -=== Create a LocalSubjectAccessReview -Create a LocalSubjectAccessReview - -==== HTTP request ----- -POST /apis/authorization.k8s.io/v1/localsubjectaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.k8s.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.k8s.io/v1/localsubjectaccessreviews <<'EOF' -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.k8s.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LocalSubjectAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LocalSubjectAccessReview -|201 Created|v1.LocalSubjectAccessReview -|202 Accepted|v1.LocalSubjectAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.k8s.io-v1-namespaces-namespace-localsubjectaccessreviews]] === Create a LocalSubjectAccessReview in a namespace Create a LocalSubjectAccessReview diff --git a/api/docs/apis-authorization.k8s.io/v1beta1.LocalSubjectAccessReview.adoc b/api/docs/apis-authorization.k8s.io/v1beta1.LocalSubjectAccessReview.adoc index 07dd687ce6e1..c1c53a62c348 100644 --- a/api/docs/apis-authorization.k8s.io/v1beta1.LocalSubjectAccessReview.adoc +++ b/api/docs/apis-authorization.k8s.io/v1beta1.LocalSubjectAccessReview.adoc @@ -118,78 +118,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-authorization.k8s.io-v1beta1-localsubjectaccessreviews]] -=== Create a LocalSubjectAccessReview -Create a LocalSubjectAccessReview - -==== HTTP request ----- -POST /apis/authorization.k8s.io/v1beta1/localsubjectaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.k8s.io/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.k8s.io/v1beta1/localsubjectaccessreviews <<'EOF' -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.k8s.io/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.LocalSubjectAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.LocalSubjectAccessReview -|201 Created|v1beta1.LocalSubjectAccessReview -|202 Accepted|v1beta1.LocalSubjectAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.k8s.io-v1beta1-namespaces-namespace-localsubjectaccessreviews]] === Create a LocalSubjectAccessReview in a namespace Create a LocalSubjectAccessReview diff --git a/api/docs/apis-authorization.openshift.io/v1.LocalResourceAccessReview.adoc b/api/docs/apis-authorization.openshift.io/v1.LocalResourceAccessReview.adoc index d04dec8050d4..095b22a0795f 100644 --- a/api/docs/apis-authorization.openshift.io/v1.LocalResourceAccessReview.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.LocalResourceAccessReview.adoc @@ -36,78 +36,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-apis-authorization.openshift.io-v1-localresourceaccessreviews]] -=== Create a LocalResourceAccessReview -Create a LocalResourceAccessReview - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/localresourceaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalResourceAccessReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/localresourceaccessreviews <<'EOF' -{ - "kind": "LocalResourceAccessReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LocalResourceAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LocalResourceAccessReview -|201 Created|v1.LocalResourceAccessReview -|202 Accepted|v1.LocalResourceAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-localresourceaccessreviews]] === Create a LocalResourceAccessReview in a namespace Create a LocalResourceAccessReview diff --git a/api/docs/apis-authorization.openshift.io/v1.LocalSubjectAccessReview.adoc b/api/docs/apis-authorization.openshift.io/v1.LocalSubjectAccessReview.adoc index f64dab38a8db..b1203024f8b2 100644 --- a/api/docs/apis-authorization.openshift.io/v1.LocalSubjectAccessReview.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.LocalSubjectAccessReview.adoc @@ -41,78 +41,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-apis-authorization.openshift.io-v1-localsubjectaccessreviews]] -=== Create a LocalSubjectAccessReview -Create a LocalSubjectAccessReview - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/localsubjectaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/localsubjectaccessreviews <<'EOF' -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LocalSubjectAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LocalSubjectAccessReview -|201 Created|v1.LocalSubjectAccessReview -|202 Accepted|v1.LocalSubjectAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-localsubjectaccessreviews]] === Create a LocalSubjectAccessReview in a namespace Create a LocalSubjectAccessReview diff --git a/api/docs/apis-authorization.openshift.io/v1.Role.adoc b/api/docs/apis-authorization.openshift.io/v1.Role.adoc index 8049d8417da9..d20d52a7a23e 100644 --- a/api/docs/apis-authorization.openshift.io/v1.Role.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.Role.adoc @@ -108,78 +108,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-authorization.openshift.io-v1-roles]] -=== Create a Role -Create a Role - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/roles HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Role", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/roles <<'EOF' -{ - "kind": "Role", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Role -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Role -|201 Created|v1.Role -|202 Accepted|v1.Role -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-roles]] === Create a Role in a namespace Create a Role @@ -337,7 +265,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -345,6 +272,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-authorization.openshift.io/v1.RoleBinding.adoc b/api/docs/apis-authorization.openshift.io/v1.RoleBinding.adoc index a283e94fd8a4..b548291320b1 100644 --- a/api/docs/apis-authorization.openshift.io/v1.RoleBinding.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.RoleBinding.adoc @@ -115,78 +115,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-authorization.openshift.io-v1-rolebindings]] -=== Create a RoleBinding -Create a RoleBinding - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/rolebindings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBinding", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/rolebindings <<'EOF' -{ - "kind": "RoleBinding", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.RoleBinding -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.RoleBinding -|201 Created|v1.RoleBinding -|202 Accepted|v1.RoleBinding -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-rolebindings]] === Create a RoleBinding in a namespace Create a RoleBinding @@ -344,7 +272,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -352,6 +279,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-authorization.openshift.io/v1.RoleBindingRestriction.adoc b/api/docs/apis-authorization.openshift.io/v1.RoleBindingRestriction.adoc index 06be64b00453..d804862c6d88 100644 --- a/api/docs/apis-authorization.openshift.io/v1.RoleBindingRestriction.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.RoleBindingRestriction.adoc @@ -126,78 +126,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-authorization.openshift.io-v1-rolebindingrestrictions]] -=== Create a RoleBindingRestriction -Create a RoleBindingRestriction - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/rolebindingrestrictions HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBindingRestriction", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/rolebindingrestrictions <<'EOF' -{ - "kind": "RoleBindingRestriction", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.RoleBindingRestriction -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.RoleBindingRestriction -|201 Created|v1.RoleBindingRestriction -|202 Accepted|v1.RoleBindingRestriction -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-rolebindingrestrictions]] === Create a RoleBindingRestriction in a namespace Create a RoleBindingRestriction @@ -357,7 +285,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -365,6 +292,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-authorization.openshift.io/v1.SelfSubjectRulesReview.adoc b/api/docs/apis-authorization.openshift.io/v1.SelfSubjectRulesReview.adoc index 00de56685fe3..6116c9e20da0 100644 --- a/api/docs/apis-authorization.openshift.io/v1.SelfSubjectRulesReview.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.SelfSubjectRulesReview.adoc @@ -44,78 +44,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-apis-authorization.openshift.io-v1-selfsubjectrulesreviews]] -=== Create a SelfSubjectRulesReview -Create a SelfSubjectRulesReview - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/selfsubjectrulesreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "SelfSubjectRulesReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/selfsubjectrulesreviews <<'EOF' -{ - "kind": "SelfSubjectRulesReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.SelfSubjectRulesReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.SelfSubjectRulesReview -|201 Created|v1.SelfSubjectRulesReview -|202 Accepted|v1.SelfSubjectRulesReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-selfsubjectrulesreviews]] === Create a SelfSubjectRulesReview in a namespace Create a SelfSubjectRulesReview diff --git a/api/docs/apis-authorization.openshift.io/v1.SubjectRulesReview.adoc b/api/docs/apis-authorization.openshift.io/v1.SubjectRulesReview.adoc index c616d7431aad..650baf66ea2b 100644 --- a/api/docs/apis-authorization.openshift.io/v1.SubjectRulesReview.adoc +++ b/api/docs/apis-authorization.openshift.io/v1.SubjectRulesReview.adoc @@ -47,78 +47,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-apis-authorization.openshift.io-v1-subjectrulesreviews]] -=== Create a SubjectRulesReview -Create a SubjectRulesReview - -==== HTTP request ----- -POST /apis/authorization.openshift.io/v1/subjectrulesreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "SubjectRulesReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/authorization.openshift.io/v1/subjectrulesreviews <<'EOF' -{ - "kind": "SubjectRulesReview", - "apiVersion": "authorization.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.SubjectRulesReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.SubjectRulesReview -|201 Created|v1.SubjectRulesReview -|202 Accepted|v1.SubjectRulesReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-authorization.openshift.io-v1-namespaces-namespace-subjectrulesreviews]] === Create a SubjectRulesReview in a namespace Create a SubjectRulesReview diff --git a/api/docs/apis-autoscaling/v1.HorizontalPodAutoscaler.adoc b/api/docs/apis-autoscaling/v1.HorizontalPodAutoscaler.adoc index f90d72be25ff..41afc6ba5f3c 100644 --- a/api/docs/apis-autoscaling/v1.HorizontalPodAutoscaler.adoc +++ b/api/docs/apis-autoscaling/v1.HorizontalPodAutoscaler.adoc @@ -109,78 +109,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-autoscaling-v1-horizontalpodautoscalers]] -=== Create a HorizontalPodAutoscaler -Create a HorizontalPodAutoscaler - -==== HTTP request ----- -POST /apis/autoscaling/v1/horizontalpodautoscalers HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "HorizontalPodAutoscaler", - "apiVersion": "autoscaling/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/autoscaling/v1/horizontalpodautoscalers <<'EOF' -{ - "kind": "HorizontalPodAutoscaler", - "apiVersion": "autoscaling/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.HorizontalPodAutoscaler -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.HorizontalPodAutoscaler -|201 Created|v1.HorizontalPodAutoscaler -|202 Accepted|v1.HorizontalPodAutoscaler -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-autoscaling-v1-namespaces-namespace-horizontalpodautoscalers]] === Create a HorizontalPodAutoscaler in a namespace Create a HorizontalPodAutoscaler @@ -340,7 +268,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -348,6 +275,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-autoscaling/v2beta1.HorizontalPodAutoscaler.adoc b/api/docs/apis-autoscaling/v2beta1.HorizontalPodAutoscaler.adoc index 9cded2cf39b0..f84fb85e8fcb 100644 --- a/api/docs/apis-autoscaling/v2beta1.HorizontalPodAutoscaler.adoc +++ b/api/docs/apis-autoscaling/v2beta1.HorizontalPodAutoscaler.adoc @@ -169,78 +169,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-autoscaling-v2beta1-horizontalpodautoscalers]] -=== Create a HorizontalPodAutoscaler -Create a HorizontalPodAutoscaler - -==== HTTP request ----- -POST /apis/autoscaling/v2beta1/horizontalpodautoscalers HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "HorizontalPodAutoscaler", - "apiVersion": "autoscaling/v2beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/autoscaling/v2beta1/horizontalpodautoscalers <<'EOF' -{ - "kind": "HorizontalPodAutoscaler", - "apiVersion": "autoscaling/v2beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v2beta1.HorizontalPodAutoscaler -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v2beta1.HorizontalPodAutoscaler -|201 Created|v2beta1.HorizontalPodAutoscaler -|202 Accepted|v2beta1.HorizontalPodAutoscaler -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-autoscaling-v2beta1-namespaces-namespace-horizontalpodautoscalers]] === Create a HorizontalPodAutoscaler in a namespace Create a HorizontalPodAutoscaler @@ -400,7 +328,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -408,6 +335,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-batch/v1.Job.adoc b/api/docs/apis-batch/v1.Job.adoc index cbe8668f1bdd..d6bcfa4cb6d4 100644 --- a/api/docs/apis-batch/v1.Job.adoc +++ b/api/docs/apis-batch/v1.Job.adoc @@ -832,78 +832,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-batch-v1-jobs]] -=== Create a Job -Create a Job - -==== HTTP request ----- -POST /apis/batch/v1/jobs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Job", - "apiVersion": "batch/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/batch/v1/jobs <<'EOF' -{ - "kind": "Job", - "apiVersion": "batch/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Job -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Job -|201 Created|v1.Job -|202 Accepted|v1.Job -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-batch-v1-namespaces-namespace-jobs]] === Create a Job in a namespace Create a Job @@ -1063,7 +991,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1071,6 +998,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-batch/v1beta1.CronJob.adoc b/api/docs/apis-batch/v1beta1.CronJob.adoc index 3e5ef34d2de7..7512254483e2 100644 --- a/api/docs/apis-batch/v1beta1.CronJob.adoc +++ b/api/docs/apis-batch/v1beta1.CronJob.adoc @@ -906,78 +906,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-batch-v1beta1-cronjobs]] -=== Create a CronJob -Create a CronJob - -==== HTTP request ----- -POST /apis/batch/v1beta1/cronjobs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "CronJob", - "apiVersion": "batch/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/batch/v1beta1/cronjobs <<'EOF' -{ - "kind": "CronJob", - "apiVersion": "batch/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.CronJob -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.CronJob -|201 Created|v1beta1.CronJob -|202 Accepted|v1beta1.CronJob -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-batch-v1beta1-namespaces-namespace-cronjobs]] === Create a CronJob in a namespace Create a CronJob @@ -1137,7 +1065,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1145,6 +1072,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-build.openshift.io/v1.Build.adoc b/api/docs/apis-build.openshift.io/v1.Build.adoc index ddbd479e5467..dd6861914ee5 100644 --- a/api/docs/apis-build.openshift.io/v1.Build.adoc +++ b/api/docs/apis-build.openshift.io/v1.Build.adoc @@ -416,78 +416,6 @@ Please note that this field may not always be set even if the push completes suc == Operations -[[Post-apis-build.openshift.io-v1-builds]] -=== Create a Build -Create a Build - -==== HTTP request ----- -POST /apis/build.openshift.io/v1/builds HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Build", - "apiVersion": "build.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/build.openshift.io/v1/builds <<'EOF' -{ - "kind": "Build", - "apiVersion": "build.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Build -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Build -|201 Created|v1.Build -|202 Accepted|v1.Build -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-build.openshift.io-v1-namespaces-namespace-builds]] === Create a Build in a namespace Create a Build @@ -647,7 +575,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -655,6 +582,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc b/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc index b58d67089fcd..dcbba4c947bc 100644 --- a/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc +++ b/api/docs/apis-build.openshift.io/v1.BuildConfig.adoc @@ -361,78 +361,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-build.openshift.io-v1-buildconfigs]] -=== Create a BuildConfig -Create a BuildConfig - -==== HTTP request ----- -POST /apis/build.openshift.io/v1/buildconfigs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "BuildConfig", - "apiVersion": "build.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/build.openshift.io/v1/buildconfigs <<'EOF' -{ - "kind": "BuildConfig", - "apiVersion": "build.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.BuildConfig -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.BuildConfig -|201 Created|v1.BuildConfig -|202 Accepted|v1.BuildConfig -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-build.openshift.io-v1-namespaces-namespace-buildconfigs]] === Create a BuildConfig in a namespace Create a BuildConfig @@ -592,7 +520,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -600,6 +527,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-events.k8s.io/v1beta1.Event.adoc b/api/docs/apis-events.k8s.io/v1beta1.Event.adoc index 9f82ec833bc7..7686af82932d 100644 --- a/api/docs/apis-events.k8s.io/v1beta1.Event.adoc +++ b/api/docs/apis-events.k8s.io/v1beta1.Event.adoc @@ -128,78 +128,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-events.k8s.io-v1beta1-events]] -=== Create a Event -Create an Event - -==== HTTP request ----- -POST /apis/events.k8s.io/v1beta1/events HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Event", - "apiVersion": "events.k8s.io/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/events.k8s.io/v1beta1/events <<'EOF' -{ - "kind": "Event", - "apiVersion": "events.k8s.io/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.Event -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.Event -|201 Created|v1beta1.Event -|202 Accepted|v1beta1.Event -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-events.k8s.io-v1beta1-namespaces-namespace-events]] === Create a Event in a namespace Create an Event @@ -359,7 +287,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -367,6 +294,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-extensions/v1beta1.DaemonSet.adoc b/api/docs/apis-extensions/v1beta1.DaemonSet.adoc index 81617565f8de..4f808db6271c 100644 --- a/api/docs/apis-extensions/v1beta1.DaemonSet.adoc +++ b/api/docs/apis-extensions/v1beta1.DaemonSet.adoc @@ -837,78 +837,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-extensions-v1beta1-daemonsets]] -=== Create a DaemonSet -Create a DaemonSet - -==== HTTP request ----- -POST /apis/extensions/v1beta1/daemonsets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "DaemonSet", - "apiVersion": "extensions/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/extensions/v1beta1/daemonsets <<'EOF' -{ - "kind": "DaemonSet", - "apiVersion": "extensions/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.DaemonSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.DaemonSet -|201 Created|v1beta1.DaemonSet -|202 Accepted|v1beta1.DaemonSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-extensions-v1beta1-namespaces-namespace-daemonsets]] === Create a DaemonSet in a namespace Create a DaemonSet @@ -1068,7 +996,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1076,6 +1003,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-extensions/v1beta1.Deployment.adoc b/api/docs/apis-extensions/v1beta1.Deployment.adoc index e25f992e725a..6aa07091638e 100644 --- a/api/docs/apis-extensions/v1beta1.Deployment.adoc +++ b/api/docs/apis-extensions/v1beta1.Deployment.adoc @@ -841,78 +841,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-extensions-v1beta1-deployments]] -=== Create a Deployment -Create a Deployment - -==== HTTP request ----- -POST /apis/extensions/v1beta1/deployments HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Deployment", - "apiVersion": "extensions/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/extensions/v1beta1/deployments <<'EOF' -{ - "kind": "Deployment", - "apiVersion": "extensions/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.Deployment -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.Deployment -|201 Created|v1beta1.Deployment -|202 Accepted|v1beta1.Deployment -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-extensions-v1beta1-namespaces-namespace-deployments]] === Create a Deployment in a namespace Create a Deployment @@ -1072,7 +1000,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1080,6 +1007,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-extensions/v1beta1.Ingress.adoc b/api/docs/apis-extensions/v1beta1.Ingress.adoc index 113e427d577c..bd3c7b090860 100644 --- a/api/docs/apis-extensions/v1beta1.Ingress.adoc +++ b/api/docs/apis-extensions/v1beta1.Ingress.adoc @@ -121,78 +121,6 @@ Both these may change in the future. Incoming requests are matched against the h == Operations -[[Post-apis-extensions-v1beta1-ingresses]] -=== Create a Ingress -Create an Ingress - -==== HTTP request ----- -POST /apis/extensions/v1beta1/ingresses HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Ingress", - "apiVersion": "extensions/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/extensions/v1beta1/ingresses <<'EOF' -{ - "kind": "Ingress", - "apiVersion": "extensions/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.Ingress -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.Ingress -|201 Created|v1beta1.Ingress -|202 Accepted|v1beta1.Ingress -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-extensions-v1beta1-namespaces-namespace-ingresses]] === Create a Ingress in a namespace Create an Ingress @@ -352,7 +280,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -360,6 +287,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-extensions/v1beta1.NetworkPolicy.adoc b/api/docs/apis-extensions/v1beta1.NetworkPolicy.adoc index e57fdba9065b..cd3cdeed7d91 100644 --- a/api/docs/apis-extensions/v1beta1.NetworkPolicy.adoc +++ b/api/docs/apis-extensions/v1beta1.NetworkPolicy.adoc @@ -164,78 +164,6 @@ If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects == Operations -[[Post-apis-extensions-v1beta1-networkpolicies]] -=== Create a NetworkPolicy -Create a NetworkPolicy - -==== HTTP request ----- -POST /apis/extensions/v1beta1/networkpolicies HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "NetworkPolicy", - "apiVersion": "extensions/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/extensions/v1beta1/networkpolicies <<'EOF' -{ - "kind": "NetworkPolicy", - "apiVersion": "extensions/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.NetworkPolicy -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.NetworkPolicy -|201 Created|v1beta1.NetworkPolicy -|202 Accepted|v1beta1.NetworkPolicy -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-extensions-v1beta1-namespaces-namespace-networkpolicies]] === Create a NetworkPolicy in a namespace Create a NetworkPolicy @@ -395,7 +323,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -403,6 +330,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-extensions/v1beta1.ReplicaSet.adoc b/api/docs/apis-extensions/v1beta1.ReplicaSet.adoc index 9119fd01611c..3caa55c020c9 100644 --- a/api/docs/apis-extensions/v1beta1.ReplicaSet.adoc +++ b/api/docs/apis-extensions/v1beta1.ReplicaSet.adoc @@ -828,78 +828,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-extensions-v1beta1-replicasets]] -=== Create a ReplicaSet -Create a ReplicaSet - -==== HTTP request ----- -POST /apis/extensions/v1beta1/replicasets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ReplicaSet", - "apiVersion": "extensions/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/extensions/v1beta1/replicasets <<'EOF' -{ - "kind": "ReplicaSet", - "apiVersion": "extensions/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.ReplicaSet -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.ReplicaSet -|201 Created|v1beta1.ReplicaSet -|202 Accepted|v1beta1.ReplicaSet -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-extensions-v1beta1-namespaces-namespace-replicasets]] === Create a ReplicaSet in a namespace Create a ReplicaSet @@ -1059,7 +987,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1067,6 +994,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-image.openshift.io/v1.ImageStream.adoc b/api/docs/apis-image.openshift.io/v1.ImageStream.adoc index 223a708450de..f39322c54498 100644 --- a/api/docs/apis-image.openshift.io/v1.ImageStream.adoc +++ b/api/docs/apis-image.openshift.io/v1.ImageStream.adoc @@ -135,78 +135,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-image.openshift.io-v1-imagestreams]] -=== Create a ImageStream -Create an ImageStream - -==== HTTP request ----- -POST /apis/image.openshift.io/v1/imagestreams HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStream", - "apiVersion": "image.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/image.openshift.io/v1/imagestreams <<'EOF' -{ - "kind": "ImageStream", - "apiVersion": "image.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStream -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStream -|201 Created|v1.ImageStream -|202 Accepted|v1.ImageStream -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-image.openshift.io-v1-namespaces-namespace-imagestreams]] === Create a ImageStream in a namespace Create an ImageStream @@ -366,7 +294,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -374,6 +301,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-image.openshift.io/v1.ImageStreamImport.adoc b/api/docs/apis-image.openshift.io/v1.ImageStreamImport.adoc index b65a0da0e6fc..40878ca54b91 100644 --- a/api/docs/apis-image.openshift.io/v1.ImageStreamImport.adoc +++ b/api/docs/apis-image.openshift.io/v1.ImageStreamImport.adoc @@ -680,78 +680,6 @@ Examples: == Operations -[[Post-apis-image.openshift.io-v1-imagestreamimports]] -=== Create a ImageStreamImport -Create an ImageStreamImport - -==== HTTP request ----- -POST /apis/image.openshift.io/v1/imagestreamimports HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamImport", - "apiVersion": "image.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/image.openshift.io/v1/imagestreamimports <<'EOF' -{ - "kind": "ImageStreamImport", - "apiVersion": "image.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamImport -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamImport -|201 Created|v1.ImageStreamImport -|202 Accepted|v1.ImageStreamImport -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-image.openshift.io-v1-namespaces-namespace-imagestreamimports]] === Create a ImageStreamImport in a namespace Create an ImageStreamImport diff --git a/api/docs/apis-image.openshift.io/v1.ImageStreamMapping.adoc b/api/docs/apis-image.openshift.io/v1.ImageStreamMapping.adoc index ed1dd9f86c1a..45da082c51cc 100644 --- a/api/docs/apis-image.openshift.io/v1.ImageStreamMapping.adoc +++ b/api/docs/apis-image.openshift.io/v1.ImageStreamMapping.adoc @@ -273,78 +273,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-image.openshift.io-v1-imagestreammappings]] -=== Create a ImageStreamMapping -Create an ImageStreamMapping - -==== HTTP request ----- -POST /apis/image.openshift.io/v1/imagestreammappings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamMapping", - "apiVersion": "image.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/image.openshift.io/v1/imagestreammappings <<'EOF' -{ - "kind": "ImageStreamMapping", - "apiVersion": "image.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamMapping -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamMapping -|201 Created|v1.ImageStreamMapping -|202 Accepted|v1.ImageStreamMapping -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-image.openshift.io-v1-namespaces-namespace-imagestreammappings]] === Create a ImageStreamMapping in a namespace Create an ImageStreamMapping diff --git a/api/docs/apis-image.openshift.io/v1.ImageStreamTag.adoc b/api/docs/apis-image.openshift.io/v1.ImageStreamTag.adoc index a9d8b81c8595..cc2bfa578605 100644 --- a/api/docs/apis-image.openshift.io/v1.ImageStreamTag.adoc +++ b/api/docs/apis-image.openshift.io/v1.ImageStreamTag.adoc @@ -301,78 +301,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-image.openshift.io-v1-imagestreamtags]] -=== Create a ImageStreamTag -Create an ImageStreamTag - -==== HTTP request ----- -POST /apis/image.openshift.io/v1/imagestreamtags HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamTag", - "apiVersion": "image.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/image.openshift.io/v1/imagestreamtags <<'EOF' -{ - "kind": "ImageStreamTag", - "apiVersion": "image.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamTag -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamTag -|201 Created|v1.ImageStreamTag -|202 Accepted|v1.ImageStreamTag -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-image.openshift.io-v1-namespaces-namespace-imagestreamtags]] === Create a ImageStreamTag in a namespace Create an ImageStreamTag @@ -530,7 +458,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -538,6 +465,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-network.openshift.io/v1.EgressNetworkPolicy.adoc b/api/docs/apis-network.openshift.io/v1.EgressNetworkPolicy.adoc index 635442bff718..03db4c265b77 100644 --- a/api/docs/apis-network.openshift.io/v1.EgressNetworkPolicy.adoc +++ b/api/docs/apis-network.openshift.io/v1.EgressNetworkPolicy.adoc @@ -101,78 +101,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-network.openshift.io-v1-egressnetworkpolicies]] -=== Create a EgressNetworkPolicy -Create an EgressNetworkPolicy - -==== HTTP request ----- -POST /apis/network.openshift.io/v1/egressnetworkpolicies HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "EgressNetworkPolicy", - "apiVersion": "network.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/network.openshift.io/v1/egressnetworkpolicies <<'EOF' -{ - "kind": "EgressNetworkPolicy", - "apiVersion": "network.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.EgressNetworkPolicy -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.EgressNetworkPolicy -|201 Created|v1.EgressNetworkPolicy -|202 Accepted|v1.EgressNetworkPolicy -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-network.openshift.io-v1-namespaces-namespace-egressnetworkpolicies]] === Create a EgressNetworkPolicy in a namespace Create an EgressNetworkPolicy @@ -332,7 +260,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -340,6 +267,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-networking.k8s.io/v1.NetworkPolicy.adoc b/api/docs/apis-networking.k8s.io/v1.NetworkPolicy.adoc index 72691f46fb98..8831ad41dc2e 100644 --- a/api/docs/apis-networking.k8s.io/v1.NetworkPolicy.adoc +++ b/api/docs/apis-networking.k8s.io/v1.NetworkPolicy.adoc @@ -164,78 +164,6 @@ If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects == Operations -[[Post-apis-networking.k8s.io-v1-networkpolicies]] -=== Create a NetworkPolicy -Create a NetworkPolicy - -==== HTTP request ----- -POST /apis/networking.k8s.io/v1/networkpolicies HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "NetworkPolicy", - "apiVersion": "networking.k8s.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/networking.k8s.io/v1/networkpolicies <<'EOF' -{ - "kind": "NetworkPolicy", - "apiVersion": "networking.k8s.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.NetworkPolicy -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.NetworkPolicy -|201 Created|v1.NetworkPolicy -|202 Accepted|v1.NetworkPolicy -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-networking.k8s.io-v1-namespaces-namespace-networkpolicies]] === Create a NetworkPolicy in a namespace Create a NetworkPolicy @@ -395,7 +323,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -403,6 +330,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-policy/v1beta1.PodDisruptionBudget.adoc b/api/docs/apis-policy/v1beta1.PodDisruptionBudget.adoc index 5bf945ee9575..84a080a0ec96 100644 --- a/api/docs/apis-policy/v1beta1.PodDisruptionBudget.adoc +++ b/api/docs/apis-policy/v1beta1.PodDisruptionBudget.adoc @@ -114,78 +114,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-policy-v1beta1-poddisruptionbudgets]] -=== Create a PodDisruptionBudget -Create a PodDisruptionBudget - -==== HTTP request ----- -POST /apis/policy/v1beta1/poddisruptionbudgets HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodDisruptionBudget", - "apiVersion": "policy/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/policy/v1beta1/poddisruptionbudgets <<'EOF' -{ - "kind": "PodDisruptionBudget", - "apiVersion": "policy/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.PodDisruptionBudget -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.PodDisruptionBudget -|201 Created|v1beta1.PodDisruptionBudget -|202 Accepted|v1beta1.PodDisruptionBudget -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-policy-v1beta1-namespaces-namespace-poddisruptionbudgets]] === Create a PodDisruptionBudget in a namespace Create a PodDisruptionBudget @@ -345,7 +273,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -353,6 +280,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-rbac.authorization.k8s.io/v1.Role.adoc b/api/docs/apis-rbac.authorization.k8s.io/v1.Role.adoc index ece495673fee..2e90d305ae6e 100644 --- a/api/docs/apis-rbac.authorization.k8s.io/v1.Role.adoc +++ b/api/docs/apis-rbac.authorization.k8s.io/v1.Role.adoc @@ -106,78 +106,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-rbac.authorization.k8s.io-v1-roles]] -=== Create a Role -Create a Role - -==== HTTP request ----- -POST /apis/rbac.authorization.k8s.io/v1/roles HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Role", - "apiVersion": "rbac.authorization.k8s.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/rbac.authorization.k8s.io/v1/roles <<'EOF' -{ - "kind": "Role", - "apiVersion": "rbac.authorization.k8s.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Role -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Role -|201 Created|v1.Role -|202 Accepted|v1.Role -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-rbac.authorization.k8s.io-v1-namespaces-namespace-roles]] === Create a Role in a namespace Create a Role @@ -335,7 +263,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -343,6 +270,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-rbac.authorization.k8s.io/v1.RoleBinding.adoc b/api/docs/apis-rbac.authorization.k8s.io/v1.RoleBinding.adoc index ebd2e3a3f4d6..4c4737a6ca11 100644 --- a/api/docs/apis-rbac.authorization.k8s.io/v1.RoleBinding.adoc +++ b/api/docs/apis-rbac.authorization.k8s.io/v1.RoleBinding.adoc @@ -104,78 +104,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-rbac.authorization.k8s.io-v1-rolebindings]] -=== Create a RoleBinding -Create a RoleBinding - -==== HTTP request ----- -POST /apis/rbac.authorization.k8s.io/v1/rolebindings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBinding", - "apiVersion": "rbac.authorization.k8s.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/rbac.authorization.k8s.io/v1/rolebindings <<'EOF' -{ - "kind": "RoleBinding", - "apiVersion": "rbac.authorization.k8s.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.RoleBinding -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.RoleBinding -|201 Created|v1.RoleBinding -|202 Accepted|v1.RoleBinding -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-rbac.authorization.k8s.io-v1-namespaces-namespace-rolebindings]] === Create a RoleBinding in a namespace Create a RoleBinding @@ -333,7 +261,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -341,6 +268,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-rbac.authorization.k8s.io/v1beta1.Role.adoc b/api/docs/apis-rbac.authorization.k8s.io/v1beta1.Role.adoc index 63fc70ec283a..5320809d68ed 100644 --- a/api/docs/apis-rbac.authorization.k8s.io/v1beta1.Role.adoc +++ b/api/docs/apis-rbac.authorization.k8s.io/v1beta1.Role.adoc @@ -106,78 +106,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-rbac.authorization.k8s.io-v1beta1-roles]] -=== Create a Role -Create a Role - -==== HTTP request ----- -POST /apis/rbac.authorization.k8s.io/v1beta1/roles HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Role", - "apiVersion": "rbac.authorization.k8s.io/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/rbac.authorization.k8s.io/v1beta1/roles <<'EOF' -{ - "kind": "Role", - "apiVersion": "rbac.authorization.k8s.io/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.Role -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.Role -|201 Created|v1beta1.Role -|202 Accepted|v1beta1.Role -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-rbac.authorization.k8s.io-v1beta1-namespaces-namespace-roles]] === Create a Role in a namespace Create a Role @@ -335,7 +263,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -343,6 +270,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-rbac.authorization.k8s.io/v1beta1.RoleBinding.adoc b/api/docs/apis-rbac.authorization.k8s.io/v1beta1.RoleBinding.adoc index 4693caf15001..435cfcddfd1c 100644 --- a/api/docs/apis-rbac.authorization.k8s.io/v1beta1.RoleBinding.adoc +++ b/api/docs/apis-rbac.authorization.k8s.io/v1beta1.RoleBinding.adoc @@ -104,78 +104,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-rbac.authorization.k8s.io-v1beta1-rolebindings]] -=== Create a RoleBinding -Create a RoleBinding - -==== HTTP request ----- -POST /apis/rbac.authorization.k8s.io/v1beta1/rolebindings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBinding", - "apiVersion": "rbac.authorization.k8s.io/v1beta1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/rbac.authorization.k8s.io/v1beta1/rolebindings <<'EOF' -{ - "kind": "RoleBinding", - "apiVersion": "rbac.authorization.k8s.io/v1beta1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1beta1.RoleBinding -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1beta1.RoleBinding -|201 Created|v1beta1.RoleBinding -|202 Accepted|v1beta1.RoleBinding -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-rbac.authorization.k8s.io-v1beta1-namespaces-namespace-rolebindings]] === Create a RoleBinding in a namespace Create a RoleBinding @@ -333,7 +261,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -341,6 +268,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-route.openshift.io/v1.Route.adoc b/api/docs/apis-route.openshift.io/v1.Route.adoc index 99efe9bfc1fa..a8fdaa6fc099 100644 --- a/api/docs/apis-route.openshift.io/v1.Route.adoc +++ b/api/docs/apis-route.openshift.io/v1.Route.adoc @@ -136,78 +136,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-apis-route.openshift.io-v1-routes]] -=== Create a Route -Create a Route - -==== HTTP request ----- -POST /apis/route.openshift.io/v1/routes HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Route", - "apiVersion": "route.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/route.openshift.io/v1/routes <<'EOF' -{ - "kind": "Route", - "apiVersion": "route.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Route -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Route -|201 Created|v1.Route -|202 Accepted|v1.Route -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-route.openshift.io-v1-namespaces-namespace-routes]] === Create a Route in a namespace Create a Route @@ -367,7 +295,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -375,6 +302,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicyReview.adoc b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicyReview.adoc index e4437346fed4..5d6fd3daab41 100644 --- a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicyReview.adoc +++ b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicyReview.adoc @@ -1461,78 +1461,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-security.openshift.io-v1-podsecuritypolicyreviews]] -=== Create a PodSecurityPolicyReview -Create a PodSecurityPolicyReview - -==== HTTP request ----- -POST /apis/security.openshift.io/v1/podsecuritypolicyreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicyReview", - "apiVersion": "security.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/security.openshift.io/v1/podsecuritypolicyreviews <<'EOF' -{ - "kind": "PodSecurityPolicyReview", - "apiVersion": "security.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicyReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicyReview -|201 Created|v1.PodSecurityPolicyReview -|202 Accepted|v1.PodSecurityPolicyReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-security.openshift.io-v1-namespaces-namespace-podsecuritypolicyreviews]] === Create a PodSecurityPolicyReview in a namespace Create a PodSecurityPolicyReview diff --git a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySelfSubjectReview.adoc b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySelfSubjectReview.adoc index b45b1e0c19e4..497debac80c7 100644 --- a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySelfSubjectReview.adoc +++ b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySelfSubjectReview.adoc @@ -1457,78 +1457,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-security.openshift.io-v1-podsecuritypolicyselfsubjectreviews]] -=== Create a PodSecurityPolicySelfSubjectReview -Create a PodSecurityPolicySelfSubjectReview - -==== HTTP request ----- -POST /apis/security.openshift.io/v1/podsecuritypolicyselfsubjectreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicySelfSubjectReview", - "apiVersion": "security.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/security.openshift.io/v1/podsecuritypolicyselfsubjectreviews <<'EOF' -{ - "kind": "PodSecurityPolicySelfSubjectReview", - "apiVersion": "security.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicySelfSubjectReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicySelfSubjectReview -|201 Created|v1.PodSecurityPolicySelfSubjectReview -|202 Accepted|v1.PodSecurityPolicySelfSubjectReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-security.openshift.io-v1-namespaces-namespace-podsecuritypolicyselfsubjectreviews]] === Create a PodSecurityPolicySelfSubjectReview in a namespace Create a PodSecurityPolicySelfSubjectReview diff --git a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySubjectReview.adoc b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySubjectReview.adoc index f7239e4d19e3..2bd8259cc729 100644 --- a/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySubjectReview.adoc +++ b/api/docs/apis-security.openshift.io/v1.PodSecurityPolicySubjectReview.adoc @@ -1460,78 +1460,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-apis-security.openshift.io-v1-podsecuritypolicysubjectreviews]] -=== Create a PodSecurityPolicySubjectReview -Create a PodSecurityPolicySubjectReview - -==== HTTP request ----- -POST /apis/security.openshift.io/v1/podsecuritypolicysubjectreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicySubjectReview", - "apiVersion": "security.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/security.openshift.io/v1/podsecuritypolicysubjectreviews <<'EOF' -{ - "kind": "PodSecurityPolicySubjectReview", - "apiVersion": "security.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicySubjectReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicySubjectReview -|201 Created|v1.PodSecurityPolicySubjectReview -|202 Accepted|v1.PodSecurityPolicySubjectReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-security.openshift.io-v1-namespaces-namespace-podsecuritypolicysubjectreviews]] === Create a PodSecurityPolicySubjectReview in a namespace Create a PodSecurityPolicySubjectReview diff --git a/api/docs/apis-template.openshift.io/v1.Template.adoc b/api/docs/apis-template.openshift.io/v1.Template.adoc index 21e84e14ca0f..38919fe4f072 100644 --- a/api/docs/apis-template.openshift.io/v1.Template.adoc +++ b/api/docs/apis-template.openshift.io/v1.Template.adoc @@ -114,150 +114,6 @@ from | value ----------------------------- "test[0-9]{1}x" == Operations -[[Post-apis-template.openshift.io-v1-processedtemplates]] -=== Create a Template -Create a Template - -==== HTTP request ----- -POST /apis/template.openshift.io/v1/processedtemplates HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Template", - "apiVersion": "template.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/template.openshift.io/v1/processedtemplates <<'EOF' -{ - "kind": "Template", - "apiVersion": "template.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Template -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Template -|201 Created|v1.Template -|202 Accepted|v1.Template -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - -[[Post-apis-template.openshift.io-v1-templates]] -=== Create a Template -Create a Template - -==== HTTP request ----- -POST /apis/template.openshift.io/v1/templates HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Template", - "apiVersion": "template.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/template.openshift.io/v1/templates <<'EOF' -{ - "kind": "Template", - "apiVersion": "template.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Template -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Template -|201 Created|v1.Template -|202 Accepted|v1.Template -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-template.openshift.io-v1-namespaces-namespace-processedtemplates]] === Create a Template in a namespace Create a Template @@ -496,7 +352,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -504,6 +359,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/apis-template.openshift.io/v1.TemplateInstance.adoc b/api/docs/apis-template.openshift.io/v1.TemplateInstance.adoc index cc5051faf5b8..6f41449831f1 100644 --- a/api/docs/apis-template.openshift.io/v1.TemplateInstance.adoc +++ b/api/docs/apis-template.openshift.io/v1.TemplateInstance.adoc @@ -212,78 +212,6 @@ from | value ----------------------------- "test[0-9]{1}x" == Operations -[[Post-apis-template.openshift.io-v1-templateinstances]] -=== Create a TemplateInstance -Create a TemplateInstance - -==== HTTP request ----- -POST /apis/template.openshift.io/v1/templateinstances HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "TemplateInstance", - "apiVersion": "template.openshift.io/v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/apis/template.openshift.io/v1/templateinstances <<'EOF' -{ - "kind": "TemplateInstance", - "apiVersion": "template.openshift.io/v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.TemplateInstance -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.TemplateInstance -|201 Created|v1.TemplateInstance -|202 Accepted|v1.TemplateInstance -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-apis-template.openshift.io-v1-namespaces-namespace-templateinstances]] === Create a TemplateInstance in a namespace Create a TemplateInstance @@ -443,7 +371,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -451,6 +378,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.Build.adoc b/api/docs/oapi/v1.Build.adoc index 073abe4011ec..80b18aef3876 100644 --- a/api/docs/oapi/v1.Build.adoc +++ b/api/docs/oapi/v1.Build.adoc @@ -416,78 +416,6 @@ Please note that this field may not always be set even if the push completes suc == Operations -[[Post-oapi-v1-builds]] -=== Create a Build -Create a Build - -==== HTTP request ----- -POST /oapi/v1/builds HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Build", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/builds <<'EOF' -{ - "kind": "Build", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Build -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Build -|201 Created|v1.Build -|202 Accepted|v1.Build -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-builds]] === Create a Build in a namespace Create a Build @@ -647,7 +575,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -655,6 +582,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.BuildConfig.adoc b/api/docs/oapi/v1.BuildConfig.adoc index b3ad47c02b9b..5cdfa6656b3e 100644 --- a/api/docs/oapi/v1.BuildConfig.adoc +++ b/api/docs/oapi/v1.BuildConfig.adoc @@ -361,78 +361,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-buildconfigs]] -=== Create a BuildConfig -Create a BuildConfig - -==== HTTP request ----- -POST /oapi/v1/buildconfigs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "BuildConfig", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/buildconfigs <<'EOF' -{ - "kind": "BuildConfig", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.BuildConfig -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.BuildConfig -|201 Created|v1.BuildConfig -|202 Accepted|v1.BuildConfig -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-buildconfigs]] === Create a BuildConfig in a namespace Create a BuildConfig @@ -592,7 +520,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -600,6 +527,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.DeploymentConfig.adoc b/api/docs/oapi/v1.DeploymentConfig.adoc index 97f8b58cdb81..2b65b599fc1c 100644 --- a/api/docs/oapi/v1.DeploymentConfig.adoc +++ b/api/docs/oapi/v1.DeploymentConfig.adoc @@ -1094,78 +1094,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-oapi-v1-deploymentconfigs]] -=== Create a DeploymentConfig -Create a DeploymentConfig - -==== HTTP request ----- -POST /oapi/v1/deploymentconfigs HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "DeploymentConfig", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/deploymentconfigs <<'EOF' -{ - "kind": "DeploymentConfig", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.DeploymentConfig -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.DeploymentConfig -|201 Created|v1.DeploymentConfig -|202 Accepted|v1.DeploymentConfig -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-deploymentconfigs]] === Create a DeploymentConfig in a namespace Create a DeploymentConfig @@ -1325,7 +1253,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -1333,6 +1260,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.EgressNetworkPolicy.adoc b/api/docs/oapi/v1.EgressNetworkPolicy.adoc index dd7d609dfc13..019603da2e2f 100644 --- a/api/docs/oapi/v1.EgressNetworkPolicy.adoc +++ b/api/docs/oapi/v1.EgressNetworkPolicy.adoc @@ -101,78 +101,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-egressnetworkpolicies]] -=== Create a EgressNetworkPolicy -Create an EgressNetworkPolicy - -==== HTTP request ----- -POST /oapi/v1/egressnetworkpolicies HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "EgressNetworkPolicy", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/egressnetworkpolicies <<'EOF' -{ - "kind": "EgressNetworkPolicy", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.EgressNetworkPolicy -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.EgressNetworkPolicy -|201 Created|v1.EgressNetworkPolicy -|202 Accepted|v1.EgressNetworkPolicy -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-egressnetworkpolicies]] === Create a EgressNetworkPolicy in a namespace Create an EgressNetworkPolicy @@ -332,7 +260,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -340,6 +267,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.ImageStream.adoc b/api/docs/oapi/v1.ImageStream.adoc index 47ba5d96b25f..42898001aa75 100644 --- a/api/docs/oapi/v1.ImageStream.adoc +++ b/api/docs/oapi/v1.ImageStream.adoc @@ -135,78 +135,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-imagestreams]] -=== Create a ImageStream -Create an ImageStream - -==== HTTP request ----- -POST /oapi/v1/imagestreams HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStream", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/imagestreams <<'EOF' -{ - "kind": "ImageStream", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStream -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStream -|201 Created|v1.ImageStream -|202 Accepted|v1.ImageStream -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-imagestreams]] === Create a ImageStream in a namespace Create an ImageStream @@ -366,7 +294,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -374,6 +301,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.ImageStreamImport.adoc b/api/docs/oapi/v1.ImageStreamImport.adoc index ba7e5c633078..203fade28283 100644 --- a/api/docs/oapi/v1.ImageStreamImport.adoc +++ b/api/docs/oapi/v1.ImageStreamImport.adoc @@ -680,78 +680,6 @@ Examples: == Operations -[[Post-oapi-v1-imagestreamimports]] -=== Create a ImageStreamImport -Create an ImageStreamImport - -==== HTTP request ----- -POST /oapi/v1/imagestreamimports HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamImport", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/imagestreamimports <<'EOF' -{ - "kind": "ImageStreamImport", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamImport -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamImport -|201 Created|v1.ImageStreamImport -|202 Accepted|v1.ImageStreamImport -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-imagestreamimports]] === Create a ImageStreamImport in a namespace Create an ImageStreamImport diff --git a/api/docs/oapi/v1.ImageStreamMapping.adoc b/api/docs/oapi/v1.ImageStreamMapping.adoc index e80db09154b8..70cb0563eeb6 100644 --- a/api/docs/oapi/v1.ImageStreamMapping.adoc +++ b/api/docs/oapi/v1.ImageStreamMapping.adoc @@ -273,78 +273,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-imagestreammappings]] -=== Create a ImageStreamMapping -Create an ImageStreamMapping - -==== HTTP request ----- -POST /oapi/v1/imagestreammappings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamMapping", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/imagestreammappings <<'EOF' -{ - "kind": "ImageStreamMapping", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamMapping -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamMapping -|201 Created|v1.ImageStreamMapping -|202 Accepted|v1.ImageStreamMapping -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-imagestreammappings]] === Create a ImageStreamMapping in a namespace Create an ImageStreamMapping diff --git a/api/docs/oapi/v1.ImageStreamTag.adoc b/api/docs/oapi/v1.ImageStreamTag.adoc index db17f0cf6fff..b502c33bf91b 100644 --- a/api/docs/oapi/v1.ImageStreamTag.adoc +++ b/api/docs/oapi/v1.ImageStreamTag.adoc @@ -301,78 +301,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-imagestreamtags]] -=== Create a ImageStreamTag -Create an ImageStreamTag - -==== HTTP request ----- -POST /oapi/v1/imagestreamtags HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ImageStreamTag", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/imagestreamtags <<'EOF' -{ - "kind": "ImageStreamTag", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.ImageStreamTag -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.ImageStreamTag -|201 Created|v1.ImageStreamTag -|202 Accepted|v1.ImageStreamTag -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-imagestreamtags]] === Create a ImageStreamTag in a namespace Create an ImageStreamTag @@ -530,7 +458,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -538,6 +465,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.LocalResourceAccessReview.adoc b/api/docs/oapi/v1.LocalResourceAccessReview.adoc index 9e08d23c1f29..64b6f08c4d15 100644 --- a/api/docs/oapi/v1.LocalResourceAccessReview.adoc +++ b/api/docs/oapi/v1.LocalResourceAccessReview.adoc @@ -36,78 +36,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-oapi-v1-localresourceaccessreviews]] -=== Create a LocalResourceAccessReview -Create a LocalResourceAccessReview - -==== HTTP request ----- -POST /oapi/v1/localresourceaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalResourceAccessReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/localresourceaccessreviews <<'EOF' -{ - "kind": "LocalResourceAccessReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LocalResourceAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LocalResourceAccessReview -|201 Created|v1.LocalResourceAccessReview -|202 Accepted|v1.LocalResourceAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-localresourceaccessreviews]] === Create a LocalResourceAccessReview in a namespace Create a LocalResourceAccessReview diff --git a/api/docs/oapi/v1.LocalSubjectAccessReview.adoc b/api/docs/oapi/v1.LocalSubjectAccessReview.adoc index 2a0130416ded..0d0ee30c0733 100644 --- a/api/docs/oapi/v1.LocalSubjectAccessReview.adoc +++ b/api/docs/oapi/v1.LocalSubjectAccessReview.adoc @@ -41,78 +41,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-oapi-v1-localsubjectaccessreviews]] -=== Create a LocalSubjectAccessReview -Create a LocalSubjectAccessReview - -==== HTTP request ----- -POST /oapi/v1/localsubjectaccessreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/localsubjectaccessreviews <<'EOF' -{ - "kind": "LocalSubjectAccessReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.LocalSubjectAccessReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.LocalSubjectAccessReview -|201 Created|v1.LocalSubjectAccessReview -|202 Accepted|v1.LocalSubjectAccessReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-localsubjectaccessreviews]] === Create a LocalSubjectAccessReview in a namespace Create a LocalSubjectAccessReview diff --git a/api/docs/oapi/v1.PodSecurityPolicyReview.adoc b/api/docs/oapi/v1.PodSecurityPolicyReview.adoc index 03150686bd21..3e8298d2e65a 100644 --- a/api/docs/oapi/v1.PodSecurityPolicyReview.adoc +++ b/api/docs/oapi/v1.PodSecurityPolicyReview.adoc @@ -1461,78 +1461,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-oapi-v1-podsecuritypolicyreviews]] -=== Create a PodSecurityPolicyReview -Create a PodSecurityPolicyReview - -==== HTTP request ----- -POST /oapi/v1/podsecuritypolicyreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicyReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/podsecuritypolicyreviews <<'EOF' -{ - "kind": "PodSecurityPolicyReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicyReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicyReview -|201 Created|v1.PodSecurityPolicyReview -|202 Accepted|v1.PodSecurityPolicyReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-podsecuritypolicyreviews]] === Create a PodSecurityPolicyReview in a namespace Create a PodSecurityPolicyReview diff --git a/api/docs/oapi/v1.PodSecurityPolicySelfSubjectReview.adoc b/api/docs/oapi/v1.PodSecurityPolicySelfSubjectReview.adoc index a0020fa70b6c..9e6f563480cb 100644 --- a/api/docs/oapi/v1.PodSecurityPolicySelfSubjectReview.adoc +++ b/api/docs/oapi/v1.PodSecurityPolicySelfSubjectReview.adoc @@ -1457,78 +1457,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-oapi-v1-podsecuritypolicyselfsubjectreviews]] -=== Create a PodSecurityPolicySelfSubjectReview -Create a PodSecurityPolicySelfSubjectReview - -==== HTTP request ----- -POST /oapi/v1/podsecuritypolicyselfsubjectreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicySelfSubjectReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/podsecuritypolicyselfsubjectreviews <<'EOF' -{ - "kind": "PodSecurityPolicySelfSubjectReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicySelfSubjectReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicySelfSubjectReview -|201 Created|v1.PodSecurityPolicySelfSubjectReview -|202 Accepted|v1.PodSecurityPolicySelfSubjectReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-podsecuritypolicyselfsubjectreviews]] === Create a PodSecurityPolicySelfSubjectReview in a namespace Create a PodSecurityPolicySelfSubjectReview diff --git a/api/docs/oapi/v1.PodSecurityPolicySubjectReview.adoc b/api/docs/oapi/v1.PodSecurityPolicySubjectReview.adoc index 238ff509a143..955f898a9e98 100644 --- a/api/docs/oapi/v1.PodSecurityPolicySubjectReview.adoc +++ b/api/docs/oapi/v1.PodSecurityPolicySubjectReview.adoc @@ -1460,78 +1460,6 @@ If unset, the Kubelet will not modify the ownership and permissions of any volum == Operations -[[Post-oapi-v1-podsecuritypolicysubjectreviews]] -=== Create a PodSecurityPolicySubjectReview -Create a PodSecurityPolicySubjectReview - -==== HTTP request ----- -POST /oapi/v1/podsecuritypolicysubjectreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "PodSecurityPolicySubjectReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/podsecuritypolicysubjectreviews <<'EOF' -{ - "kind": "PodSecurityPolicySubjectReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.PodSecurityPolicySubjectReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.PodSecurityPolicySubjectReview -|201 Created|v1.PodSecurityPolicySubjectReview -|202 Accepted|v1.PodSecurityPolicySubjectReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-podsecuritypolicysubjectreviews]] === Create a PodSecurityPolicySubjectReview in a namespace Create a PodSecurityPolicySubjectReview diff --git a/api/docs/oapi/v1.ProcessedTemplate.adoc b/api/docs/oapi/v1.ProcessedTemplate.adoc index 32f7f68a7f3a..0fbf8be759bd 100644 --- a/api/docs/oapi/v1.ProcessedTemplate.adoc +++ b/api/docs/oapi/v1.ProcessedTemplate.adoc @@ -114,78 +114,6 @@ from | value ----------------------------- "test[0-9]{1}x" == Operations -[[Post-oapi-v1-processedtemplates]] -=== Create a ProcessedTemplate -Create a Template - -==== HTTP request ----- -POST /oapi/v1/processedtemplates HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ProcessedTemplate", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/processedtemplates <<'EOF' -{ - "kind": "ProcessedTemplate", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Template -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Template -|201 Created|v1.Template -|202 Accepted|v1.Template -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-processedtemplates]] === Create a ProcessedTemplate in a namespace Create a Template diff --git a/api/docs/oapi/v1.Role.adoc b/api/docs/oapi/v1.Role.adoc index 556d14d97a6a..862dd6c360a7 100644 --- a/api/docs/oapi/v1.Role.adoc +++ b/api/docs/oapi/v1.Role.adoc @@ -108,78 +108,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-roles]] -=== Create a Role -Create a Role - -==== HTTP request ----- -POST /oapi/v1/roles HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Role", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/roles <<'EOF' -{ - "kind": "Role", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Role -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Role -|201 Created|v1.Role -|202 Accepted|v1.Role -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-roles]] === Create a Role in a namespace Create a Role @@ -337,7 +265,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -345,6 +272,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.RoleBinding.adoc b/api/docs/oapi/v1.RoleBinding.adoc index 1eb130846e4a..97d3fb427b6b 100644 --- a/api/docs/oapi/v1.RoleBinding.adoc +++ b/api/docs/oapi/v1.RoleBinding.adoc @@ -115,78 +115,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-rolebindings]] -=== Create a RoleBinding -Create a RoleBinding - -==== HTTP request ----- -POST /oapi/v1/rolebindings HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBinding", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/rolebindings <<'EOF' -{ - "kind": "RoleBinding", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.RoleBinding -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.RoleBinding -|201 Created|v1.RoleBinding -|202 Accepted|v1.RoleBinding -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-rolebindings]] === Create a RoleBinding in a namespace Create a RoleBinding @@ -344,7 +272,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -352,6 +279,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.RoleBindingRestriction.adoc b/api/docs/oapi/v1.RoleBindingRestriction.adoc index a42dca294d02..186109fd4489 100644 --- a/api/docs/oapi/v1.RoleBindingRestriction.adoc +++ b/api/docs/oapi/v1.RoleBindingRestriction.adoc @@ -126,78 +126,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-rolebindingrestrictions]] -=== Create a RoleBindingRestriction -Create a RoleBindingRestriction - -==== HTTP request ----- -POST /oapi/v1/rolebindingrestrictions HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "RoleBindingRestriction", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/rolebindingrestrictions <<'EOF' -{ - "kind": "RoleBindingRestriction", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.RoleBindingRestriction -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.RoleBindingRestriction -|201 Created|v1.RoleBindingRestriction -|202 Accepted|v1.RoleBindingRestriction -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-rolebindingrestrictions]] === Create a RoleBindingRestriction in a namespace Create a RoleBindingRestriction @@ -357,7 +285,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -365,6 +292,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.Route.adoc b/api/docs/oapi/v1.Route.adoc index 6a2c2fcd6bfa..35d84b145537 100644 --- a/api/docs/oapi/v1.Route.adoc +++ b/api/docs/oapi/v1.Route.adoc @@ -136,78 +136,6 @@ Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-gu == Operations -[[Post-oapi-v1-routes]] -=== Create a Route -Create a Route - -==== HTTP request ----- -POST /oapi/v1/routes HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "Route", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/routes <<'EOF' -{ - "kind": "Route", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Route -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Route -|201 Created|v1.Route -|202 Accepted|v1.Route -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-routes]] === Create a Route in a namespace Create a Route @@ -367,7 +295,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -375,6 +302,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/docs/oapi/v1.SelfSubjectRulesReview.adoc b/api/docs/oapi/v1.SelfSubjectRulesReview.adoc index 94ca57750e45..d72d9caafeb9 100644 --- a/api/docs/oapi/v1.SelfSubjectRulesReview.adoc +++ b/api/docs/oapi/v1.SelfSubjectRulesReview.adoc @@ -44,78 +44,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-oapi-v1-selfsubjectrulesreviews]] -=== Create a SelfSubjectRulesReview -Create a SelfSubjectRulesReview - -==== HTTP request ----- -POST /oapi/v1/selfsubjectrulesreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "SelfSubjectRulesReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/selfsubjectrulesreviews <<'EOF' -{ - "kind": "SelfSubjectRulesReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.SelfSubjectRulesReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.SelfSubjectRulesReview -|201 Created|v1.SelfSubjectRulesReview -|202 Accepted|v1.SelfSubjectRulesReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-selfsubjectrulesreviews]] === Create a SelfSubjectRulesReview in a namespace Create a SelfSubjectRulesReview diff --git a/api/docs/oapi/v1.SubjectRulesReview.adoc b/api/docs/oapi/v1.SubjectRulesReview.adoc index f08f25663c69..e937f84d80ed 100644 --- a/api/docs/oapi/v1.SubjectRulesReview.adoc +++ b/api/docs/oapi/v1.SubjectRulesReview.adoc @@ -47,78 +47,6 @@ Expand or mouse-over a field for more information about it. == Operations -[[Post-oapi-v1-subjectrulesreviews]] -=== Create a SubjectRulesReview -Create a SubjectRulesReview - -==== HTTP request ----- -POST /oapi/v1/subjectrulesreviews HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "SubjectRulesReview", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/subjectrulesreviews <<'EOF' -{ - "kind": "SubjectRulesReview", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.SubjectRulesReview -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.SubjectRulesReview -|201 Created|v1.SubjectRulesReview -|202 Accepted|v1.SubjectRulesReview -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-subjectrulesreviews]] === Create a SubjectRulesReview in a namespace Create a SubjectRulesReview diff --git a/api/docs/oapi/v1.Template.adoc b/api/docs/oapi/v1.Template.adoc index 7562032f35be..76ab8871802f 100644 --- a/api/docs/oapi/v1.Template.adoc +++ b/api/docs/oapi/v1.Template.adoc @@ -114,78 +114,6 @@ from | value ----------------------------- "test[0-9]{1}x" == Operations -[[Post-oapi-v1-templates]] -=== Create a Template -Create a Template - -==== HTTP request ----- -POST /oapi/v1/templates HTTP/1.1 -Authorization: Bearer $TOKEN -Accept: application/json -Connection: close -Content-Type: application/json' - -{ - "kind": "ProcessedTemplate", - "apiVersion": "v1", - ... -} - ----- - -==== Curl request ----- -$ curl -k \ - -X POST \ - -d @- \ - -H "Authorization: Bearer $TOKEN" \ - -H 'Accept: application/json' \ - -H 'Content-Type: application/json' \ - https://$ENDPOINT/oapi/v1/templates <<'EOF' -{ - "kind": "ProcessedTemplate", - "apiVersion": "v1", - ... -} -EOF ----- - -==== HTTP body -[cols="1,5", options="header"] -|=== -|Parameter|Schema -|body|v1.Template -|=== - -==== Query parameters -[cols="1,5", options="header"] -|=== -|Parameter|Description -|pretty|If 'true', then the output is pretty printed. -|=== - -==== Responses -[cols="1,5", options="header"] -|=== -|HTTP Code|Schema -|200 OK|v1.Template -|201 Created|v1.Template -|202 Accepted|v1.Template -|401 Unauthorized| -|=== - -==== Consumes - -* \*/* - -==== Produces - -* application/json -* application/yaml -* application/vnd.kubernetes.protobuf - - [[Post-oapi-v1-namespaces-namespace-templates]] === Create a Template in a namespace Create a Template @@ -345,7 +273,6 @@ $ curl -k \ [cols="1,5", options="header"] |=== |Parameter|Description -|pretty|If 'true', then the output is pretty printed. |continue|The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. |fieldSelector|A selector to restrict the list of returned objects by their fields. Defaults to everything. |includeUninitialized|If true, partially initialized resources are included in the response. @@ -353,6 +280,7 @@ $ curl -k \ |limit|limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. +|pretty|If 'true', then the output is pretty printed. |resourceVersion|When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv. |timeoutSeconds|Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. |watch|Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. diff --git a/api/protobuf-spec/k8s_io_api_autoscaling_v2beta1.proto b/api/protobuf-spec/k8s_io_api_autoscaling_v2beta1.proto index 5e5c491a4bfe..0cd10143b2b2 100644 --- a/api/protobuf-spec/k8s_io_api_autoscaling_v2beta1.proto +++ b/api/protobuf-spec/k8s_io_api_autoscaling_v2beta1.proto @@ -31,29 +31,6 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v2beta1"; -// ContainerResourcePolicy controls how autoscaler computes the recommended -// resources for a specific container. -message ContainerResourcePolicy { - // Name of the container or DefaultContainerResourcePolicy, in which - // case the policy is used by the containers that don't have their own - // policy specified. - optional string containerName = 1; - - // Whether autoscaler is enabled for the container. The default is "Auto". - // +optional - optional string mode = 2; - - // Specifies the minimal amount of resources that will be recommended - // for the container. The default is no minimum. - // +optional - map minAllowed = 3; - - // Specifies the maximum amount of resources that will be recommended - // for the container. The default is no maximum. - // +optional - map maxAllowed = 4; -} - // CrossVersionObjectReference contains enough information to let you identify the referred resource. message CrossVersionObjectReference { // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" @@ -312,26 +289,6 @@ message ObjectMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; } -// PodResourcePolicy controls how autoscaler computes the recommended resources -// for containers belonging to the pod. There can be at most one entry for every -// named container and optionally a single wildcard entry with `containerName` = '*', -// which handles all containers that don't have individual policies. -message PodResourcePolicy { - // Per-container resource policies. - // +optional - // +patchMergeKey=containerName - // +patchStrategy=merge - repeated ContainerResourcePolicy containerPolicies = 1; -} - -// PodUpdatePolicy describes the rules on how changes are applied to the pods. -message PodUpdatePolicy { - // Controls when autoscaler applies changes to the pod resources. - // The default is 'Auto'. - // +optional - optional string updateMode = 1; -} - // PodsMetricSource indicates how to scale on a metric describing each pod in // the current scale target (for example, transactions-processed-per-second). // The values will be averaged together before being compared to the target @@ -356,39 +313,6 @@ message PodsMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2; } -// RecommendedContainerResources is the recommendation of resources computed by -// autoscaler for a specific container. Respects the container resource policy -// if present in the spec. In particular the recommendation is not produced for -// containers with `ContainerScalingMode` set to 'Off'. -message RecommendedContainerResources { - // Name of the container. - optional string containerName = 1; - - // Recommended amount of resources. - map target = 2; - - // Minimum recommended amount of resources. - // This amount is not guaranteed to be sufficient for the application to operate in a stable way, however - // running with less resources is likely to have significant impact on performance/availability. - // +optional - map lowerBound = 3; - - // Maximum recommended amount of resources. - // Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum - // amount of application is actually capable of consuming. - // +optional - map upperBound = 4; -} - -// RecommendedPodResources is the recommendation of resources computed by -// autoscaler. It contains a recommendation for each container in the pod -// (except for those with `ContainerScalingMode` set to 'Off'). -message RecommendedPodResources { - // Resources recommended by the autoscaler for each container. - // +optional - repeated RecommendedContainerResources containerRecommendations = 1; -} - // ResourceMetricSource indicates how to scale on a resource metric known to // Kubernetes, as specified in requests and limits, describing each pod in the // current scale target (e.g. CPU or memory). The values will be averaged @@ -437,89 +361,3 @@ message ResourceMetricStatus { optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3; } -// VerticalPodAutoscaler is the configuration for a vertical pod -// autoscaler, which automatically manages pod resources based on historical and -// real time resource utilization. -message VerticalPodAutoscaler { - // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the behavior of the autoscaler. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - optional VerticalPodAutoscalerSpec spec = 2; - - // Current information about the autoscaler. - // +optional - optional VerticalPodAutoscalerStatus status = 3; -} - -// VerticalPodAutoscalerCondition describes the state of -// a VerticalPodAutoscaler at a certain point. -message VerticalPodAutoscalerCondition { - // type describes the current condition - optional string type = 1; - - // status is the status of the condition (True, False, Unknown) - optional string status = 2; - - // lastTransitionTime is the last time the condition transitioned from - // one status to another - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // reason is the reason for the condition's last transition. - // +optional - optional string reason = 4; - - // message is a human-readable explanation containing details about - // the transition - // +optional - optional string message = 5; -} - -// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects. -message VerticalPodAutoscalerList { - // metadata is the standard list metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is the list of vertical pod autoscaler objects. - repeated VerticalPodAutoscaler items = 2; -} - -// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. -message VerticalPodAutoscalerSpec { - // A label query that determines the set of pods controlled by the Autoscaler. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; - - // Describes the rules on how changes are applied to the pods. - // If not specified, all fields in the `PodUpdatePolicy` are set to their - // default values. - // +optional - optional PodUpdatePolicy updatePolicy = 2; - - // Controls how the autoscaler computes recommended resources. - // The resource policy may be used to set constraints on the recommendations - // for individual containers. If not specified, the autoscaler computes recommended - // resources for all containers in the pod, without additional constraints. - // +optional - optional PodResourcePolicy resourcePolicy = 3; -} - -// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. -message VerticalPodAutoscalerStatus { - // The most recently computed amount of resources recommended by the - // autoscaler for the controlled pods. - // +optional - optional RecommendedPodResources recommendation = 1; - - // Conditions is the set of conditions required for this autoscaler to scale its target, - // and indicates whether or not those conditions are met. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - repeated VerticalPodAutoscalerCondition conditions = 2; -} - diff --git a/api/swagger-spec/api-v1.json b/api/swagger-spec/api-v1.json index 7659c9255be4..fdcbd0293a1f 100644 --- a/api/swagger-spec/api-v1.json +++ b/api/swagger-spec/api-v1.json @@ -71,61 +71,6 @@ } ] }, - { - "path": "/api/v1/bindings", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createBindingForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Binding" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Binding" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Binding" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/api/v1/componentstatuses", "description": "API at /api/v1", @@ -1140,55 +1085,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ConfigMap", - "method": "POST", - "summary": "create a ConfigMap", - "nickname": "createConfigMapForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ConfigMap" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -2161,55 +2057,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Endpoints", - "method": "POST", - "summary": "create Endpoints", - "nickname": "createEndpointsForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Endpoints" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -3182,55 +3029,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Event", - "method": "POST", - "summary": "create an Event", - "nickname": "createEventForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Event" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -4203,55 +4001,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.LimitRange", - "method": "POST", - "summary": "create a LimitRange", - "nickname": "createLimitRangeForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.LimitRange" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -7355,62 +7104,13 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "POST", - "summary": "create a PersistentVolumeClaim", - "nickname": "createPersistentVolumeClaimForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.PersistentVolumeClaim" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ + } + ] + }, + { + "path": "/api/v1/watch/persistentvolumeclaims", + "description": "API at /api/v1", + "operations": [ { "type": "v1.WatchEvent", "method": "GET", @@ -9386,55 +9086,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Pod", - "method": "POST", - "summary": "create a Pod", - "nickname": "createPodForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Pod" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -11819,55 +11470,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.PodTemplate", - "method": "POST", - "summary": "create a PodTemplate", - "nickname": "createPodTemplateForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.PodTemplate" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -12840,55 +12442,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ReplicationController", - "method": "POST", - "summary": "create a ReplicationController", - "nickname": "createReplicationControllerForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ReplicationController" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -14201,55 +13754,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ResourceQuota", - "method": "POST", - "summary": "create a ResourceQuota", - "nickname": "createResourceQuotaForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ResourceQuota" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -15392,55 +14896,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createSecretForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Secret" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -17107,55 +16562,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ServiceAccount", - "method": "POST", - "summary": "create a ServiceAccount", - "nickname": "createServiceAccountForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ServiceAccount" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -18025,55 +17431,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createServiceForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Service" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, diff --git a/api/swagger-spec/oapi-v1.json b/api/swagger-spec/oapi-v1.json index ad52333ad9d6..19a8ab2e97e9 100644 --- a/api/swagger-spec/oapi-v1.json +++ b/api/swagger-spec/oapi-v1.json @@ -1141,55 +1141,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.BuildConfig", - "method": "POST", - "summary": "create a BuildConfig", - "nickname": "createBuildConfigForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.BuildConfig", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.BuildConfig" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.BuildConfig" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.BuildConfig" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -2421,55 +2372,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Build", - "method": "POST", - "summary": "create a Build", - "nickname": "createBuildForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Build", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Build" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Build" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Build" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -5976,55 +5878,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.DeploymentConfig", - "method": "POST", - "summary": "create a DeploymentConfig", - "nickname": "createDeploymentConfigForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeploymentConfig", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.DeploymentConfig" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.DeploymentConfig" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.DeploymentConfig" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -7604,55 +7457,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.EgressNetworkPolicy", - "method": "POST", - "summary": "create an EgressNetworkPolicy", - "nickname": "createEgressNetworkPolicyForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.EgressNetworkPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EgressNetworkPolicy" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.EgressNetworkPolicy" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.EgressNetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -10783,61 +10587,6 @@ } ] }, - { - "path": "/oapi/v1/imagestreamimports", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.ImageStreamImport", - "method": "POST", - "summary": "create an ImageStreamImport", - "nickname": "createImageStreamImportForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ImageStreamImport", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ImageStreamImport" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ImageStreamImport" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ImageStreamImport" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/namespaces/{namespace}/imagestreammappings", "description": "OpenShift REST API, version v1", @@ -10902,69 +10651,14 @@ ] }, { - "path": "/oapi/v1/imagestreammappings", + "path": "/oapi/v1/namespaces/{namespace}/imagestreams", "description": "OpenShift REST API, version v1", "operations": [ { - "type": "v1.ImageStreamMapping", - "method": "POST", - "summary": "create an ImageStreamMapping", - "nickname": "createImageStreamMappingForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ImageStreamMapping", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ImageStreamMapping" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ImageStreamMapping" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ImageStreamMapping" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/oapi/v1/namespaces/{namespace}/imagestreams", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.ImageStreamList", - "method": "GET", - "summary": "list or watch objects of kind ImageStream", - "nickname": "listNamespacedImageStream", + "type": "v1.ImageStreamList", + "method": "GET", + "summary": "list or watch objects of kind ImageStream", + "nickname": "listNamespacedImageStream", "parameters": [ { "type": "string", @@ -11822,55 +11516,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ImageStream", - "method": "POST", - "summary": "create an ImageStream", - "nickname": "createImageStreamForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ImageStream", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ImageStream" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ImageStream" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ImageStream" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -12781,55 +12426,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.ImageStreamTag", - "method": "POST", - "summary": "create an ImageStreamTag", - "nickname": "createImageStreamTagForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ImageStreamTag", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ImageStreamTag" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ImageStreamTag" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ImageStreamTag" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -12896,61 +12492,6 @@ } ] }, - { - "path": "/oapi/v1/localresourceaccessreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.LocalResourceAccessReview", - "method": "POST", - "summary": "create a LocalResourceAccessReview", - "nickname": "createLocalResourceAccessReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LocalResourceAccessReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LocalResourceAccessReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.LocalResourceAccessReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.LocalResourceAccessReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/namespaces/{namespace}/localsubjectaccessreviews", "description": "OpenShift REST API, version v1", @@ -13014,61 +12555,6 @@ } ] }, - { - "path": "/oapi/v1/localsubjectaccessreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.LocalSubjectAccessReview", - "method": "POST", - "summary": "create a LocalSubjectAccessReview", - "nickname": "createLocalSubjectAccessReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LocalSubjectAccessReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LocalSubjectAccessReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.LocalSubjectAccessReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.LocalSubjectAccessReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/netnamespaces", "description": "OpenShift REST API, version v1", @@ -16603,62 +16089,7 @@ ] }, { - "path": "/oapi/v1/podsecuritypolicyreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.PodSecurityPolicyReview", - "method": "POST", - "summary": "create a PodSecurityPolicyReview", - "nickname": "createPodSecurityPolicyReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodSecurityPolicyReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodSecurityPolicyReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.PodSecurityPolicyReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.PodSecurityPolicyReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/oapi/v1/namespaces/{namespace}/podsecuritypolicyselfsubjectreviews", + "path": "/oapi/v1/namespaces/{namespace}/podsecuritypolicyselfsubjectreviews", "description": "OpenShift REST API, version v1", "operations": [ { @@ -16720,61 +16151,6 @@ } ] }, - { - "path": "/oapi/v1/podsecuritypolicyselfsubjectreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.PodSecurityPolicySelfSubjectReview", - "method": "POST", - "summary": "create a PodSecurityPolicySelfSubjectReview", - "nickname": "createPodSecurityPolicySelfSubjectReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodSecurityPolicySelfSubjectReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodSecurityPolicySelfSubjectReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.PodSecurityPolicySelfSubjectReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.PodSecurityPolicySelfSubjectReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/namespaces/{namespace}/podsecuritypolicysubjectreviews", "description": "OpenShift REST API, version v1", @@ -16838,61 +16214,6 @@ } ] }, - { - "path": "/oapi/v1/podsecuritypolicysubjectreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.PodSecurityPolicySubjectReview", - "method": "POST", - "summary": "create a PodSecurityPolicySubjectReview", - "nickname": "createPodSecurityPolicySubjectReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodSecurityPolicySubjectReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodSecurityPolicySubjectReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.PodSecurityPolicySubjectReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.PodSecurityPolicySubjectReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/namespaces/{namespace}/processedtemplates", "description": "OpenShift REST API, version v1", @@ -16956,61 +16277,6 @@ } ] }, - { - "path": "/oapi/v1/processedtemplates", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.Template", - "method": "POST", - "summary": "create a Template", - "nickname": "createTemplateForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Template", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Template" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Template" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Template" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/projectrequests", "description": "OpenShift REST API, version v1", @@ -18667,55 +17933,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.RoleBindingRestriction", - "method": "POST", - "summary": "create a RoleBindingRestriction", - "nickname": "createRoleBindingRestrictionForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.RoleBindingRestriction", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.RoleBindingRestriction" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.RoleBindingRestriction" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.RoleBindingRestriction" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -19325,65 +18542,16 @@ "responseMessages": [ { "code": 200, - "message": "OK", - "responseModel": "v1.RoleBindingList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.RoleBinding", - "method": "POST", - "summary": "create a RoleBinding", - "nickname": "createRoleBindingForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.RoleBinding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.RoleBinding" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.RoleBinding" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.RoleBinding" + "message": "OK", + "responseModel": "v1.RoleBindingList" } ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "consumes": [ "*/*" @@ -19908,55 +19076,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Role", - "method": "POST", - "summary": "create a Role", - "nickname": "createRoleForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Role", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Role" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Role" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Role" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -20826,55 +19945,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Route", - "method": "POST", - "summary": "create a Route", - "nickname": "createRouteForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Route", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Route" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Route" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Route" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, @@ -21214,61 +20284,6 @@ } ] }, - { - "path": "/oapi/v1/selfsubjectrulesreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.SelfSubjectRulesReview", - "method": "POST", - "summary": "create a SelfSubjectRulesReview", - "nickname": "createSelfSubjectRulesReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.SelfSubjectRulesReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SelfSubjectRulesReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.SelfSubjectRulesReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.SelfSubjectRulesReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/subjectaccessreviews", "description": "OpenShift REST API, version v1", @@ -21387,61 +20402,6 @@ } ] }, - { - "path": "/oapi/v1/subjectrulesreviews", - "description": "OpenShift REST API, version v1", - "operations": [ - { - "type": "v1.SubjectRulesReview", - "method": "POST", - "summary": "create a SubjectRulesReview", - "nickname": "createSubjectRulesReviewForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.SubjectRulesReview", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SubjectRulesReview" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.SubjectRulesReview" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.SubjectRulesReview" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/oapi/v1/namespaces/{namespace}/templates", "description": "OpenShift REST API, version v1", @@ -22308,55 +21268,6 @@ "consumes": [ "*/*" ] - }, - { - "type": "v1.Template", - "method": "POST", - "summary": "create a Template", - "nickname": "createTemplateForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Template", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Template" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Template" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Template" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] } ] }, diff --git a/api/swagger-spec/openshift-openapi-spec.json b/api/swagger-spec/openshift-openapi-spec.json index a9f363285e8b..55e18bda038b 100644 --- a/api/swagger-spec/openshift-openapi-spec.json +++ b/api/swagger-spec/openshift-openapi-spec.json @@ -76,16 +76,18 @@ } } }, - "/api/v1/bindings": { - "post": { - "description": "create a Binding", + "/api/v1/componentstatuses": { + "get": { + "description": "list objects of kind ComponentStatus", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -93,48 +95,136 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1BindingForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, + "operationId": "listCoreV1ComponentStatus", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" } + }, + "401": { + "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/componentstatuses/{name}": { + "get": { + "description": "read the specified ComponentStatus", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "core_v1" ], + "operationId": "readCoreV1ComponentStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Binding", + "kind": "ComponentStatus", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ComponentStatus", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -144,9 +234,9 @@ } ] }, - "/api/v1/componentstatuses": { + "/api/v1/configmaps": { "get": { - "description": "list objects of kind ComponentStatus", + "description": "list or watch objects of kind ConfigMap", "consumes": [ "*/*" ], @@ -163,12 +253,12 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1ComponentStatus", + "operationId": "listCoreV1ConfigMapForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" } }, "401": { @@ -178,7 +268,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ComponentStatus", + "kind": "ConfigMap", "version": "v1" } }, @@ -248,16 +338,18 @@ } ] }, - "/api/v1/componentstatuses/{name}": { + "/api/v1/endpoints": { "get": { - "description": "read the specified ComponentStatus", + "description": "list or watch objects of kind Endpoints", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -265,22 +357,22 @@ "tags": [ "core_v1" ], - "operationId": "readCoreV1ComponentStatus", + "operationId": "listCoreV1EndpointsForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ComponentStatus", + "kind": "Endpoints", "version": "v1" } }, @@ -288,10 +380,37 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ComponentStatus", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -299,12 +418,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/api/v1/configmaps": { + "/api/v1/events": { "get": { - "description": "list or watch objects of kind ConfigMap", + "description": "list or watch objects of kind Event", "consumes": [ "*/*" ], @@ -321,70 +461,12 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "listCoreV1EventForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" + "$ref": "#/definitions/io.k8s.api.core.v1.EventList" } }, "401": { @@ -394,19 +476,88 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Event", "version": "v1" } }, - "post": { - "description": "create a ConfigMap", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/limitranges": { + "get": { + "description": "list or watch objects of kind LimitRange", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -414,60 +565,94 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1ConfigMapForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - } - ], + "operationId": "listCoreV1LimitRangeForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "LimitRange", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/api/v1/endpoints": { + "/api/v1/namespaces": { "get": { - "description": "list or watch objects of kind Endpoints", + "description": "list or watch objects of kind Namespace", "consumes": [ "*/*" ], @@ -484,7 +669,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1EndpointsForAllNamespaces", + "operationId": "listCoreV1Namespace", "parameters": [ { "uniqueItems": true, @@ -547,7 +732,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" } }, "401": { @@ -557,12 +742,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Namespace", "version": "v1" } }, "post": { - "description": "create Endpoints", + "description": "create a Namespace", "consumes": [ "*/*" ], @@ -577,14 +762,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1EndpointsForAllNamespaces", + "operationId": "createCoreV1Namespace", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } } ], @@ -592,19 +777,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { @@ -614,7 +799,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Namespace", "version": "v1" } }, @@ -628,18 +813,16 @@ } ] }, - "/api/v1/events": { - "get": { - "description": "list or watch objects of kind Event", + "/api/v1/namespaces/{namespace}/bindings": { + "post": { + "description": "create a Binding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -647,127 +830,34 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1EventForAllNamespaces", + "operationId": "createCoreV1NamespacedBinding", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "post": { - "description": "create an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1EventForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "401": { @@ -777,11 +867,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "Binding", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -791,9 +889,9 @@ } ] }, - "/api/v1/limitranges": { + "/api/v1/namespaces/{namespace}/configmaps": { "get": { - "description": "list or watch objects of kind LimitRange", + "description": "list or watch objects of kind ConfigMap", "consumes": [ "*/*" ], @@ -810,7 +908,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1LimitRangeForAllNamespaces", + "operationId": "listCoreV1NamespacedConfigMap", "parameters": [ { "uniqueItems": true, @@ -873,7 +971,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" } }, "401": { @@ -883,12 +981,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "ConfigMap", "version": "v1" } }, "post": { - "description": "create a LimitRange", + "description": "create a ConfigMap", "consumes": [ "*/*" ], @@ -903,14 +1001,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1LimitRangeForAllNamespaces", + "operationId": "createCoreV1NamespacedConfigMap", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } } ], @@ -918,19 +1016,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { @@ -940,32 +1038,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "ConfigMap", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces": { - "get": { - "description": "list or watch objects of kind Namespace", + "delete": { + "description": "delete collection of ConfigMap", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -973,7 +1058,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1Namespace", + "operationId": "deleteCoreV1CollectionNamespacedConfigMap", "parameters": [ { "uniqueItems": true, @@ -1036,22 +1121,41 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Namespace", + "kind": "ConfigMap", "version": "v1" } }, - "post": { - "description": "create a Namespace", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/api/v1/namespaces/{namespace}/configmaps/{name}": { + "get": { + "description": "read the specified ConfigMap", "consumes": [ "*/*" ], @@ -1066,14 +1170,65 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1Namespace", + "operationId": "readCoreV1NamespacedConfigMap", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "put": { + "description": "replace the specified ConfigMap", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "operationId": "replaceCoreV1NamespacedConfigMap", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } } ], @@ -1081,45 +1236,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Namespace", + "kind": "ConfigMap", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/bindings": { - "post": { - "description": "create a Binding", + "delete": { + "description": "delete a ConfigMap", "consumes": [ "*/*" ], @@ -1134,48 +1272,112 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedBinding", + "operationId": "deleteCoreV1NamespacedConfigMap", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, - "201": { - "description": "Created", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified ConfigMap", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "operationId": "patchCoreV1NamespacedConfigMap", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } - }, - "202": { - "description": "Accepted", + } + ], + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Binding", + "kind": "ConfigMap", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ConfigMap", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -1193,9 +1395,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/configmaps": { + "/api/v1/namespaces/{namespace}/endpoints": { "get": { - "description": "list or watch objects of kind ConfigMap", + "description": "list or watch objects of kind Endpoints", "consumes": [ "*/*" ], @@ -1212,7 +1414,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1NamespacedConfigMap", + "operationId": "listCoreV1NamespacedEndpoints", "parameters": [ { "uniqueItems": true, @@ -1275,7 +1477,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" } }, "401": { @@ -1285,12 +1487,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, "post": { - "description": "create a ConfigMap", + "description": "create Endpoints", "consumes": [ "*/*" ], @@ -1305,14 +1507,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedConfigMap", + "operationId": "createCoreV1NamespacedEndpoints", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } } ], @@ -1320,19 +1522,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { @@ -1342,12 +1544,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, "delete": { - "description": "delete collection of ConfigMap", + "description": "delete collection of Endpoints", "consumes": [ "*/*" ], @@ -1362,7 +1564,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", + "operationId": "deleteCoreV1CollectionNamespacedEndpoints", "parameters": [ { "uniqueItems": true, @@ -1435,7 +1637,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, @@ -1457,9 +1659,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { + "/api/v1/namespaces/{namespace}/endpoints/{name}": { "get": { - "description": "read the specified ConfigMap", + "description": "read the specified Endpoints", "consumes": [ "*/*" ], @@ -1474,7 +1676,7 @@ "tags": [ "core_v1" ], - "operationId": "readCoreV1NamespacedConfigMap", + "operationId": "readCoreV1NamespacedEndpoints", "parameters": [ { "uniqueItems": true, @@ -1495,7 +1697,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { @@ -1505,12 +1707,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, "put": { - "description": "replace the specified ConfigMap", + "description": "replace the specified Endpoints", "consumes": [ "*/*" ], @@ -1525,14 +1727,14 @@ "tags": [ "core_v1" ], - "operationId": "replaceCoreV1NamespacedConfigMap", + "operationId": "replaceCoreV1NamespacedEndpoints", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } } ], @@ -1540,13 +1742,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { @@ -1556,12 +1758,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, "delete": { - "description": "delete a ConfigMap", + "description": "delete Endpoints", "consumes": [ "*/*" ], @@ -1576,7 +1778,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1NamespacedConfigMap", + "operationId": "deleteCoreV1NamespacedEndpoints", "parameters": [ { "name": "body", @@ -1622,12 +1824,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, "patch": { - "description": "partially update the specified ConfigMap", + "description": "partially update the specified Endpoints", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -1644,7 +1846,7 @@ "tags": [ "core_v1" ], - "operationId": "patchCoreV1NamespacedConfigMap", + "operationId": "patchCoreV1NamespacedEndpoints", "parameters": [ { "name": "body", @@ -1659,7 +1861,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { @@ -1669,7 +1871,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, @@ -1677,7 +1879,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ConfigMap", + "description": "name of the Endpoints", "name": "name", "in": "path", "required": true @@ -1699,9 +1901,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/endpoints": { + "/api/v1/namespaces/{namespace}/events": { "get": { - "description": "list or watch objects of kind Endpoints", + "description": "list or watch objects of kind Event", "consumes": [ "*/*" ], @@ -1718,7 +1920,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1NamespacedEndpoints", + "operationId": "listCoreV1NamespacedEvent", "parameters": [ { "uniqueItems": true, @@ -1781,7 +1983,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" + "$ref": "#/definitions/io.k8s.api.core.v1.EventList" } }, "401": { @@ -1791,12 +1993,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, "post": { - "description": "create Endpoints", + "description": "create an Event", "consumes": [ "*/*" ], @@ -1811,14 +2013,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedEndpoints", + "operationId": "createCoreV1NamespacedEvent", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } } ], @@ -1826,19 +2028,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { @@ -1848,12 +2050,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, "delete": { - "description": "delete collection of Endpoints", + "description": "delete collection of Event", "consumes": [ "*/*" ], @@ -1868,7 +2070,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", + "operationId": "deleteCoreV1CollectionNamespacedEvent", "parameters": [ { "uniqueItems": true, @@ -1941,7 +2143,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, @@ -1963,9 +2165,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { + "/api/v1/namespaces/{namespace}/events/{name}": { "get": { - "description": "read the specified Endpoints", + "description": "read the specified Event", "consumes": [ "*/*" ], @@ -1980,7 +2182,7 @@ "tags": [ "core_v1" ], - "operationId": "readCoreV1NamespacedEndpoints", + "operationId": "readCoreV1NamespacedEvent", "parameters": [ { "uniqueItems": true, @@ -2001,7 +2203,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { @@ -2011,12 +2213,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, "put": { - "description": "replace the specified Endpoints", + "description": "replace the specified Event", "consumes": [ "*/*" ], @@ -2031,14 +2233,14 @@ "tags": [ "core_v1" ], - "operationId": "replaceCoreV1NamespacedEndpoints", + "operationId": "replaceCoreV1NamespacedEvent", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } } ], @@ -2046,13 +2248,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { @@ -2062,12 +2264,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, "delete": { - "description": "delete Endpoints", + "description": "delete an Event", "consumes": [ "*/*" ], @@ -2082,7 +2284,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1NamespacedEndpoints", + "operationId": "deleteCoreV1NamespacedEvent", "parameters": [ { "name": "body", @@ -2128,12 +2330,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, "patch": { - "description": "partially update the specified Endpoints", + "description": "partially update the specified Event", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -2150,7 +2352,7 @@ "tags": [ "core_v1" ], - "operationId": "patchCoreV1NamespacedEndpoints", + "operationId": "patchCoreV1NamespacedEvent", "parameters": [ { "name": "body", @@ -2165,7 +2367,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { @@ -2175,7 +2377,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, @@ -2183,7 +2385,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Endpoints", + "description": "name of the Event", "name": "name", "in": "path", "required": true @@ -2205,9 +2407,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/events": { + "/api/v1/namespaces/{namespace}/limitranges": { "get": { - "description": "list or watch objects of kind Event", + "description": "list or watch objects of kind LimitRange", "consumes": [ "*/*" ], @@ -2224,7 +2426,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1NamespacedEvent", + "operationId": "listCoreV1NamespacedLimitRange", "parameters": [ { "uniqueItems": true, @@ -2287,7 +2489,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" } }, "401": { @@ -2297,12 +2499,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, "post": { - "description": "create an Event", + "description": "create a LimitRange", "consumes": [ "*/*" ], @@ -2317,14 +2519,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedEvent", + "operationId": "createCoreV1NamespacedLimitRange", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } } ], @@ -2332,19 +2534,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { @@ -2354,12 +2556,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, "delete": { - "description": "delete collection of Event", + "description": "delete collection of LimitRange", "consumes": [ "*/*" ], @@ -2374,7 +2576,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1CollectionNamespacedEvent", + "operationId": "deleteCoreV1CollectionNamespacedLimitRange", "parameters": [ { "uniqueItems": true, @@ -2447,7 +2649,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, @@ -2469,9 +2671,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/events/{name}": { + "/api/v1/namespaces/{namespace}/limitranges/{name}": { "get": { - "description": "read the specified Event", + "description": "read the specified LimitRange", "consumes": [ "*/*" ], @@ -2486,7 +2688,7 @@ "tags": [ "core_v1" ], - "operationId": "readCoreV1NamespacedEvent", + "operationId": "readCoreV1NamespacedLimitRange", "parameters": [ { "uniqueItems": true, @@ -2507,7 +2709,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { @@ -2517,12 +2719,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, "put": { - "description": "replace the specified Event", + "description": "replace the specified LimitRange", "consumes": [ "*/*" ], @@ -2537,14 +2739,14 @@ "tags": [ "core_v1" ], - "operationId": "replaceCoreV1NamespacedEvent", + "operationId": "replaceCoreV1NamespacedLimitRange", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } } ], @@ -2552,13 +2754,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { @@ -2568,12 +2770,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, "delete": { - "description": "delete an Event", + "description": "delete a LimitRange", "consumes": [ "*/*" ], @@ -2588,7 +2790,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1NamespacedEvent", + "operationId": "deleteCoreV1NamespacedLimitRange", "parameters": [ { "name": "body", @@ -2634,12 +2836,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, "patch": { - "description": "partially update the specified Event", + "description": "partially update the specified LimitRange", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -2656,7 +2858,7 @@ "tags": [ "core_v1" ], - "operationId": "patchCoreV1NamespacedEvent", + "operationId": "patchCoreV1NamespacedLimitRange", "parameters": [ { "name": "body", @@ -2671,7 +2873,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { @@ -2681,7 +2883,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, @@ -2689,7 +2891,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Event", + "description": "name of the LimitRange", "name": "name", "in": "path", "required": true @@ -2711,9 +2913,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/limitranges": { + "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { "get": { - "description": "list or watch objects of kind LimitRange", + "description": "list or watch objects of kind PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -2730,7 +2932,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1NamespacedLimitRange", + "operationId": "listCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "uniqueItems": true, @@ -2793,7 +2995,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" } }, "401": { @@ -2803,12 +3005,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, "post": { - "description": "create a LimitRange", + "description": "create a PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -2823,14 +3025,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedLimitRange", + "operationId": "createCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } } ], @@ -2838,19 +3040,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { @@ -2860,12 +3062,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, "delete": { - "description": "delete collection of LimitRange", + "description": "delete collection of PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -2880,7 +3082,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", + "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", "parameters": [ { "uniqueItems": true, @@ -2953,7 +3155,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, @@ -2975,9 +3177,9 @@ } ] }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { + "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { "get": { - "description": "read the specified LimitRange", + "description": "read the specified PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -2992,7 +3194,7 @@ "tags": [ "core_v1" ], - "operationId": "readCoreV1NamespacedLimitRange", + "operationId": "readCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "uniqueItems": true, @@ -3013,7 +3215,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { @@ -3023,12 +3225,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, "put": { - "description": "replace the specified LimitRange", + "description": "replace the specified PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -3043,14 +3245,14 @@ "tags": [ "core_v1" ], - "operationId": "replaceCoreV1NamespacedLimitRange", + "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } } ], @@ -3058,13 +3260,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { @@ -3074,12 +3276,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, "delete": { - "description": "delete a LimitRange", + "description": "delete a PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -3094,7 +3296,7 @@ "tags": [ "core_v1" ], - "operationId": "deleteCoreV1NamespacedLimitRange", + "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "name": "body", @@ -3140,12 +3342,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, "patch": { - "description": "partially update the specified LimitRange", + "description": "partially update the specified PersistentVolumeClaim", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -3162,7 +3364,7 @@ "tags": [ "core_v1" ], - "operationId": "patchCoreV1NamespacedLimitRange", + "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "name": "body", @@ -3177,7 +3379,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { @@ -3187,7 +3389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, @@ -3195,7 +3397,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the LimitRange", + "description": "name of the PersistentVolumeClaim", "name": "name", "in": "path", "required": true @@ -3217,18 +3419,16 @@ } ] }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { + "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { "get": { - "description": "list or watch objects of kind PersistentVolumeClaim", + "description": "read status of the specified PersistentVolumeClaim", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -3236,85 +3436,27 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, - "post": { - "description": "create a PersistentVolumeClaim", + "put": { + "description": "replace status of the specified PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -3329,453 +3471,7 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "description": "read the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "description": "replace the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "delete": { - "description": "delete a PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified PersistentVolumeClaim", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolumeClaim", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "description": "read status of the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", + "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", "parameters": [ { "name": "body", @@ -11428,64 +11124,6 @@ "core_v1" ], "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -11504,70 +11142,69 @@ "version": "v1" } }, - "post": { - "description": "create a PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1PersistentVolumeClaimForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -12233,64 +11870,6 @@ "core_v1" ], "operationId": "listCoreV1PodForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -12309,70 +11888,69 @@ "version": "v1" } }, - "post": { - "description": "create a Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1PodForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -12396,64 +11974,6 @@ "core_v1" ], "operationId": "listCoreV1PodTemplateForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -12472,15 +11992,84 @@ "version": "v1" } }, - "post": { - "description": "create a PodTemplate", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/replicationcontrollers": { + "get": { + "description": "list or watch objects of kind ReplicationController", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -12488,60 +12077,94 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1PodTemplateForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - } - ], + "operationId": "listCoreV1ReplicationControllerForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PodTemplate", + "kind": "ReplicationController", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/api/v1/replicationcontrollers": { + "/api/v1/resourcequotas": { "get": { - "description": "list or watch objects of kind ReplicationController", + "description": "list or watch objects of kind ResourceQuota", "consumes": [ "*/*" ], @@ -12558,70 +12181,12 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "listCoreV1ResourceQuotaForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" } }, "401": { @@ -12631,19 +12196,88 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ReplicationController", + "kind": "ResourceQuota", "version": "v1" } }, - "post": { - "description": "create a ReplicationController", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/secrets": { + "get": { + "description": "list or watch objects of kind Secret", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -12651,60 +12285,94 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1ReplicationControllerForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - } - ], + "operationId": "listCoreV1SecretForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ReplicationController", + "kind": "Secret", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/api/v1/resourcequotas": { + "/api/v1/securitycontextconstraints": { "get": { - "description": "list or watch objects of kind ResourceQuota", + "description": "list or watch objects of kind SecurityContextConstraints", "consumes": [ "*/*" ], @@ -12721,7 +12389,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", + "operationId": "listCoreV1SecurityContextConstraints", "parameters": [ { "uniqueItems": true, @@ -12784,7 +12452,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" + "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraintsList" } }, "401": { @@ -12794,12 +12462,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ResourceQuota", + "kind": "SecurityContextConstraints", "version": "v1" } }, "post": { - "description": "create a ResourceQuota", + "description": "create SecurityContextConstraints", "consumes": [ "*/*" ], @@ -12814,14 +12482,14 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1ResourceQuotaForAllNamespaces", + "operationId": "createCoreV1SecurityContextConstraints", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" } } ], @@ -12829,19 +12497,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" } }, "401": { @@ -12851,32 +12519,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ResourceQuota", + "kind": "SecurityContextConstraints", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/secrets": { - "get": { - "description": "list or watch objects of kind Secret", + "delete": { + "description": "delete collection of SecurityContextConstraints", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -12884,7 +12539,7 @@ "tags": [ "core_v1" ], - "operationId": "listCoreV1SecretForAllNamespaces", + "operationId": "deleteCoreV1CollectionSecurityContextConstraints", "parameters": [ { "uniqueItems": true, @@ -12947,22 +12602,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Secret", + "kind": "SecurityContextConstraints", "version": "v1" } }, - "post": { - "description": "create a Secret", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/api/v1/securitycontextconstraints/{name}": { + "get": { + "description": "read the specified SecurityContextConstraints", "consumes": [ "*/*" ], @@ -12977,331 +12643,7 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1SecretForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/securitycontextconstraints": { - "get": { - "description": "list or watch objects of kind SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1SecurityContextConstraints", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraintsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SecurityContextConstraints", - "version": "v1" - } - }, - "post": { - "description": "create SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1SecurityContextConstraints", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.SecurityContextConstraints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SecurityContextConstraints", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionSecurityContextConstraints", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SecurityContextConstraints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/securitycontextconstraints/{name}": { - "get": { - "description": "read the specified SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1SecurityContextConstraints", + "operationId": "readCoreV1SecurityContextConstraints", "parameters": [ { "uniqueItems": true, @@ -13538,64 +12880,6 @@ "core_v1" ], "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -13614,15 +12898,84 @@ "version": "v1" } }, - "post": { - "description": "create a ServiceAccount", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/services": { + "get": { + "description": "list or watch objects of kind Service", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -13630,44 +12983,22 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1ServiceAccountForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - } - ], + "operationId": "listCoreV1ServiceForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ServiceAccount", + "kind": "Service", "version": "v1" } }, @@ -13675,117 +13006,80 @@ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", "in": "query" - } - ] - }, - "/api/v1/services": { - "get": { - "description": "list or watch objects of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ServiceForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "post": { - "description": "create a Service", + ] + }, + "/api/v1/watch/configmaps": { + "get": { + "description": "watch individual changes to a list of ConfigMap", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -13793,60 +13087,94 @@ "tags": [ "core_v1" ], - "operationId": "createCoreV1ServiceForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], + "operationId": "watchCoreV1ConfigMapListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Service", + "kind": "ConfigMap", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/api/v1/watch/configmaps": { + "/api/v1/watch/endpoints": { "get": { - "description": "watch individual changes to a list of ConfigMap", + "description": "watch individual changes to a list of Endpoints", "consumes": [ "*/*" ], @@ -13863,7 +13191,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", + "operationId": "watchCoreV1EndpointsListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -13878,7 +13206,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, @@ -13948,9 +13276,9 @@ } ] }, - "/api/v1/watch/endpoints": { + "/api/v1/watch/events": { "get": { - "description": "watch individual changes to a list of Endpoints", + "description": "watch individual changes to a list of Event", "consumes": [ "*/*" ], @@ -13967,7 +13295,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1EndpointsListForAllNamespaces", + "operationId": "watchCoreV1EventListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -13982,7 +13310,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, @@ -14052,9 +13380,9 @@ } ] }, - "/api/v1/watch/events": { + "/api/v1/watch/limitranges": { "get": { - "description": "watch individual changes to a list of Event", + "description": "watch individual changes to a list of LimitRange", "consumes": [ "*/*" ], @@ -14071,7 +13399,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1EventListForAllNamespaces", + "operationId": "watchCoreV1LimitRangeListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -14086,7 +13414,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, @@ -14156,9 +13484,9 @@ } ] }, - "/api/v1/watch/limitranges": { + "/api/v1/watch/namespaces": { "get": { - "description": "watch individual changes to a list of LimitRange", + "description": "watch individual changes to a list of Namespace", "consumes": [ "*/*" ], @@ -14175,7 +13503,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", + "operationId": "watchCoreV1NamespaceList", "responses": { "200": { "description": "OK", @@ -14190,7 +13518,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "Namespace", "version": "v1" } }, @@ -14260,9 +13588,9 @@ } ] }, - "/api/v1/watch/namespaces": { + "/api/v1/watch/namespaces/{namespace}/configmaps": { "get": { - "description": "watch individual changes to a list of Namespace", + "description": "watch individual changes to a list of ConfigMap", "consumes": [ "*/*" ], @@ -14279,7 +13607,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespaceList", + "operationId": "watchCoreV1NamespacedConfigMapList", "responses": { "200": { "description": "OK", @@ -14294,7 +13622,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Namespace", + "kind": "ConfigMap", "version": "v1" } }, @@ -14334,6 +13662,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -14364,9 +13700,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { + "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { "get": { - "description": "watch individual changes to a list of ConfigMap", + "description": "watch changes to an object of kind ConfigMap", "consumes": [ "*/*" ], @@ -14383,7 +13719,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedConfigMapList", + "operationId": "watchCoreV1NamespacedConfigMap", "responses": { "200": { "description": "OK", @@ -14395,7 +13731,7 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", @@ -14438,6 +13774,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ConfigMap", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -14476,9 +13820,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { + "/api/v1/watch/namespaces/{namespace}/endpoints": { "get": { - "description": "watch changes to an object of kind ConfigMap", + "description": "watch individual changes to a list of Endpoints", "consumes": [ "*/*" ], @@ -14495,7 +13839,119 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedConfigMap", + "operationId": "watchCoreV1NamespacedEndpointsList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { + "get": { + "description": "watch changes to an object of kind Endpoints", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "operationId": "watchCoreV1NamespacedEndpoints", "responses": { "200": { "description": "OK", @@ -14510,7 +13966,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ConfigMap", + "kind": "Endpoints", "version": "v1" } }, @@ -14553,7 +14009,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ConfigMap", + "description": "name of the Endpoints", "name": "name", "in": "path", "required": true @@ -14596,9 +14052,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { + "/api/v1/watch/namespaces/{namespace}/events": { "get": { - "description": "watch individual changes to a list of Endpoints", + "description": "watch individual changes to a list of Event", "consumes": [ "*/*" ], @@ -14615,7 +14071,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedEndpointsList", + "operationId": "watchCoreV1NamespacedEventList", "responses": { "200": { "description": "OK", @@ -14630,7 +14086,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, @@ -14708,9 +14164,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { + "/api/v1/watch/namespaces/{namespace}/events/{name}": { "get": { - "description": "watch changes to an object of kind Endpoints", + "description": "watch changes to an object of kind Event", "consumes": [ "*/*" ], @@ -14727,7 +14183,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedEndpoints", + "operationId": "watchCoreV1NamespacedEvent", "responses": { "200": { "description": "OK", @@ -14742,7 +14198,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Endpoints", + "kind": "Event", "version": "v1" } }, @@ -14785,7 +14241,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Endpoints", + "description": "name of the Event", "name": "name", "in": "path", "required": true @@ -14828,9 +14284,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/events": { + "/api/v1/watch/namespaces/{namespace}/limitranges": { "get": { - "description": "watch individual changes to a list of Event", + "description": "watch individual changes to a list of LimitRange", "consumes": [ "*/*" ], @@ -14847,7 +14303,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedEventList", + "operationId": "watchCoreV1NamespacedLimitRangeList", "responses": { "200": { "description": "OK", @@ -14862,7 +14318,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, @@ -14940,9 +14396,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { + "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { "get": { - "description": "watch changes to an object of kind Event", + "description": "watch changes to an object of kind LimitRange", "consumes": [ "*/*" ], @@ -14959,7 +14415,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedEvent", + "operationId": "watchCoreV1NamespacedLimitRange", "responses": { "200": { "description": "OK", @@ -14974,7 +14430,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Event", + "kind": "LimitRange", "version": "v1" } }, @@ -15017,7 +14473,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Event", + "description": "name of the LimitRange", "name": "name", "in": "path", "required": true @@ -15060,9 +14516,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { + "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { "get": { - "description": "watch individual changes to a list of LimitRange", + "description": "watch individual changes to a list of PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -15079,7 +14535,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedLimitRangeList", + "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", "responses": { "200": { "description": "OK", @@ -15094,7 +14550,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, @@ -15172,9 +14628,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { + "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { "get": { - "description": "watch changes to an object of kind LimitRange", + "description": "watch changes to an object of kind PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -15191,7 +14647,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedLimitRange", + "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", "responses": { "200": { "description": "OK", @@ -15206,7 +14662,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LimitRange", + "kind": "PersistentVolumeClaim", "version": "v1" } }, @@ -15249,7 +14705,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the LimitRange", + "description": "name of the PersistentVolumeClaim", "name": "name", "in": "path", "required": true @@ -15292,9 +14748,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { + "/api/v1/watch/namespaces/{namespace}/pods": { "get": { - "description": "watch individual changes to a list of PersistentVolumeClaim", + "description": "watch individual changes to a list of Pod", "consumes": [ "*/*" ], @@ -15311,7 +14767,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", + "operationId": "watchCoreV1NamespacedPodList", "responses": { "200": { "description": "OK", @@ -15326,7 +14782,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PersistentVolumeClaim", + "kind": "Pod", "version": "v1" } }, @@ -15404,9 +14860,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { + "/api/v1/watch/namespaces/{namespace}/pods/{name}": { "get": { - "description": "watch changes to an object of kind PersistentVolumeClaim", + "description": "watch changes to an object of kind Pod", "consumes": [ "*/*" ], @@ -15423,7 +14879,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", + "operationId": "watchCoreV1NamespacedPod", "responses": { "200": { "description": "OK", @@ -15438,7 +14894,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PersistentVolumeClaim", + "kind": "Pod", "version": "v1" } }, @@ -15481,7 +14937,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PersistentVolumeClaim", + "description": "name of the Pod", "name": "name", "in": "path", "required": true @@ -15524,9 +14980,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/pods": { + "/api/v1/watch/namespaces/{namespace}/podtemplates": { "get": { - "description": "watch individual changes to a list of Pod", + "description": "watch individual changes to a list of PodTemplate", "consumes": [ "*/*" ], @@ -15543,7 +14999,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPodList", + "operationId": "watchCoreV1NamespacedPodTemplateList", "responses": { "200": { "description": "OK", @@ -15558,7 +15014,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Pod", + "kind": "PodTemplate", "version": "v1" } }, @@ -15636,9 +15092,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { + "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { "get": { - "description": "watch changes to an object of kind Pod", + "description": "watch changes to an object of kind PodTemplate", "consumes": [ "*/*" ], @@ -15655,7 +15111,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPod", + "operationId": "watchCoreV1NamespacedPodTemplate", "responses": { "200": { "description": "OK", @@ -15670,7 +15126,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Pod", + "kind": "PodTemplate", "version": "v1" } }, @@ -15713,7 +15169,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Pod", + "description": "name of the PodTemplate", "name": "name", "in": "path", "required": true @@ -15756,9 +15212,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { + "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { "get": { - "description": "watch individual changes to a list of PodTemplate", + "description": "watch individual changes to a list of ReplicationController", "consumes": [ "*/*" ], @@ -15775,7 +15231,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPodTemplateList", + "operationId": "watchCoreV1NamespacedReplicationControllerList", "responses": { "200": { "description": "OK", @@ -15790,7 +15246,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PodTemplate", + "kind": "ReplicationController", "version": "v1" } }, @@ -15868,9 +15324,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { + "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { "get": { - "description": "watch changes to an object of kind PodTemplate", + "description": "watch changes to an object of kind ReplicationController", "consumes": [ "*/*" ], @@ -15887,7 +15343,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedPodTemplate", + "operationId": "watchCoreV1NamespacedReplicationController", "responses": { "200": { "description": "OK", @@ -15902,7 +15358,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PodTemplate", + "kind": "ReplicationController", "version": "v1" } }, @@ -15945,7 +15401,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodTemplate", + "description": "name of the ReplicationController", "name": "name", "in": "path", "required": true @@ -15988,9 +15444,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { + "/api/v1/watch/namespaces/{namespace}/resourcequotas": { "get": { - "description": "watch individual changes to a list of ReplicationController", + "description": "watch individual changes to a list of ResourceQuota", "consumes": [ "*/*" ], @@ -16007,7 +15463,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedReplicationControllerList", + "operationId": "watchCoreV1NamespacedResourceQuotaList", "responses": { "200": { "description": "OK", @@ -16022,7 +15478,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ReplicationController", + "kind": "ResourceQuota", "version": "v1" } }, @@ -16100,9 +15556,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { + "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { "get": { - "description": "watch changes to an object of kind ReplicationController", + "description": "watch changes to an object of kind ResourceQuota", "consumes": [ "*/*" ], @@ -16119,7 +15575,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedReplicationController", + "operationId": "watchCoreV1NamespacedResourceQuota", "responses": { "200": { "description": "OK", @@ -16134,7 +15590,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ReplicationController", + "kind": "ResourceQuota", "version": "v1" } }, @@ -16177,7 +15633,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicationController", + "description": "name of the ResourceQuota", "name": "name", "in": "path", "required": true @@ -16220,9 +15676,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { + "/api/v1/watch/namespaces/{namespace}/secrets": { "get": { - "description": "watch individual changes to a list of ResourceQuota", + "description": "watch individual changes to a list of Secret", "consumes": [ "*/*" ], @@ -16239,7 +15695,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedResourceQuotaList", + "operationId": "watchCoreV1NamespacedSecretList", "responses": { "200": { "description": "OK", @@ -16254,7 +15710,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ResourceQuota", + "kind": "Secret", "version": "v1" } }, @@ -16332,9 +15788,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { + "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { "get": { - "description": "watch changes to an object of kind ResourceQuota", + "description": "watch changes to an object of kind Secret", "consumes": [ "*/*" ], @@ -16351,7 +15807,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedResourceQuota", + "operationId": "watchCoreV1NamespacedSecret", "responses": { "200": { "description": "OK", @@ -16366,7 +15822,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ResourceQuota", + "kind": "Secret", "version": "v1" } }, @@ -16409,7 +15865,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ResourceQuota", + "description": "name of the Secret", "name": "name", "in": "path", "required": true @@ -16452,9 +15908,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/secrets": { + "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { "get": { - "description": "watch individual changes to a list of Secret", + "description": "watch individual changes to a list of ServiceAccount", "consumes": [ "*/*" ], @@ -16471,7 +15927,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedSecretList", + "operationId": "watchCoreV1NamespacedServiceAccountList", "responses": { "200": { "description": "OK", @@ -16486,7 +15942,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Secret", + "kind": "ServiceAccount", "version": "v1" } }, @@ -16564,9 +16020,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { + "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { "get": { - "description": "watch changes to an object of kind Secret", + "description": "watch changes to an object of kind ServiceAccount", "consumes": [ "*/*" ], @@ -16583,7 +16039,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedSecret", + "operationId": "watchCoreV1NamespacedServiceAccount", "responses": { "200": { "description": "OK", @@ -16598,7 +16054,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Secret", + "kind": "ServiceAccount", "version": "v1" } }, @@ -16641,7 +16097,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Secret", + "description": "name of the ServiceAccount", "name": "name", "in": "path", "required": true @@ -16684,9 +16140,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { + "/api/v1/watch/namespaces/{namespace}/services": { "get": { - "description": "watch individual changes to a list of ServiceAccount", + "description": "watch individual changes to a list of Service", "consumes": [ "*/*" ], @@ -16703,7 +16159,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedServiceAccountList", + "operationId": "watchCoreV1NamespacedServiceList", "responses": { "200": { "description": "OK", @@ -16718,7 +16174,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ServiceAccount", + "kind": "Service", "version": "v1" } }, @@ -16796,9 +16252,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { + "/api/v1/watch/namespaces/{namespace}/services/{name}": { "get": { - "description": "watch changes to an object of kind ServiceAccount", + "description": "watch changes to an object of kind Service", "consumes": [ "*/*" ], @@ -16815,7 +16271,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedServiceAccount", + "operationId": "watchCoreV1NamespacedService", "responses": { "200": { "description": "OK", @@ -16830,7 +16286,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ServiceAccount", + "kind": "Service", "version": "v1" } }, @@ -16873,7 +16329,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ServiceAccount", + "description": "name of the Service", "name": "name", "in": "path", "required": true @@ -16916,9 +16372,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/services": { + "/api/v1/watch/namespaces/{name}": { "get": { - "description": "watch individual changes to a list of Service", + "description": "watch changes to an object of kind Namespace", "consumes": [ "*/*" ], @@ -16935,7 +16391,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedServiceList", + "operationId": "watchCoreV1Namespace", "responses": { "200": { "description": "OK", @@ -16947,10 +16403,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Service", + "kind": "Namespace", "version": "v1" } }, @@ -16993,8 +16449,8 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "name of the Namespace", + "name": "name", "in": "path", "required": true }, @@ -17028,9 +16484,9 @@ } ] }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { + "/api/v1/watch/nodes": { "get": { - "description": "watch changes to an object of kind Service", + "description": "watch individual changes to a list of Node", "consumes": [ "*/*" ], @@ -17047,7 +16503,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NamespacedService", + "operationId": "watchCoreV1NodeList", "responses": { "200": { "description": "OK", @@ -17059,10 +16515,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Service", + "kind": "Node", "version": "v1" } }, @@ -17105,16 +16561,112 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/api/v1/watch/nodes/{name}": { + "get": { + "description": "watch changes to an object of kind Node", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "operationId": "watchCoreV1Node", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Node", + "name": "name", "in": "path", "required": true }, @@ -17148,9 +16700,9 @@ } ] }, - "/api/v1/watch/namespaces/{name}": { + "/api/v1/watch/persistentvolumeclaims": { "get": { - "description": "watch changes to an object of kind Namespace", + "description": "watch individual changes to a list of PersistentVolumeClaim", "consumes": [ "*/*" ], @@ -17167,7 +16719,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1Namespace", + "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -17179,10 +16731,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Namespace", + "kind": "PersistentVolumeClaim", "version": "v1" } }, @@ -17222,14 +16774,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -17260,9 +16804,9 @@ } ] }, - "/api/v1/watch/nodes": { + "/api/v1/watch/persistentvolumes": { "get": { - "description": "watch individual changes to a list of Node", + "description": "watch individual changes to a list of PersistentVolume", "consumes": [ "*/*" ], @@ -17279,7 +16823,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1NodeList", + "operationId": "watchCoreV1PersistentVolumeList", "responses": { "200": { "description": "OK", @@ -17294,7 +16838,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Node", + "kind": "PersistentVolume", "version": "v1" } }, @@ -17364,9 +16908,9 @@ } ] }, - "/api/v1/watch/nodes/{name}": { + "/api/v1/watch/persistentvolumes/{name}": { "get": { - "description": "watch changes to an object of kind Node", + "description": "watch changes to an object of kind PersistentVolume", "consumes": [ "*/*" ], @@ -17383,7 +16927,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1Node", + "operationId": "watchCoreV1PersistentVolume", "responses": { "200": { "description": "OK", @@ -17398,7 +16942,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Node", + "kind": "PersistentVolume", "version": "v1" } }, @@ -17441,7 +16985,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Node", + "description": "name of the PersistentVolume", "name": "name", "in": "path", "required": true @@ -17476,9 +17020,9 @@ } ] }, - "/api/v1/watch/persistentvolumeclaims": { + "/api/v1/watch/pods": { "get": { - "description": "watch individual changes to a list of PersistentVolumeClaim", + "description": "watch individual changes to a list of Pod", "consumes": [ "*/*" ], @@ -17495,7 +17039,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", + "operationId": "watchCoreV1PodListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -17510,7 +17054,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PersistentVolumeClaim", + "kind": "Pod", "version": "v1" } }, @@ -17580,9 +17124,9 @@ } ] }, - "/api/v1/watch/persistentvolumes": { + "/api/v1/watch/podtemplates": { "get": { - "description": "watch individual changes to a list of PersistentVolume", + "description": "watch individual changes to a list of PodTemplate", "consumes": [ "*/*" ], @@ -17599,7 +17143,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1PersistentVolumeList", + "operationId": "watchCoreV1PodTemplateListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -17614,7 +17158,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PersistentVolume", + "kind": "PodTemplate", "version": "v1" } }, @@ -17684,121 +17228,9 @@ } ] }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "description": "watch changes to an object of kind PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PersistentVolume", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolume", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/pods": { + "/api/v1/watch/replicationcontrollers": { "get": { - "description": "watch individual changes to a list of Pod", + "description": "watch individual changes to a list of ReplicationController", "consumes": [ "*/*" ], @@ -17815,7 +17247,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1PodListForAllNamespaces", + "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -17830,7 +17262,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Pod", + "kind": "ReplicationController", "version": "v1" } }, @@ -17900,9 +17332,9 @@ } ] }, - "/api/v1/watch/podtemplates": { + "/api/v1/watch/resourcequotas": { "get": { - "description": "watch individual changes to a list of PodTemplate", + "description": "watch individual changes to a list of ResourceQuota", "consumes": [ "*/*" ], @@ -17919,7 +17351,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", + "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -17934,7 +17366,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "PodTemplate", + "kind": "ResourceQuota", "version": "v1" } }, @@ -18004,9 +17436,9 @@ } ] }, - "/api/v1/watch/replicationcontrollers": { + "/api/v1/watch/secrets": { "get": { - "description": "watch individual changes to a list of ReplicationController", + "description": "watch individual changes to a list of Secret", "consumes": [ "*/*" ], @@ -18023,7 +17455,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", + "operationId": "watchCoreV1SecretListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18038,7 +17470,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ReplicationController", + "kind": "Secret", "version": "v1" } }, @@ -18108,9 +17540,9 @@ } ] }, - "/api/v1/watch/resourcequotas": { + "/api/v1/watch/securitycontextconstraints": { "get": { - "description": "watch individual changes to a list of ResourceQuota", + "description": "watch individual changes to a list of SecurityContextConstraints", "consumes": [ "*/*" ], @@ -18127,7 +17559,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", + "operationId": "watchCoreV1SecurityContextConstraintsList", "responses": { "200": { "description": "OK", @@ -18142,7 +17574,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ResourceQuota", + "kind": "SecurityContextConstraints", "version": "v1" } }, @@ -18212,9 +17644,9 @@ } ] }, - "/api/v1/watch/secrets": { + "/api/v1/watch/securitycontextconstraints/{name}": { "get": { - "description": "watch individual changes to a list of Secret", + "description": "watch changes to an object of kind SecurityContextConstraints", "consumes": [ "*/*" ], @@ -18231,7 +17663,7 @@ "tags": [ "core_v1" ], - "operationId": "watchCoreV1SecretListForAllNamespaces", + "operationId": "watchCoreV1SecurityContextConstraints", "responses": { "200": { "description": "OK", @@ -18243,10 +17675,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Secret", + "kind": "SecurityContextConstraints", "version": "v1" } }, @@ -18289,218 +17721,10 @@ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/securitycontextconstraints": { - "get": { - "description": "watch individual changes to a list of SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1SecurityContextConstraintsList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SecurityContextConstraints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/securitycontextconstraints/{name}": { - "get": { - "description": "watch changes to an object of kind SecurityContextConstraints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1SecurityContextConstraints", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SecurityContextConstraints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the SecurityContextConstraints", - "name": "name", - "in": "path", - "required": true + "description": "name of the SecurityContextConstraints", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -22152,64 +21376,6 @@ "appsOpenshiftIo_v1" ], "operationId": "listAppsOpenshiftIoV1DeploymentConfigForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -22228,70 +21394,69 @@ "version": "v1" } }, - "post": { - "description": "create a DeploymentConfig", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "appsOpenshiftIo_v1" - ], - "operationId": "createAppsOpenshiftIoV1DeploymentConfigForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps.openshift.io", - "kind": "DeploymentConfig", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -23836,64 +23001,6 @@ "apps_v1" ], "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -23912,70 +23019,69 @@ "version": "v1" } }, - "post": { - "description": "create a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1ControllerRevisionForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -23999,64 +23105,6 @@ "apps_v1" ], "operationId": "listAppsV1DaemonSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -24075,70 +23123,69 @@ "version": "v1" } }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1DaemonSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -24162,64 +23209,6 @@ "apps_v1" ], "operationId": "listAppsV1DeploymentForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -24238,70 +23227,69 @@ "version": "v1" } }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1DeploymentForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -27975,64 +26963,6 @@ "apps_v1" ], "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -28051,70 +26981,69 @@ "version": "v1" } }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1ReplicaSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -28138,64 +27067,6 @@ "apps_v1" ], "operationId": "listAppsV1StatefulSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -28214,70 +27085,69 @@ "version": "v1" } }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1StatefulSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -30014,64 +28884,6 @@ "apps_v1beta1" ], "operationId": "listAppsV1beta1ControllerRevisionForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -30090,70 +28902,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1ControllerRevisionForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -30177,64 +28988,6 @@ "apps_v1beta1" ], "operationId": "listAppsV1beta1DeploymentForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -30253,70 +29006,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1DeploymentForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -32582,64 +31334,6 @@ "apps_v1beta1" ], "operationId": "listAppsV1beta1StatefulSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -32658,111 +31352,6 @@ "version": "v1beta1" } }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1StatefulSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1ControllerRevisionListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, "parameters": [ { "uniqueItems": true, @@ -32829,9 +31418,9 @@ } ] }, - "/apis/apps/v1beta1/watch/deployments": { + "/apis/apps/v1beta1/watch/controllerrevisions": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], @@ -32848,7 +31437,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1DeploymentListForAllNamespaces", + "operationId": "watchAppsV1beta1ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -32863,7 +31452,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ControllerRevision", "version": "v1beta1" } }, @@ -32933,9 +31522,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1beta1/watch/deployments": { "get": { - "description": "watch individual changes to a list of ControllerRevision", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -32952,7 +31541,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedControllerRevisionList", + "operationId": "watchAppsV1beta1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -32967,7 +31556,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "Deployment", "version": "v1beta1" } }, @@ -33007,14 +31596,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -33045,9 +31626,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions": { "get": { - "description": "watch changes to an object of kind ControllerRevision", + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], @@ -33064,7 +31645,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedControllerRevision", + "operationId": "watchAppsV1beta1NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", @@ -33076,7 +31657,7 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", @@ -33119,14 +31700,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -33165,9 +31738,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "watch changes to an object of kind ControllerRevision", "consumes": [ "*/*" ], @@ -33184,7 +31757,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedDeploymentList", + "operationId": "watchAppsV1beta1NamespacedControllerRevision", "responses": { "200": { "description": "OK", @@ -33196,10 +31769,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ControllerRevision", "version": "v1beta1" } }, @@ -33239,6 +31812,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -33277,9 +31858,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments": { "get": { - "description": "watch changes to an object of kind Deployment", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -33296,7 +31877,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedDeployment", + "operationId": "watchAppsV1beta1NamespacedDeploymentList", "responses": { "200": { "description": "OK", @@ -33308,7 +31889,7 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", @@ -33351,14 +31932,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -33397,9 +31970,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "watch individual changes to a list of StatefulSet", + "description": "watch changes to an object of kind Deployment", "consumes": [ "*/*" ], @@ -33416,7 +31989,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedStatefulSetList", + "operationId": "watchAppsV1beta1NamespacedDeployment", "responses": { "200": { "description": "OK", @@ -33428,10 +32001,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "Deployment", "version": "v1beta1" } }, @@ -33471,6 +32044,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -33509,9 +32090,9 @@ } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets": { "get": { - "description": "watch changes to an object of kind StatefulSet", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], @@ -33528,7 +32109,7 @@ "tags": [ "apps_v1beta1" ], - "operationId": "watchAppsV1beta1NamespacedStatefulSet", + "operationId": "watchAppsV1beta1NamespacedStatefulSetList", "responses": { "200": { "description": "OK", @@ -33540,7 +32121,119 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}": { + "get": { + "description": "watch changes to an object of kind StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "watchAppsV1beta1NamespacedStatefulSet", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", @@ -33786,64 +32479,6 @@ "apps_v1beta2" ], "operationId": "listAppsV1beta2ControllerRevisionForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -33862,15 +32497,84 @@ "version": "v1beta2" } }, - "post": { - "description": "create a ControllerRevision", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/daemonsets": { + "get": { + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -33878,60 +32582,198 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2ControllerRevisionForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, + "operationId": "listAppsV1beta2DaemonSetForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" } + }, + "401": { + "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/deployments": { + "get": { + "description": "list or watch objects of kind Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "listAppsV1beta2DeploymentForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "Deployment", "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/daemonsets": { + "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "list or watch objects of kind ControllerRevision", "consumes": [ "*/*" ], @@ -33948,7 +32790,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2DaemonSetForAllNamespaces", + "operationId": "listAppsV1beta2NamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -34011,7 +32853,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" } }, "401": { @@ -34021,12 +32863,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, "post": { - "description": "create a DaemonSet", + "description": "create a ControllerRevision", "consumes": [ "*/*" ], @@ -34041,14 +32883,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2DaemonSetForAllNamespaces", + "operationId": "createAppsV1beta2NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } } ], @@ -34056,19 +32898,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "401": { @@ -34078,32 +32920,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", + "delete": { + "description": "delete collection of ControllerRevision", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -34111,7 +32940,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2DeploymentForAllNamespaces", + "operationId": "deleteAppsV1beta2CollectionNamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -34174,22 +33003,41 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ControllerRevision", "version": "v1beta2" } }, - "post": { - "description": "create a Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}": { + "get": { + "description": "read the specified ControllerRevision", "consumes": [ "*/*" ], @@ -34204,48 +33052,222 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2DeploymentForAllNamespaces", + "operationId": "readAppsV1beta2NamespacedControllerRevision", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" + } + }, + "put": { + "description": "replace the specified ControllerRevision", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedControllerRevision", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" + } + }, + "delete": { + "description": "delete a ControllerRevision", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "deleteAppsV1beta2NamespacedControllerRevision", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ControllerRevision", + "version": "v1beta2" + } + }, + "patch": { + "description": "partially update the specified ControllerRevision", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedControllerRevision", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -34255,9 +33277,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets": { "get": { - "description": "list or watch objects of kind ControllerRevision", + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], @@ -34274,7 +33296,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2NamespacedControllerRevision", + "operationId": "listAppsV1beta2NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -34337,7 +33359,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" } }, "401": { @@ -34347,12 +33369,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, "post": { - "description": "create a ControllerRevision", + "description": "create a DaemonSet", "consumes": [ "*/*" ], @@ -34367,14 +33389,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2NamespacedControllerRevision", + "operationId": "createAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } } ], @@ -34382,19 +33404,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { @@ -34404,12 +33426,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, "delete": { - "description": "delete collection of ControllerRevision", + "description": "delete collection of DaemonSet", "consumes": [ "*/*" ], @@ -34424,7 +33446,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedControllerRevision", + "operationId": "deleteAppsV1beta2CollectionNamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -34497,7 +33519,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, @@ -34519,9 +33541,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}": { "get": { - "description": "read the specified ControllerRevision", + "description": "read the specified DaemonSet", "consumes": [ "*/*" ], @@ -34536,7 +33558,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedControllerRevision", + "operationId": "readAppsV1beta2NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -34557,7 +33579,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { @@ -34567,12 +33589,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, "put": { - "description": "replace the specified ControllerRevision", + "description": "replace the specified DaemonSet", "consumes": [ "*/*" ], @@ -34587,14 +33609,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedControllerRevision", + "operationId": "replaceAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } } ], @@ -34602,13 +33624,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { @@ -34618,12 +33640,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, "delete": { - "description": "delete a ControllerRevision", + "description": "delete a DaemonSet", "consumes": [ "*/*" ], @@ -34638,7 +33660,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2NamespacedControllerRevision", + "operationId": "deleteAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -34684,12 +33706,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, "patch": { - "description": "partially update the specified ControllerRevision", + "description": "partially update the specified DaemonSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -34706,7 +33728,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedControllerRevision", + "operationId": "patchAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -34721,7 +33743,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { @@ -34731,7 +33753,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "DaemonSet", "version": "v1beta2" } }, @@ -34739,7 +33761,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ControllerRevision", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -34761,9 +33783,169 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets": { + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "read status of the specified DaemonSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "readAppsV1beta2NamespacedDaemonSetStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" + } + }, + "put": { + "description": "replace status of the specified DaemonSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedDaemonSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" + } + }, + "patch": { + "description": "partially update status of the specified DaemonSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedDaemonSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the DaemonSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/namespaces/{namespace}/deployments": { + "get": { + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], @@ -34780,7 +33962,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2NamespacedDaemonSet", + "operationId": "listAppsV1beta2NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -34843,7 +34025,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" } }, "401": { @@ -34853,12 +34035,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, "post": { - "description": "create a DaemonSet", + "description": "create a Deployment", "consumes": [ "*/*" ], @@ -34873,14 +34055,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2NamespacedDaemonSet", + "operationId": "createAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } } ], @@ -34888,19 +34070,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -34910,12 +34092,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, "delete": { - "description": "delete collection of DaemonSet", + "description": "delete collection of Deployment", "consumes": [ "*/*" ], @@ -34930,7 +34112,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDaemonSet", + "operationId": "deleteAppsV1beta2CollectionNamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -35003,7 +34185,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, @@ -35025,9 +34207,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "read the specified DaemonSet", + "description": "read the specified Deployment", "consumes": [ "*/*" ], @@ -35042,7 +34224,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedDaemonSet", + "operationId": "readAppsV1beta2NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -35063,7 +34245,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -35073,12 +34255,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, "put": { - "description": "replace the specified DaemonSet", + "description": "replace the specified Deployment", "consumes": [ "*/*" ], @@ -35093,14 +34275,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSet", + "operationId": "replaceAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } } ], @@ -35108,13 +34290,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -35124,12 +34306,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, "delete": { - "description": "delete a DaemonSet", + "description": "delete a Deployment", "consumes": [ "*/*" ], @@ -35144,7 +34326,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2NamespacedDaemonSet", + "operationId": "deleteAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", @@ -35190,12 +34372,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, "patch": { - "description": "partially update the specified DaemonSet", + "description": "partially update the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -35212,7 +34394,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedDaemonSet", + "operationId": "patchAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", @@ -35227,7 +34409,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -35237,7 +34419,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Deployment", "version": "v1beta2" } }, @@ -35245,7 +34427,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -35267,9 +34449,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { "get": { - "description": "read status of the specified DaemonSet", + "description": "read scale of the specified Deployment", "consumes": [ "*/*" ], @@ -35284,12 +34466,12 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedDaemonSetStatus", + "operationId": "readAppsV1beta2NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35299,12 +34481,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Scale", "version": "v1beta2" } }, "put": { - "description": "replace status of the specified DaemonSet", + "description": "replace scale of the specified Deployment", "consumes": [ "*/*" ], @@ -35319,14 +34501,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSetStatus", + "operationId": "replaceAppsV1beta2NamespacedDeploymentScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } } ], @@ -35334,13 +34516,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35350,12 +34532,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Scale", "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified DaemonSet", + "description": "partially update scale of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -35372,7 +34554,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedDaemonSetStatus", + "operationId": "patchAppsV1beta2NamespacedDeploymentScale", "parameters": [ { "name": "body", @@ -35387,7 +34569,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35397,7 +34579,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "Scale", "version": "v1beta2" } }, @@ -35405,7 +34587,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -35427,9 +34609,169 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status": { "get": { - "description": "list or watch objects of kind Deployment", + "description": "read status of the specified Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "readAppsV1beta2NamespacedDeploymentStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" + } + }, + "put": { + "description": "replace status of the specified Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" + } + }, + "patch": { + "description": "partially update status of the specified Deployment", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets": { + "get": { + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -35446,7 +34788,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2NamespacedDeployment", + "operationId": "listAppsV1beta2NamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -35509,7 +34851,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" } }, "401": { @@ -35519,12 +34861,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "post": { - "description": "create a Deployment", + "description": "create a ReplicaSet", "consumes": [ "*/*" ], @@ -35539,14 +34881,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2NamespacedDeployment", + "operationId": "createAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } } ], @@ -35554,19 +34896,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35576,12 +34918,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "delete": { - "description": "delete collection of Deployment", + "description": "delete collection of ReplicaSet", "consumes": [ "*/*" ], @@ -35596,7 +34938,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDeployment", + "operationId": "deleteAppsV1beta2CollectionNamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -35669,7 +35011,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, @@ -35691,9 +35033,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}": { "get": { - "description": "read the specified Deployment", + "description": "read the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35708,7 +35050,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedDeployment", + "operationId": "readAppsV1beta2NamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -35729,7 +35071,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35739,12 +35081,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "put": { - "description": "replace the specified Deployment", + "description": "replace the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35759,14 +35101,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedDeployment", + "operationId": "replaceAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } } ], @@ -35774,13 +35116,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35790,12 +35132,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "delete": { - "description": "delete a Deployment", + "description": "delete a ReplicaSet", "consumes": [ "*/*" ], @@ -35810,7 +35152,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2NamespacedDeployment", + "operationId": "deleteAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -35856,12 +35198,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "patch": { - "description": "partially update the specified Deployment", + "description": "partially update the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -35878,7 +35220,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedDeployment", + "operationId": "patchAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -35893,7 +35235,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35903,7 +35245,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, @@ -35911,7 +35253,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -35933,9 +35275,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale": { "get": { - "description": "read scale of the specified Deployment", + "description": "read scale of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35950,7 +35292,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedDeploymentScale", + "operationId": "readAppsV1beta2NamespacedReplicaSetScale", "responses": { "200": { "description": "OK", @@ -35970,7 +35312,7 @@ } }, "put": { - "description": "replace scale of the specified Deployment", + "description": "replace scale of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35985,7 +35327,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentScale", + "operationId": "replaceAppsV1beta2NamespacedReplicaSetScale", "parameters": [ { "name": "body", @@ -36021,7 +35363,7 @@ } }, "patch": { - "description": "partially update scale of the specified Deployment", + "description": "partially update scale of the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36038,7 +35380,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedDeploymentScale", + "operationId": "patchAppsV1beta2NamespacedReplicaSetScale", "parameters": [ { "name": "body", @@ -36093,9 +35435,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status": { "get": { - "description": "read status of the specified Deployment", + "description": "read status of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -36110,12 +35452,12 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedDeploymentStatus", + "operationId": "readAppsV1beta2NamespacedReplicaSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -36125,12 +35467,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "put": { - "description": "replace status of the specified Deployment", + "description": "replace status of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -36145,14 +35487,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentStatus", + "operationId": "replaceAppsV1beta2NamespacedReplicaSetStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } } ], @@ -36160,13 +35502,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -36176,12 +35518,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified Deployment", + "description": "partially update status of the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36198,7 +35540,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedDeploymentStatus", + "operationId": "patchAppsV1beta2NamespacedReplicaSetStatus", "parameters": [ { "name": "body", @@ -36213,7 +35555,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -36223,7 +35565,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "ReplicaSet", "version": "v1beta2" } }, @@ -36231,7 +35573,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -36253,9 +35595,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], @@ -36272,7 +35614,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2NamespacedReplicaSet", + "operationId": "listAppsV1beta2NamespacedStatefulSet", "parameters": [ { "uniqueItems": true, @@ -36335,7 +35677,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" } }, "401": { @@ -36345,12 +35687,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "post": { - "description": "create a ReplicaSet", + "description": "create a StatefulSet", "consumes": [ "*/*" ], @@ -36365,14 +35707,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2NamespacedReplicaSet", + "operationId": "createAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } } ], @@ -36380,19 +35722,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36402,12 +35744,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "delete": { - "description": "delete collection of ReplicaSet", + "description": "delete collection of StatefulSet", "consumes": [ "*/*" ], @@ -36422,7 +35764,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedReplicaSet", + "operationId": "deleteAppsV1beta2CollectionNamespacedStatefulSet", "parameters": [ { "uniqueItems": true, @@ -36495,7 +35837,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -36517,9 +35859,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "read the specified ReplicaSet", + "description": "read the specified StatefulSet", "consumes": [ "*/*" ], @@ -36534,7 +35876,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedReplicaSet", + "operationId": "readAppsV1beta2NamespacedStatefulSet", "parameters": [ { "uniqueItems": true, @@ -36555,7 +35897,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36565,12 +35907,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "put": { - "description": "replace the specified ReplicaSet", + "description": "replace the specified StatefulSet", "consumes": [ "*/*" ], @@ -36585,14 +35927,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSet", + "operationId": "replaceAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } } ], @@ -36600,13 +35942,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36616,12 +35958,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "delete": { - "description": "delete a ReplicaSet", + "description": "delete a StatefulSet", "consumes": [ "*/*" ], @@ -36636,7 +35978,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2NamespacedReplicaSet", + "operationId": "deleteAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", @@ -36682,12 +36024,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "patch": { - "description": "partially update the specified ReplicaSet", + "description": "partially update the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36704,7 +36046,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedReplicaSet", + "operationId": "patchAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", @@ -36719,7 +36061,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36729,7 +36071,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -36737,7 +36079,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicaSet", + "description": "name of the StatefulSet", "name": "name", "in": "path", "required": true @@ -36759,9 +36101,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { "get": { - "description": "read scale of the specified ReplicaSet", + "description": "read scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36776,7 +36118,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedReplicaSetScale", + "operationId": "readAppsV1beta2NamespacedStatefulSetScale", "responses": { "200": { "description": "OK", @@ -36796,7 +36138,7 @@ } }, "put": { - "description": "replace scale of the specified ReplicaSet", + "description": "replace scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36811,7 +36153,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetScale", + "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", "parameters": [ { "name": "body", @@ -36847,7 +36189,7 @@ } }, "patch": { - "description": "partially update scale of the specified ReplicaSet", + "description": "partially update scale of the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36864,7 +36206,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetScale", + "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", "parameters": [ { "name": "body", @@ -36919,9 +36261,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { "get": { - "description": "read status of the specified ReplicaSet", + "description": "read status of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36936,12 +36278,12 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedReplicaSetStatus", + "operationId": "readAppsV1beta2NamespacedStatefulSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36951,12 +36293,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "put": { - "description": "replace status of the specified ReplicaSet", + "description": "replace status of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36971,14 +36313,14 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetStatus", + "operationId": "replaceAppsV1beta2NamespacedStatefulSetStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } } ], @@ -36986,13 +36328,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -37002,12 +36344,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified ReplicaSet", + "description": "partially update status of the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -37024,7 +36366,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetStatus", + "operationId": "patchAppsV1beta2NamespacedStatefulSetStatus", "parameters": [ { "name": "body", @@ -37039,7 +36381,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -37049,7 +36391,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -37057,7 +36399,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicaSet", + "description": "name of the StatefulSet", "name": "name", "in": "path", "required": true @@ -37079,9 +36421,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets": { + "/apis/apps/v1beta2/replicasets": { "get": { - "description": "list or watch objects of kind StatefulSet", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -37098,70 +36440,12 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "listAppsV1beta2ReplicaSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" } }, "401": { @@ -37171,19 +36455,88 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "ReplicaSet", "version": "v1beta2" } }, - "post": { - "description": "create a StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/statefulsets": { + "get": { + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37191,56 +36544,103 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], + "operationId": "listAppsV1beta2StatefulSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1beta2" } }, - "delete": { - "description": "delete collection of StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/controllerrevisions": { + "get": { + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37248,80 +36648,22 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "watchAppsV1beta2ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, @@ -37329,10 +36671,37 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -37340,19 +36709,42 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}": { + "/apis/apps/v1beta2/watch/daemonsets": { "get": { - "description": "read the specified StatefulSet", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37360,50 +36752,103 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], + "operationId": "watchAppsV1beta2DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "DaemonSet", "version": "v1beta2" } }, - "put": { - "description": "replace the specified StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/deployments": { + "get": { + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37411,50 +36856,103 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], + "operationId": "watchAppsV1beta2DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "Deployment", "version": "v1beta2" } }, - "delete": { - "description": "delete a StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions": { + "get": { + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37462,67 +36960,111 @@ "tags": [ "apps_v1beta2" ], - "operationId": "deleteAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], + "operationId": "watchAppsV1beta2NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, - "patch": { - "description": "partially update the specified StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "get": { + "description": "watch changes to an object of kind ControllerRevision", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37530,32 +37072,22 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], + "operationId": "watchAppsV1beta2NamespacedControllerRevision", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, @@ -37563,7 +37095,42 @@ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", "name": "name", "in": "path", "required": true @@ -37582,19 +37149,42 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets": { "get": { - "description": "read scale of the specified StatefulSet", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37602,34 +37192,111 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedStatefulSetScale", + "operationId": "watchAppsV1beta2NamespacedDaemonSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", + "kind": "DaemonSet", "version": "v1beta2" } }, - "put": { - "description": "replace scale of the specified StatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}": { + "get": { + "description": "watch changes to an object of kind DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37637,85 +37304,22 @@ "tags": [ "apps_v1beta2" ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - } - ], + "operationId": "watchAppsV1beta2NamespacedDaemonSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update scale of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", + "kind": "DaemonSet", "version": "v1beta2" } }, @@ -37723,7 +37327,42 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Scale", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -37742,19 +37381,42 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments": { "get": { - "description": "read status of the specified StatefulSet", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37762,87 +37424,111 @@ "tags": [ "apps_v1beta2" ], - "operationId": "readAppsV1beta2NamespacedStatefulSetStatus", + "operationId": "watchAppsV1beta2NamespacedDeploymentList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "Deployment", "version": "v1beta2" } }, - "put": { - "description": "replace status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "patch": { - "description": "partially update status of the specified StatefulSet", + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}": { + "get": { + "description": "watch changes to an object of kind Deployment", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -37850,32 +37536,22 @@ "tags": [ "apps_v1beta2" ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], + "operationId": "watchAppsV1beta2NamespacedDeployment", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "Deployment", "version": "v1beta2" } }, @@ -37883,7 +37559,42 @@ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -37902,12 +37613,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/replicasets": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], @@ -37924,92 +37656,111 @@ "tags": [ "apps_v1beta2" ], - "operationId": "listAppsV1beta2ReplicaSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "watchAppsV1beta2NamespacedReplicaSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1beta2" } }, - "post": { - "description": "create a ReplicaSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}": { + "get": { + "description": "watch changes to an object of kind ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -38017,41 +37768,19 @@ "tags": [ "apps_v1beta2" ], - "operationId": "createAppsV1beta2ReplicaSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - } - ], + "operationId": "watchAppsV1beta2NamespacedReplicaSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", @@ -38062,219 +37791,8 @@ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2StatefulSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2StatefulSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2ControllerRevisionListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", "in": "query" }, { @@ -38308,106 +37826,18 @@ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2DaemonSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -38439,9 +37869,9 @@ } ] }, - "/apis/apps/v1beta2/watch/deployments": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], @@ -38458,7 +37888,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "watchAppsV1beta2DeploymentListForAllNamespaces", + "operationId": "watchAppsV1beta2NamespacedStatefulSetList", "responses": { "200": { "description": "OK", @@ -38473,7 +37903,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -38513,6 +37943,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -38543,9 +37981,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "watch individual changes to a list of ControllerRevision", + "description": "watch changes to an object of kind StatefulSet", "consumes": [ "*/*" ], @@ -38562,7 +38000,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "watchAppsV1beta2NamespacedControllerRevisionList", + "operationId": "watchAppsV1beta2NamespacedStatefulSet", "responses": { "200": { "description": "OK", @@ -38574,10 +38012,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -38617,6 +38055,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -38655,9 +38101,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1beta2/watch/replicasets": { "get": { - "description": "watch changes to an object of kind ControllerRevision", + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], @@ -38674,7 +38120,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "watchAppsV1beta2NamespacedControllerRevision", + "operationId": "watchAppsV1beta2ReplicaSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -38686,10 +38132,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", + "kind": "ReplicaSet", "version": "v1beta2" } }, @@ -38729,22 +38175,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -38775,9 +38205,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets": { + "/apis/apps/v1beta2/watch/statefulsets": { "get": { - "description": "watch individual changes to a list of DaemonSet", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], @@ -38794,7 +38224,7 @@ "tags": [ "apps_v1beta2" ], - "operationId": "watchAppsV1beta2NamespacedDaemonSetList", + "operationId": "watchAppsV1beta2StatefulSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -38809,7 +38239,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "StatefulSet", "version": "v1beta2" } }, @@ -38849,14 +38279,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -38887,1614 +38309,75 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}": { + "/apis/authentication.k8s.io/": { "get": { - "description": "watch changes to an object of kind DaemonSet", + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "authentication" ], - "operationId": "watchAppsV1beta2NamespacedDaemonSet", + "operationId": "getAuthenticationAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } - ] + } }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments": { + "/apis/authentication.k8s.io/v1/": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "authentication_v1" ], - "operationId": "watchAppsV1beta2NamespacedDeploymentList", + "operationId": "getAuthenticationV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedStatefulSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "watch changes to an object of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedStatefulSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2ReplicaSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2StatefulSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ], - "operationId": "getAuthenticationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "operationId": "getAuthenticationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "post": { - "description": "create a TokenReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "operationId": "getAuthenticationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "post": { - "description": "create a TokenReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ], - "operationId": "getAuthorizationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "getAuthorizationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authorization.k8s.io/v1/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1LocalSubjectAccessReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] + } }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { + "/apis/authentication.k8s.io/v1/tokenreviews": { "post": { - "description": "create a SubjectAccessReview", + "description": "create a TokenReview", "consumes": [ "*/*" ], @@ -40507,16 +38390,16 @@ "https" ], "tags": [ - "authorization_v1" + "authentication_v1" ], - "operationId": "createAuthorizationV1SubjectAccessReview", + "operationId": "createAuthenticationV1TokenReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } } ], @@ -40524,19 +38407,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "401": { @@ -40545,8 +38428,8 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", + "group": "authentication.k8s.io", + "kind": "TokenReview", "version": "v1" } }, @@ -40560,7 +38443,7 @@ } ] }, - "/apis/authorization.k8s.io/v1beta1/": { + "/apis/authentication.k8s.io/v1beta1/": { "get": { "description": "get available resources", "consumes": [ @@ -40577,9 +38460,9 @@ "https" ], "tags": [ - "authorization_v1beta1" + "authentication_v1beta1" ], - "operationId": "getAuthorizationV1beta1APIResources", + "operationId": "getAuthenticationV1beta1APIResources", "responses": { "200": { "description": "OK", @@ -40593,289 +38476,9 @@ } } }, - "/apis/authorization.k8s.io/v1beta1/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1LocalSubjectAccessReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { + "/apis/authentication.k8s.io/v1beta1/tokenreviews": { "post": { - "description": "create a SubjectAccessReview", + "description": "create a TokenReview", "consumes": [ "*/*" ], @@ -40888,16 +38491,16 @@ "https" ], "tags": [ - "authorization_v1beta1" + "authentication_v1beta1" ], - "operationId": "createAuthorizationV1beta1SubjectAccessReview", + "operationId": "createAuthenticationV1beta1TokenReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } } ], @@ -40905,19 +38508,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "401": { @@ -40926,8 +38529,8 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", + "group": "authentication.k8s.io", + "kind": "TokenReview", "version": "v1beta1" } }, @@ -40941,7 +38544,7 @@ } ] }, - "/apis/authorization.openshift.io/": { + "/apis/authorization.k8s.io/": { "get": { "description": "get information of a group", "consumes": [ @@ -40958,9 +38561,9 @@ "https" ], "tags": [ - "authorizationOpenshiftIo" + "authorization" ], - "operationId": "getAuthorizationOpenshiftIoAPIGroup", + "operationId": "getAuthorizationAPIGroup", "responses": { "200": { "description": "OK", @@ -40974,7 +38577,7 @@ } } }, - "/apis/authorization.openshift.io/v1/": { + "/apis/authorization.k8s.io/v1/": { "get": { "description": "get available resources", "consumes": [ @@ -40991,9 +38594,9 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1" ], - "operationId": "getAuthorizationOpenshiftIoV1APIResources", + "operationId": "getAuthorizationV1APIResources", "responses": { "200": { "description": "OK", @@ -41007,104 +38610,85 @@ } } }, - "/apis/authorization.openshift.io/v1/clusterrolebindings": { - "get": { - "description": "list objects of kind ClusterRoleBinding", + "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { + "post": { + "description": "create a LocalSubjectAccessReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorizationOpenshiftIo_v1" + "application/vnd.kubernetes.protobuf" ], - "operationId": "listAuthorizationOpenshiftIoV1ClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ], + "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", + "parameters": [ { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBindingList" + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", "version": "v1" } }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { "post": { - "description": "create a ClusterRoleBinding", + "description": "create a SelfSubjectAccessReview", "consumes": [ "*/*" ], @@ -41117,16 +38701,16 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1ClusterRoleBinding", + "operationId": "createAuthorizationV1SelfSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } } ], @@ -41134,19 +38718,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "401": { @@ -41155,8 +38739,8 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", "version": "v1" } }, @@ -41170,9 +38754,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/clusterrolebindings/{name}": { - "get": { - "description": "read the specified ClusterRoleBinding", + "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { + "post": { + "description": "create a SelfSubjectRulesReview", "consumes": [ "*/*" ], @@ -41185,29 +38769,62 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1" + ], + "operationId": "createAuthorizationV1SelfSubjectRulesReview", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + } ], - "operationId": "readAuthorizationOpenshiftIoV1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", "version": "v1" } }, - "put": { - "description": "replace the specified ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1/subjectaccessreviews": { + "post": { + "description": "create a SubjectAccessReview", "consumes": [ "*/*" ], @@ -41220,16 +38837,16 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1" ], - "operationId": "replaceAuthorizationOpenshiftIoV1ClusterRoleBinding", + "operationId": "createAuthorizationV1SubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } } ], @@ -41237,28 +38854,78 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", "version": "v1" } }, - "delete": { - "description": "delete a ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "operationId": "getAuthorizationV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { + "post": { + "description": "create a LocalSubjectAccessReview", "consumes": [ "*/*" ], @@ -41271,64 +38938,72 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1beta1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1ClusterRoleBinding", + "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1beta1" } }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { + "post": { + "description": "create a SelfSubjectAccessReview", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -41339,16 +39014,16 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1beta1" ], - "operationId": "patchAuthorizationOpenshiftIoV1ClusterRoleBinding", + "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" } } ], @@ -41356,29 +39031,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -41388,104 +39067,77 @@ } ] }, - "/apis/authorization.openshift.io/v1/clusterroles": { - "get": { - "description": "list objects of kind ClusterRole", + "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { + "post": { + "description": "create a SelfSubjectRulesReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1beta1" ], - "operationId": "listAuthorizationOpenshiftIoV1ClusterRole", + "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleList" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRole", - "version": "v1" + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1beta1" } }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { "post": { - "description": "create a ClusterRole", + "description": "create a SubjectAccessReview", "consumes": [ "*/*" ], @@ -41498,16 +39150,16 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorization_v1beta1" ], - "operationId": "createAuthorizationOpenshiftIoV1ClusterRole", + "operationId": "createAuthorizationV1beta1SubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" } } ], @@ -41515,19 +39167,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" } }, "401": { @@ -41536,9 +39188,9 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRole", - "version": "v1" + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1beta1" } }, "parameters": [ @@ -41551,11 +39203,13 @@ } ] }, - "/apis/authorization.openshift.io/v1/clusterroles/{name}": { + "/apis/authorization.openshift.io/": { "get": { - "description": "read the specified ClusterRole", + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -41566,31 +39220,29 @@ "https" ], "tags": [ - "authorizationOpenshiftIo_v1" + "authorizationOpenshiftIo" ], - "operationId": "readAuthorizationOpenshiftIoV1ClusterRole", + "operationId": "getAuthorizationOpenshiftIoAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRole", - "version": "v1" } - }, - "put": { - "description": "replace the specified ClusterRole", + } + }, + "/apis/authorization.openshift.io/v1/": { + "get": { + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -41603,50 +39255,32 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "replaceAuthorizationOpenshiftIoV1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" - } - } - ], + "operationId": "getAuthorizationOpenshiftIoV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "ClusterRole", - "version": "v1" } - }, - "delete": { - "description": "delete a ClusterRole", + } + }, + "/apis/authorization.openshift.io/v1/clusterrolebindings": { + "get": { + "description": "list objects of kind ClusterRoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -41654,35 +39288,62 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1ClusterRole", + "operationId": "listAuthorizationOpenshiftIoV1ClusterRoleBinding", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", "in": "query" } ], @@ -41690,26 +39351,24 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBindingList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "ClusterRole", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "patch": { - "description": "partially update the specified ClusterRole", + "post": { + "description": "create a ClusterRoleBinding", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -41722,14 +39381,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "patchAuthorizationOpenshiftIoV1ClusterRole", + "operationId": "createAuthorizationOpenshiftIoV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } } ], @@ -41737,29 +39396,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "ClusterRole", + "kind": "ClusterRoleBinding", "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -41769,9 +39432,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/localresourceaccessreviews": { - "post": { - "description": "create a LocalResourceAccessReview", + "/apis/authorization.openshift.io/v1/clusterrolebindings/{name}": { + "get": { + "description": "read the specified ClusterRoleBinding", "consumes": [ "*/*" ], @@ -41786,60 +39449,27 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1LocalResourceAccessReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" - } - } - ], + "operationId": "readAuthorizationOpenshiftIoV1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "LocalResourceAccessReview", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", + "put": { + "description": "replace the specified ClusterRoleBinding", "consumes": [ "*/*" ], @@ -41854,14 +39484,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1LocalSubjectAccessReviewForAllNamespaces", + "operationId": "replaceAuthorizationOpenshiftIoV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } } ], @@ -41869,45 +39499,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "LocalSubjectAccessReview", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/localresourceaccessreviews": { - "post": { - "description": "create a LocalResourceAccessReview", + "delete": { + "description": "delete a ClusterRoleBinding", "consumes": [ "*/*" ], @@ -41922,70 +39535,62 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedLocalResourceAccessReview", + "operationId": "deleteAuthorizationOpenshiftIoV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "LocalResourceAccessReview", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", + "patch": { + "description": "partially update the specified ClusterRoleBinding", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -41998,14 +39603,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedLocalSubjectAccessReview", + "operationId": "patchAuthorizationOpenshiftIoV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -42013,29 +39618,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "LocalSubjectAccessReview", + "kind": "ClusterRoleBinding", "version": "v1" } }, @@ -42043,8 +39636,8 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "name of the ClusterRoleBinding", + "name": "name", "in": "path", "required": true }, @@ -42057,9 +39650,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindingrestrictions": { + "/apis/authorization.openshift.io/v1/clusterroles": { "get": { - "description": "list or watch objects of kind RoleBindingRestriction", + "description": "list objects of kind ClusterRole", "consumes": [ "*/*" ], @@ -42076,7 +39669,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "listAuthorizationOpenshiftIoV1ClusterRole", "parameters": [ { "uniqueItems": true, @@ -42139,7 +39732,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleList" } }, "401": { @@ -42149,12 +39742,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "ClusterRole", "version": "v1" } }, "post": { - "description": "create a RoleBindingRestriction", + "description": "create a ClusterRole", "consumes": [ "*/*" ], @@ -42169,14 +39762,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "createAuthorizationOpenshiftIoV1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } } ], @@ -42184,19 +39777,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { @@ -42206,12 +39799,23 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "ClusterRole", "version": "v1" } }, - "delete": { - "description": "delete collection of RoleBindingRestriction", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/clusterroles/{name}": { + "get": { + "description": "read the specified ClusterRole", "consumes": [ "*/*" ], @@ -42226,104 +39830,78 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1CollectionNamespacedRoleBindingRestriction", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" + "operationId": "readAuthorizationOpenshiftIoV1ClusterRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "put": { + "description": "replace the specified ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "replaceAuthorizationOpenshiftIoV1ClusterRole", + "parameters": [ { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "ClusterRole", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindingrestrictions/{name}": { - "get": { - "description": "read the specified RoleBindingRestriction", + "delete": { + "description": "delete a ClusterRole", "consumes": [ "*/*" ], @@ -42338,20 +39916,35 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "readAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "deleteAuthorizationOpenshiftIoV1ClusterRole", "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, { "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -42359,24 +39952,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "ClusterRole", "version": "v1" } }, - "put": { - "description": "replace the specified RoleBindingRestriction", + "patch": { + "description": "partially update the specified ClusterRole", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -42389,14 +39984,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "patchAuthorizationOpenshiftIoV1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -42404,28 +39999,41 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "ClusterRole", "version": "v1" } - }, - "delete": { - "description": "delete a RoleBindingRestriction", + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/localresourceaccessreviews": { + "post": { + "description": "create a LocalResourceAccessReview", "consumes": [ "*/*" ], @@ -42440,62 +40048,70 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedLocalResourceAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "LocalResourceAccessReview", "version": "v1" } }, - "patch": { - "description": "partially update the specified RoleBindingRestriction", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { + "post": { + "description": "create a LocalSubjectAccessReview", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -42508,14 +40124,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedLocalSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" } } ], @@ -42523,29 +40139,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "LocalSubjectAccessReview", "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBindingRestriction", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -42563,9 +40183,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindings": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindingrestrictions": { "get": { - "description": "list objects of kind RoleBinding", + "description": "list or watch objects of kind RoleBindingRestriction", "consumes": [ "*/*" ], @@ -42582,7 +40202,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "listAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", "parameters": [ { "uniqueItems": true, @@ -42645,7 +40265,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" } }, "401": { @@ -42655,12 +40275,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", "version": "v1" } }, "post": { - "description": "create a RoleBinding", + "description": "create a RoleBindingRestriction", "consumes": [ "*/*" ], @@ -42675,14 +40295,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } } ], @@ -42690,19 +40310,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "401": { @@ -42712,7 +40332,100 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of RoleBindingRestriction", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "deleteAuthorizationOpenshiftIoV1CollectionNamespacedRoleBindingRestriction", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "RoleBindingRestriction", "version": "v1" } }, @@ -42734,9 +40447,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindings/{name}": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindingrestrictions/{name}": { "get": { - "description": "read the specified RoleBinding", + "description": "read the specified RoleBindingRestriction", "consumes": [ "*/*" ], @@ -42751,12 +40464,28 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "readAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "readAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "401": { @@ -42766,12 +40495,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", "version": "v1" } }, "put": { - "description": "replace the specified RoleBinding", + "description": "replace the specified RoleBindingRestriction", "consumes": [ "*/*" ], @@ -42786,14 +40515,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } } ], @@ -42801,13 +40530,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "401": { @@ -42817,12 +40546,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", "version": "v1" } }, "delete": { - "description": "delete a RoleBinding", + "description": "delete a RoleBindingRestriction", "consumes": [ "*/*" ], @@ -42837,7 +40566,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", "parameters": [ { "name": "body", @@ -42883,12 +40612,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", "version": "v1" } }, "patch": { - "description": "partially update the specified RoleBinding", + "description": "partially update the specified RoleBindingRestriction", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -42905,7 +40634,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRoleBindingRestriction", "parameters": [ { "name": "body", @@ -42920,7 +40649,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" } }, "401": { @@ -42930,7 +40659,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "RoleBindingRestriction", "version": "v1" } }, @@ -42938,7 +40667,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the RoleBinding", + "description": "name of the RoleBindingRestriction", "name": "name", "in": "path", "required": true @@ -42960,9 +40689,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/roles": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindings": { "get": { - "description": "list objects of kind Role", + "description": "list objects of kind RoleBinding", "consumes": [ "*/*" ], @@ -42979,7 +40708,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1NamespacedRole", + "operationId": "listAuthorizationOpenshiftIoV1NamespacedRoleBinding", "parameters": [ { "uniqueItems": true, @@ -43042,7 +40771,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" } }, "401": { @@ -43052,12 +40781,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "Role", + "kind": "RoleBinding", "version": "v1" } }, "post": { - "description": "create a Role", + "description": "create a RoleBinding", "consumes": [ "*/*" ], @@ -43072,14 +40801,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedRole", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } } ], @@ -43087,19 +40816,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "401": { @@ -43109,7 +40838,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "Role", + "kind": "RoleBinding", "version": "v1" } }, @@ -43131,95 +40860,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/roles/{name}": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindings/{name}": { "get": { - "description": "read the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorizationOpenshiftIo_v1" - ], - "operationId": "readAuthorizationOpenshiftIoV1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorizationOpenshiftIo_v1" - ], - "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "Role", - "version": "v1" - } - }, - "delete": { - "description": "delete a Role", + "description": "read the specified RoleBinding", "consumes": [ "*/*" ], @@ -43234,132 +40877,27 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "Role", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Role", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorizationOpenshiftIo_v1" - ], - "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "authorization.openshift.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "operationId": "readAuthorizationOpenshiftIoV1NamespacedRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "RoleBinding", + "version": "v1" } - ] - }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", + }, + "put": { + "description": "replace the specified RoleBinding", "consumes": [ "*/*" ], @@ -43374,14 +40912,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedSelfSubjectRulesReview", + "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } } ], @@ -43389,53 +40927,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "SelfSubjectRulesReview", + "kind": "RoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/subjectrulesreviews": { - "post": { - "description": "create a SubjectRulesReview", + "delete": { + "description": "delete a RoleBinding", "consumes": [ "*/*" ], @@ -43450,70 +40963,62 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1NamespacedSubjectRulesReview", + "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "SubjectRulesReview", + "kind": "RoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.openshift.io/v1/resourceaccessreviews": { - "post": { - "description": "create a ResourceAccessReview", + "patch": { + "description": "partially update the specified RoleBinding", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -43526,14 +41031,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1ResourceAccessReview", + "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -43541,33 +41046,37 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "ResourceAccessReview", + "kind": "RoleBinding", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -43577,9 +41086,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/rolebindingrestrictions": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/roles": { "get": { - "description": "list or watch objects of kind RoleBindingRestriction", + "description": "list objects of kind Role", "consumes": [ "*/*" ], @@ -43596,7 +41105,7 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1RoleBindingRestrictionForAllNamespaces", + "operationId": "listAuthorizationOpenshiftIoV1NamespacedRole", "parameters": [ { "uniqueItems": true, @@ -43659,7 +41168,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" } }, "401": { @@ -43669,12 +41178,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "Role", "version": "v1" } }, "post": { - "description": "create a RoleBindingRestriction", + "description": "create a Role", "consumes": [ "*/*" ], @@ -43689,14 +41198,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1RoleBindingRestrictionForAllNamespaces", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" } } ], @@ -43704,19 +41213,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" } }, "401": { @@ -43726,11 +41235,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBindingRestriction", + "kind": "Role", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -43740,18 +41257,16 @@ } ] }, - "/apis/authorization.openshift.io/v1/rolebindings": { + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/roles/{name}": { "get": { - "description": "list objects of kind RoleBinding", + "description": "read the specified Role", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -43759,62 +41274,121 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1RoleBindingForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "operationId": "readAuthorizationOpenshiftIoV1NamespacedRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "Role", + "version": "v1" + } + }, + "put": { + "description": "replace the specified Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "replaceAuthorizationOpenshiftIoV1NamespacedRole", + "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "Role", + "version": "v1" + } + }, + "delete": { + "description": "delete a Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "deleteAuthorizationOpenshiftIoV1NamespacedRole", + "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } }, { "uniqueItems": true, "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -43822,24 +41396,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "Role", "version": "v1" } }, - "post": { - "description": "create a RoleBinding", + "patch": { + "description": "partially update the specified Role", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -43852,14 +41428,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1RoleBindingForAllNamespaces", + "operationId": "patchAuthorizationOpenshiftIoV1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -43867,33 +41443,37 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "RoleBinding", + "kind": "Role", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -43903,18 +41483,16 @@ } ] }, - "/apis/authorization.openshift.io/v1/roles": { - "get": { - "description": "list objects of kind Role", + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/selfsubjectrulesreviews": { + "post": { + "description": "create a SelfSubjectRulesReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -43922,85 +41500,68 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "listAuthorizationOpenshiftIoV1RoleForAllNamespaces", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedSelfSubjectRulesReview", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "Role", + "kind": "SelfSubjectRulesReview", "version": "v1" } }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/namespaces/{namespace}/subjectrulesreviews": { "post": { - "description": "create a Role", + "description": "create a SubjectRulesReview", "consumes": [ "*/*" ], @@ -44015,14 +41576,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1RoleForAllNamespaces", + "operationId": "createAuthorizationOpenshiftIoV1NamespacedSubjectRulesReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } } ], @@ -44030,19 +41591,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, "401": { @@ -44052,11 +41613,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "Role", + "kind": "SubjectRulesReview", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -44066,9 +41635,9 @@ } ] }, - "/apis/authorization.openshift.io/v1/selfsubjectrulesreviews": { + "/apis/authorization.openshift.io/v1/resourceaccessreviews": { "post": { - "description": "create a SelfSubjectRulesReview", + "description": "create a ResourceAccessReview", "consumes": [ "*/*" ], @@ -44083,14 +41652,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1SelfSubjectRulesReviewForAllNamespaces", + "operationId": "createAuthorizationOpenshiftIoV1ResourceAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } } ], @@ -44098,19 +41667,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "401": { @@ -44120,7 +41689,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "SelfSubjectRulesReview", + "kind": "ResourceAccessReview", "version": "v1" } }, @@ -44134,16 +41703,18 @@ } ] }, - "/apis/authorization.openshift.io/v1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", + "/apis/authorization.openshift.io/v1/rolebindingrestrictions": { + "get": { + "description": "list or watch objects of kind RoleBindingRestriction", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -44151,60 +41722,302 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1SubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, + "operationId": "listAuthorizationOpenshiftIoV1RoleBindingRestrictionForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" } + }, + "401": { + "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "RoleBindingRestriction", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/rolebindings": { + "get": { + "description": "list objects of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "listAuthorizationOpenshiftIoV1RoleBindingForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "authorization.openshift.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/authorization.openshift.io/v1/roles": { + "get": { + "description": "list objects of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorizationOpenshiftIo_v1" + ], + "operationId": "listAuthorizationOpenshiftIoV1RoleForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "SubjectAccessReview", + "kind": "Role", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/authorization.openshift.io/v1/subjectrulesreviews": { + "/apis/authorization.openshift.io/v1/subjectaccessreviews": { "post": { - "description": "create a SubjectRulesReview", + "description": "create a SubjectAccessReview", "consumes": [ "*/*" ], @@ -44219,14 +42032,14 @@ "tags": [ "authorizationOpenshiftIo_v1" ], - "operationId": "createAuthorizationOpenshiftIoV1SubjectRulesReviewForAllNamespaces", + "operationId": "createAuthorizationOpenshiftIoV1SubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } } ], @@ -44234,19 +42047,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "401": { @@ -44256,7 +42069,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.openshift.io", - "kind": "SubjectRulesReview", + "kind": "SubjectAccessReview", "version": "v1" } }, @@ -44692,64 +42505,6 @@ "autoscaling_v1" ], "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -44768,70 +42523,69 @@ "version": "v1" } }, - "post": { - "description": "create a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "createAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -45890,64 +43644,6 @@ "autoscaling_v2beta1" ], "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -45966,70 +43662,69 @@ "version": "v2beta1" } }, - "post": { - "description": "create a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "createAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -47121,64 +44816,6 @@ "batch_v1" ], "operationId": "listBatchV1JobForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -47197,70 +44834,69 @@ "version": "v1" } }, - "post": { - "description": "create a Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "createBatchV1JobForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -48319,64 +45955,6 @@ "batch_v1beta1" ], "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -48395,70 +45973,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "createBatchV1beta1CronJobForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -49550,64 +47127,6 @@ "buildOpenshiftIo_v1" ], "operationId": "listBuildOpenshiftIoV1BuildConfigForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -49626,70 +47145,69 @@ "version": "v1" } }, - "post": { - "description": "create a BuildConfig", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "buildOpenshiftIo_v1" - ], - "operationId": "createBuildOpenshiftIoV1BuildConfigForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "build.openshift.io", - "kind": "BuildConfig", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -49713,64 +47231,6 @@ "buildOpenshiftIo_v1" ], "operationId": "listBuildOpenshiftIoV1BuildForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -49789,70 +47249,69 @@ "version": "v1" } }, - "post": { - "description": "create a Build", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "buildOpenshiftIo_v1" - ], - "operationId": "createBuildOpenshiftIoV1BuildForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "build.openshift.io", - "kind": "Build", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -53221,64 +50680,6 @@ "events_v1beta1" ], "operationId": "listEventsV1beta1EventForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -53297,70 +50698,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "createEventsV1beta1EventForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -54292,64 +51692,6 @@ "extensions_v1beta1" ], "operationId": "listExtensionsV1beta1DaemonSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -54368,70 +51710,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1DaemonSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -54455,64 +51796,6 @@ "extensions_v1beta1" ], "operationId": "listExtensionsV1beta1DeploymentForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -54531,70 +51814,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1DeploymentForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -54618,64 +51900,6 @@ "extensions_v1beta1" ], "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -54694,70 +51918,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1IngressForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -58515,64 +55738,6 @@ "extensions_v1beta1" ], "operationId": "listExtensionsV1beta1NetworkPolicyForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -58591,70 +55756,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NetworkPolicyForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -59168,64 +56332,6 @@ "extensions_v1beta1" ], "operationId": "listExtensionsV1beta1ReplicaSetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -59244,70 +56350,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1ReplicaSetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -61916,16 +59021,18 @@ } ] }, - "/apis/image.openshift.io/v1/imagestreamimports": { - "post": { - "description": "create an ImageStreamImport", + "/apis/image.openshift.io/v1/imagestreams": { + "get": { + "description": "list or watch objects of kind ImageStream", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -61933,44 +59040,22 @@ "tags": [ "imageOpenshiftIo_v1" ], - "operationId": "createImageOpenshiftIoV1ImageStreamImportForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - } - ], + "operationId": "listImageOpenshiftIoV1ImageStreamForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "image.openshift.io", - "kind": "ImageStreamImport", + "kind": "ImageStream", "version": "v1" } }, @@ -61978,240 +59063,65 @@ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", "in": "query" - } - ] - }, - "/apis/image.openshift.io/v1/imagestreammappings": { - "post": { - "description": "create an ImageStreamMapping", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "imageOpenshiftIo_v1" - ], - "operationId": "createImageOpenshiftIoV1ImageStreamMappingForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "image.openshift.io", - "kind": "ImageStreamMapping", - "version": "v1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", "in": "query" - } - ] - }, - "/apis/image.openshift.io/v1/imagestreams": { - "get": { - "description": "list or watch objects of kind ImageStream", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "imageOpenshiftIo_v1" - ], - "operationId": "listImageOpenshiftIoV1ImageStreamForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamList" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "image.openshift.io", - "kind": "ImageStream", - "version": "v1" - } - }, - "post": { - "description": "create an ImageStream", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "imageOpenshiftIo_v1" - ], - "operationId": "createImageOpenshiftIoV1ImageStreamForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "image.openshift.io", - "kind": "ImageStream", - "version": "v1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -62235,64 +59145,6 @@ "imageOpenshiftIo_v1" ], "operationId": "listImageOpenshiftIoV1ImageStreamTagForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -62311,70 +59163,69 @@ "version": "v1" } }, - "post": { - "description": "create an ImageStreamTag", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "imageOpenshiftIo_v1" - ], - "operationId": "createImageOpenshiftIoV1ImageStreamTagForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "image.openshift.io", - "kind": "ImageStreamTag", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -64901,64 +61752,6 @@ "networkOpenshiftIo_v1" ], "operationId": "listNetworkOpenshiftIoV1EgressNetworkPolicyForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -64977,70 +61770,69 @@ "version": "v1" } }, - "post": { - "description": "create an EgressNetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networkOpenshiftIo_v1" - ], - "operationId": "createNetworkOpenshiftIoV1EgressNetworkPolicyForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "network.openshift.io", - "kind": "EgressNetworkPolicy", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -68106,64 +64898,6 @@ "networking_v1" ], "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -68182,70 +64916,69 @@ "version": "v1" } }, - "post": { - "description": "create a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "createNetworkingV1NetworkPolicyForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -72123,228 +68856,49 @@ "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified PodDisruptionBudget", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodDisruptionBudget", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "description": "list or watch objects of kind PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "post": { - "description": "create a PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "createPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified PodDisruptionBudget", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" } @@ -72353,7 +68907,7 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", @@ -72361,6 +68915,22 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the PodDisruptionBudget", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -72370,6 +68940,110 @@ } ] }, + "/apis/policy/v1beta1/poddisruptionbudgets": { + "get": { + "description": "list or watch objects of kind PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, "/apis/policy/v1beta1/podsecuritypolicies": { "get": { "description": "list or watch objects of kind PodSecurityPolicy", @@ -77454,64 +74128,6 @@ "rbacAuthorization_v1" ], "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -77530,70 +74146,69 @@ "version": "v1" } }, - "post": { - "description": "create a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1RoleBindingForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -77617,64 +74232,6 @@ "rbacAuthorization_v1" ], "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -77693,70 +74250,69 @@ "version": "v1" } }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1RoleForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -80845,64 +77401,6 @@ "rbacAuthorization_v1beta1" ], "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -80921,70 +77419,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -81008,64 +77505,6 @@ "rbacAuthorization_v1beta1" ], "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -81084,70 +77523,69 @@ "version": "v1beta1" } }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1RoleForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -82903,228 +79341,49 @@ "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "route.openshift.io", - "kind": "Route", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Route", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "routeOpenshiftIo_v1" - ], - "operationId": "patchRouteOpenshiftIoV1NamespacedRouteStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "route.openshift.io", - "kind": "Route", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Route", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/route.openshift.io/v1/routes": { - "get": { - "description": "list or watch objects of kind Route", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "routeOpenshiftIo_v1" - ], - "operationId": "listRouteOpenshiftIoV1RouteForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.RouteList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "route.openshift.io", - "kind": "Route", - "version": "v1" - } - }, - "post": { - "description": "create a Route", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "routeOpenshiftIo_v1" - ], - "operationId": "createRouteOpenshiftIoV1RouteForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "route.openshift.io", + "kind": "Route", + "version": "v1" + } + }, + "patch": { + "description": "partially update status of the specified Route", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "routeOpenshiftIo_v1" + ], + "operationId": "patchRouteOpenshiftIoV1NamespacedRouteStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", "schema": { "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" } @@ -83133,7 +79392,7 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "route.openshift.io", "kind": "Route", @@ -83141,6 +79400,22 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Route", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -83150,6 +79425,110 @@ } ] }, + "/apis/route.openshift.io/v1/routes": { + "get": { + "description": "list or watch objects of kind Route", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "routeOpenshiftIo_v1" + ], + "operationId": "listRouteOpenshiftIoV1RouteForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.route.v1.RouteList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "route.openshift.io", + "kind": "Route", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, "/apis/route.openshift.io/v1/watch/namespaces/{namespace}/routes": { "get": { "description": "watch individual changes to a list of Route", @@ -84386,241 +80765,21 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/security.openshift.io/v1/namespaces/{namespace}/podsecuritypolicyselfsubjectreviews": { - "post": { - "description": "create a PodSecurityPolicySelfSubjectReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "securityOpenshiftIo_v1" - ], - "operationId": "createSecurityOpenshiftIoV1NamespacedPodSecurityPolicySelfSubjectReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "security.openshift.io", - "kind": "PodSecurityPolicySelfSubjectReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/security.openshift.io/v1/namespaces/{namespace}/podsecuritypolicysubjectreviews": { - "post": { - "description": "create a PodSecurityPolicySubjectReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "securityOpenshiftIo_v1" - ], - "operationId": "createSecurityOpenshiftIoV1NamespacedPodSecurityPolicySubjectReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "security.openshift.io", - "kind": "PodSecurityPolicySubjectReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/security.openshift.io/v1/podsecuritypolicyreviews": { - "post": { - "description": "create a PodSecurityPolicyReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "securityOpenshiftIo_v1" - ], - "operationId": "createSecurityOpenshiftIoV1PodSecurityPolicyReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "security.openshift.io", - "kind": "PodSecurityPolicyReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" } ] }, - "/apis/security.openshift.io/v1/podsecuritypolicyselfsubjectreviews": { + "/apis/security.openshift.io/v1/namespaces/{namespace}/podsecuritypolicyselfsubjectreviews": { "post": { "description": "create a PodSecurityPolicySelfSubjectReview", "consumes": [ @@ -84637,7 +80796,7 @@ "tags": [ "securityOpenshiftIo_v1" ], - "operationId": "createSecurityOpenshiftIoV1PodSecurityPolicySelfSubjectReviewForAllNamespaces", + "operationId": "createSecurityOpenshiftIoV1NamespacedPodSecurityPolicySelfSubjectReview", "parameters": [ { "name": "body", @@ -84679,6 +80838,14 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -84688,7 +80855,7 @@ } ] }, - "/apis/security.openshift.io/v1/podsecuritypolicysubjectreviews": { + "/apis/security.openshift.io/v1/namespaces/{namespace}/podsecuritypolicysubjectreviews": { "post": { "description": "create a PodSecurityPolicySubjectReview", "consumes": [ @@ -84705,7 +80872,7 @@ "tags": [ "securityOpenshiftIo_v1" ], - "operationId": "createSecurityOpenshiftIoV1PodSecurityPolicySubjectReviewForAllNamespaces", + "operationId": "createSecurityOpenshiftIoV1NamespacedPodSecurityPolicySubjectReview", "parameters": [ { "name": "body", @@ -84747,6 +80914,14 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -90186,71 +86361,6 @@ } ] }, - "/apis/template.openshift.io/v1/processedtemplates": { - "post": { - "description": "create a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "operationId": "createProcessedTemplateForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "template.openshift.io", - "kind": "Template", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, "/apis/template.openshift.io/v1/templateinstances": { "get": { "description": "list or watch objects of kind TemplateInstance", @@ -90271,64 +86381,6 @@ "templateOpenshiftIo_v1" ], "operationId": "listTemplateOpenshiftIoV1TemplateInstanceForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -90347,70 +86399,69 @@ "version": "v1" } }, - "post": { - "description": "create a TemplateInstance", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "templateOpenshiftIo_v1" - ], - "operationId": "createTemplateOpenshiftIoV1TemplateInstanceForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateInstance" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateInstance" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateInstance" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateInstance" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "template.openshift.io", - "kind": "TemplateInstance", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -90434,64 +86485,6 @@ "templateOpenshiftIo_v1" ], "operationId": "listTemplateOpenshiftIoV1TemplateForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -90510,70 +86503,69 @@ "version": "v1" } }, - "post": { - "description": "create a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "templateOpenshiftIo_v1" - ], - "operationId": "createTemplateOpenshiftIoV1TemplateForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "template.openshift.io", - "kind": "Template", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -93609,223 +89601,7 @@ }, "/apis/user.openshift.io/v1/watch/identities/{name}": { "get": { - "description": "watch changes to an object of kind Identity", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "userOpenshiftIo_v1" - ], - "operationId": "watchUserOpenshiftIoV1Identity", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "user.openshift.io", - "kind": "Identity", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Identity", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/user.openshift.io/v1/watch/users": { - "get": { - "description": "watch individual changes to a list of User", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "userOpenshiftIo_v1" - ], - "operationId": "watchUserOpenshiftIoV1UserList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "user.openshift.io", - "kind": "User", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/user.openshift.io/v1/watch/users/{name}": { - "get": { - "description": "watch changes to an object of kind User", + "description": "watch changes to an object of kind Identity", "consumes": [ "*/*" ], @@ -93842,7 +89618,7 @@ "tags": [ "userOpenshiftIo_v1" ], - "operationId": "watchUserOpenshiftIoV1User", + "operationId": "watchUserOpenshiftIoV1Identity", "responses": { "200": { "description": "OK", @@ -93857,7 +89633,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "user.openshift.io", - "kind": "User", + "kind": "Identity", "version": "v1" } }, @@ -93900,7 +89676,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the User", + "description": "name of the Identity", "name": "name", "in": "path", "required": true @@ -93935,75 +89711,9 @@ } ] }, - "/oapi/": { - "get": { - "description": "get available API versions", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "getLegacyAPIVersions", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/oapi/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "getAPIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/oapi/v1/appliedclusterresourcequotas": { + "/apis/user.openshift.io/v1/watch/users": { "get": { - "description": "list objects of kind AppliedClusterResourceQuota", + "description": "watch individual changes to a list of User", "consumes": [ "*/*" ], @@ -94018,24 +89728,24 @@ "https" ], "tags": [ - "oapi" + "userOpenshiftIo_v1" ], - "operationId": "listAppliedClusterResourceQuotaForAllNamespaces", + "operationId": "watchUserOpenshiftIoV1UserList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.AppliedClusterResourceQuotaList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "", - "kind": "AppliedClusterResourceQuota", + "group": "user.openshift.io", + "kind": "User", "version": "v1" } }, @@ -94105,335 +89815,9 @@ } ] }, - "/oapi/v1/buildconfigs": { - "get": { - "description": "list or watch objects of kind BuildConfig", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "listBuildConfigForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfigList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "BuildConfig", - "version": "v1" - } - }, - "post": { - "description": "create a BuildConfig", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createBuildConfigForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfig" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "BuildConfig", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/builds": { - "get": { - "description": "list or watch objects of kind Build", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "listBuildForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Build", - "version": "v1" - } - }, - "post": { - "description": "create a Build", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createBuildForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.build.v1.Build" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Build", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/clusternetworks": { + "/apis/user.openshift.io/v1/watch/users/{name}": { "get": { - "description": "list or watch objects of kind ClusterNetwork", + "description": "watch changes to an object of kind User", "consumes": [ "*/*" ], @@ -94442,152 +89826,114 @@ "application/yaml", "application/vnd.kubernetes.protobuf", "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "listClusterNetwork", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetworkList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterNetwork", - "version": "v1" - } - }, - "post": { - "description": "create a ClusterNetwork", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "oapi" - ], - "operationId": "createClusterNetwork", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" - } - } + "userOpenshiftIo_v1" ], + "operationId": "watchUserOpenshiftIoV1User", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterNetwork", + "group": "user.openshift.io", + "kind": "User", "version": "v1" } }, - "delete": { - "description": "delete collection of ClusterNetwork", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the User", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/": { + "get": { + "description": "get available API versions", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -94600,98 +89946,27 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionClusterNetwork", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "getLegacyAPIVersions", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterNetwork", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" } - ] + } }, - "/oapi/v1/clusternetworks/{name}": { + "/oapi/v1/": { "get": { - "description": "read the specified ClusterNetwork", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -94704,50 +89979,32 @@ "tags": [ "oapi" ], - "operationId": "readClusterNetwork", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], + "operationId": "getAPIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterNetwork", - "version": "v1" } - }, - "put": { - "description": "replace the specified ClusterNetwork", + } + }, + "/oapi/v1/appliedclusterresourcequotas": { + "get": { + "description": "list objects of kind AppliedClusterResourceQuota", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -94755,50 +90012,103 @@ "tags": [ "oapi" ], - "operationId": "replaceClusterNetwork", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" - } - } - ], + "operationId": "listAppliedClusterResourceQuotaForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.AppliedClusterResourceQuotaList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterNetwork", + "kind": "AppliedClusterResourceQuota", "version": "v1" } }, - "delete": { - "description": "delete a ClusterNetwork", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/v1/buildconfigs": { + "get": { + "description": "list or watch objects of kind BuildConfig", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -94806,67 +90116,103 @@ "tags": [ "oapi" ], - "operationId": "deleteClusterNetwork", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], + "operationId": "listBuildConfigForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildConfigList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterNetwork", + "kind": "BuildConfig", "version": "v1" } }, - "patch": { - "description": "partially update the specified ClusterNetwork", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/v1/builds": { + "get": { + "description": "list or watch objects of kind Build", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -94874,32 +90220,22 @@ "tags": [ "oapi" ], - "operationId": "patchClusterNetwork", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], + "operationId": "listBuildForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" + "$ref": "#/definitions/com.github.openshift.api.build.v1.BuildList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterNetwork", + "kind": "Build", "version": "v1" } }, @@ -94907,10 +90243,37 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterNetwork", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -94918,12 +90281,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/oapi/v1/clusterresourcequotas": { + "/oapi/v1/clusternetworks": { "get": { - "description": "list or watch objects of kind ClusterResourceQuota", + "description": "list or watch objects of kind ClusterNetwork", "consumes": [ "*/*" ], @@ -94940,7 +90324,7 @@ "tags": [ "oapi" ], - "operationId": "listClusterResourceQuota", + "operationId": "listClusterNetwork", "parameters": [ { "uniqueItems": true, @@ -95003,7 +90387,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuotaList" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetworkList" } }, "401": { @@ -95013,12 +90397,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, "post": { - "description": "create a ClusterResourceQuota", + "description": "create a ClusterNetwork", "consumes": [ "*/*" ], @@ -95033,14 +90417,14 @@ "tags": [ "oapi" ], - "operationId": "createClusterResourceQuota", + "operationId": "createClusterNetwork", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } } ], @@ -95048,19 +90432,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "401": { @@ -95070,12 +90454,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, "delete": { - "description": "delete collection of ClusterResourceQuota", + "description": "delete collection of ClusterNetwork", "consumes": [ "*/*" ], @@ -95090,7 +90474,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionClusterResourceQuota", + "operationId": "deleteCollectionClusterNetwork", "parameters": [ { "uniqueItems": true, @@ -95163,7 +90547,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, @@ -95177,9 +90561,9 @@ } ] }, - "/oapi/v1/clusterresourcequotas/{name}": { + "/oapi/v1/clusternetworks/{name}": { "get": { - "description": "read the specified ClusterResourceQuota", + "description": "read the specified ClusterNetwork", "consumes": [ "*/*" ], @@ -95194,7 +90578,7 @@ "tags": [ "oapi" ], - "operationId": "readClusterResourceQuota", + "operationId": "readClusterNetwork", "parameters": [ { "uniqueItems": true, @@ -95215,7 +90599,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "401": { @@ -95225,12 +90609,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, "put": { - "description": "replace the specified ClusterResourceQuota", + "description": "replace the specified ClusterNetwork", "consumes": [ "*/*" ], @@ -95245,14 +90629,14 @@ "tags": [ "oapi" ], - "operationId": "replaceClusterResourceQuota", + "operationId": "replaceClusterNetwork", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } } ], @@ -95260,13 +90644,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "401": { @@ -95276,12 +90660,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, "delete": { - "description": "delete a ClusterResourceQuota", + "description": "delete a ClusterNetwork", "consumes": [ "*/*" ], @@ -95296,7 +90680,7 @@ "tags": [ "oapi" ], - "operationId": "deleteClusterResourceQuota", + "operationId": "deleteClusterNetwork", "parameters": [ { "name": "body", @@ -95342,12 +90726,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, "patch": { - "description": "partially update the specified ClusterResourceQuota", + "description": "partially update the specified ClusterNetwork", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -95364,7 +90748,7 @@ "tags": [ "oapi" ], - "operationId": "patchClusterResourceQuota", + "operationId": "patchClusterNetwork", "parameters": [ { "name": "body", @@ -95379,7 +90763,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.network.v1.ClusterNetwork" } }, "401": { @@ -95389,7 +90773,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterResourceQuota", + "kind": "ClusterNetwork", "version": "v1" } }, @@ -95397,7 +90781,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterResourceQuota", + "description": "name of the ClusterNetwork", "name": "name", "in": "path", "required": true @@ -95411,16 +90795,18 @@ } ] }, - "/oapi/v1/clusterresourcequotas/{name}/status": { + "/oapi/v1/clusterresourcequotas": { "get": { - "description": "read status of the specified ClusterResourceQuota", + "description": "list or watch objects of kind ClusterResourceQuota", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -95428,27 +90814,85 @@ "tags": [ "oapi" ], - "operationId": "readClusterResourceQuotaStatus", + "operationId": "listClusterResourceQuota", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuotaList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ClusterResourceQuota", "version": "v1" } }, - "put": { - "description": "replace status of the specified ClusterResourceQuota", + "post": { + "description": "create a ClusterResourceQuota", "consumes": [ "*/*" ], @@ -95463,7 +90907,7 @@ "tags": [ "oapi" ], - "operationId": "replaceClusterResourceQuotaStatus", + "operationId": "createClusterResourceQuota", "parameters": [ { "name": "body", @@ -95487,49 +90931,8 @@ "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterResourceQuota", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified ClusterResourceQuota", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "patchClusterResourceQuotaStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", + "202": { + "description": "Accepted", "schema": { "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } @@ -95538,43 +90941,22 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "ClusterResourceQuota", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterResourceQuota", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/clusterrolebindings": { - "get": { - "description": "list objects of kind ClusterRoleBinding", + "delete": { + "description": "delete collection of ClusterResourceQuota", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -95582,7 +90964,7 @@ "tags": [ "oapi" ], - "operationId": "listClusterRoleBinding", + "operationId": "deleteCollectionClusterResourceQuota", "parameters": [ { "uniqueItems": true, @@ -95645,74 +91027,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "post": { - "description": "create a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRoleBinding", + "kind": "ClusterResourceQuota", "version": "v1" } }, @@ -95726,9 +91051,9 @@ } ] }, - "/oapi/v1/clusterrolebindings/{name}": { + "/oapi/v1/clusterresourcequotas/{name}": { "get": { - "description": "read the specified ClusterRoleBinding", + "description": "read the specified ClusterResourceQuota", "consumes": [ "*/*" ], @@ -95743,12 +91068,28 @@ "tags": [ "oapi" ], - "operationId": "readClusterRoleBinding", + "operationId": "readClusterResourceQuota", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { @@ -95758,12 +91099,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRoleBinding", + "kind": "ClusterResourceQuota", "version": "v1" } }, "put": { - "description": "replace the specified ClusterRoleBinding", + "description": "replace the specified ClusterResourceQuota", "consumes": [ "*/*" ], @@ -95778,14 +91119,14 @@ "tags": [ "oapi" ], - "operationId": "replaceClusterRoleBinding", + "operationId": "replaceClusterResourceQuota", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } } ], @@ -95793,13 +91134,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { @@ -95809,12 +91150,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRoleBinding", + "kind": "ClusterResourceQuota", "version": "v1" } }, "delete": { - "description": "delete a ClusterRoleBinding", + "description": "delete a ClusterResourceQuota", "consumes": [ "*/*" ], @@ -95829,7 +91170,7 @@ "tags": [ "oapi" ], - "operationId": "deleteClusterRoleBinding", + "operationId": "deleteClusterResourceQuota", "parameters": [ { "name": "body", @@ -95849,176 +91190,15 @@ { "uniqueItems": true, "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "patchClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/clusterroles": { - "get": { - "description": "list objects of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "listClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -96026,24 +91206,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRole", + "kind": "ClusterResourceQuota", "version": "v1" } }, - "post": { - "description": "create a ClusterRole", + "patch": { + "description": "partially update the specified ClusterResourceQuota", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -96056,14 +91238,14 @@ "tags": [ "oapi" ], - "operationId": "createClusterRole", + "operationId": "patchClusterResourceQuota", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -96071,33 +91253,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRole", + "kind": "ClusterResourceQuota", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterResourceQuota", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -96107,9 +91285,9 @@ } ] }, - "/oapi/v1/clusterroles/{name}": { + "/oapi/v1/clusterresourcequotas/{name}/status": { "get": { - "description": "read the specified ClusterRole", + "description": "read status of the specified ClusterResourceQuota", "consumes": [ "*/*" ], @@ -96124,12 +91302,12 @@ "tags": [ "oapi" ], - "operationId": "readClusterRole", + "operationId": "readClusterResourceQuotaStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { @@ -96139,12 +91317,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRole", + "kind": "ClusterResourceQuota", "version": "v1" } }, "put": { - "description": "replace the specified ClusterRole", + "description": "replace status of the specified ClusterResourceQuota", "consumes": [ "*/*" ], @@ -96159,14 +91337,14 @@ "tags": [ "oapi" ], - "operationId": "replaceClusterRole", + "operationId": "replaceClusterResourceQuotaStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } } ], @@ -96174,13 +91352,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { @@ -96190,78 +91368,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRole", - "version": "v1" - } - }, - "delete": { - "description": "delete a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "deleteClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ClusterRole", + "kind": "ClusterResourceQuota", "version": "v1" } }, "patch": { - "description": "partially update the specified ClusterRole", + "description": "partially update status of the specified ClusterResourceQuota", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -96278,7 +91390,7 @@ "tags": [ "oapi" ], - "operationId": "patchClusterRole", + "operationId": "patchClusterResourceQuotaStatus", "parameters": [ { "name": "body", @@ -96293,7 +91405,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + "$ref": "#/definitions/com.github.openshift.api.quota.v1.ClusterResourceQuota" } }, "401": { @@ -96303,7 +91415,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ClusterRole", + "kind": "ClusterResourceQuota", "version": "v1" } }, @@ -96311,7 +91423,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterRole", + "description": "name of the ClusterResourceQuota", "name": "name", "in": "path", "required": true @@ -96325,9 +91437,9 @@ } ] }, - "/oapi/v1/deploymentconfigs": { + "/oapi/v1/clusterrolebindings": { "get": { - "description": "list or watch objects of kind DeploymentConfig", + "description": "list objects of kind ClusterRoleBinding", "consumes": [ "*/*" ], @@ -96344,7 +91456,7 @@ "tags": [ "oapi" ], - "operationId": "listDeploymentConfigForAllNamespaces", + "operationId": "listClusterRoleBinding", "parameters": [ { "uniqueItems": true, @@ -96407,7 +91519,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfigList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBindingList" } }, "401": { @@ -96417,12 +91529,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "DeploymentConfig", + "kind": "ClusterRoleBinding", "version": "v1" } }, "post": { - "description": "create a DeploymentConfig", + "description": "create a ClusterRoleBinding", "consumes": [ "*/*" ], @@ -96437,14 +91549,14 @@ "tags": [ "oapi" ], - "operationId": "createDeploymentConfigForAllNamespaces", + "operationId": "createClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } } ], @@ -96452,19 +91564,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfig" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { @@ -96474,7 +91586,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "DeploymentConfig", + "kind": "ClusterRoleBinding", "version": "v1" } }, @@ -96488,18 +91600,16 @@ } ] }, - "/oapi/v1/egressnetworkpolicies": { + "/oapi/v1/clusterrolebindings/{name}": { "get": { - "description": "list or watch objects of kind EgressNetworkPolicy", + "description": "read the specified ClusterRoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -96507,85 +91617,27 @@ "tags": [ "oapi" ], - "operationId": "listEgressNetworkPolicyForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "readClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicyList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "EgressNetworkPolicy", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "post": { - "description": "create an EgressNetworkPolicy", + "put": { + "description": "replace the specified ClusterRoleBinding", "consumes": [ "*/*" ], @@ -96600,14 +91652,14 @@ "tags": [ "oapi" ], - "operationId": "createEgressNetworkPolicyForAllNamespaces", + "operationId": "replaceClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } } ], @@ -96615,54 +91667,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicy" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "EgressNetworkPolicy", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/groups": { - "get": { - "description": "list or watch objects of kind Group", + "delete": { + "description": "delete a ClusterRoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -96670,62 +91703,35 @@ "tags": [ "oapi" ], - "operationId": "listGroup", + "operationId": "deleteClusterRoleBinding", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } }, { "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -96733,24 +91739,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.GroupList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "post": { - "description": "create a Group", + "patch": { + "description": "partially update the specified ClusterRoleBinding", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -96763,14 +91771,14 @@ "tags": [ "oapi" ], - "operationId": "createGroup", + "operationId": "patchClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -96778,41 +91786,50 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRoleBinding", "version": "v1" } }, - "delete": { - "description": "delete collection of Group", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/oapi/v1/clusterroles": { + "get": { + "description": "list objects of kind ClusterRole", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -96820,7 +91837,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionGroup", + "operationId": "listClusterRole", "parameters": [ { "uniqueItems": true, @@ -96883,17 +91900,74 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRoleList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRole", + "version": "v1" + } + }, + "post": { + "description": "create a ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "createClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ClusterRole", "version": "v1" } }, @@ -96907,9 +91981,9 @@ } ] }, - "/oapi/v1/groups/{name}": { + "/oapi/v1/clusterroles/{name}": { "get": { - "description": "read the specified Group", + "description": "read the specified ClusterRole", "consumes": [ "*/*" ], @@ -96924,28 +91998,12 @@ "tags": [ "oapi" ], - "operationId": "readGroup", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], + "operationId": "readClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { @@ -96955,12 +92013,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRole", "version": "v1" } }, "put": { - "description": "replace the specified Group", + "description": "replace the specified ClusterRole", "consumes": [ "*/*" ], @@ -96975,14 +92033,14 @@ "tags": [ "oapi" ], - "operationId": "replaceGroup", + "operationId": "replaceClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } } ], @@ -96990,13 +92048,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { @@ -97006,12 +92064,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRole", "version": "v1" } }, "delete": { - "description": "delete a Group", + "description": "delete a ClusterRole", "consumes": [ "*/*" ], @@ -97026,7 +92084,7 @@ "tags": [ "oapi" ], - "operationId": "deleteGroup", + "operationId": "deleteClusterRole", "parameters": [ { "name": "body", @@ -97072,12 +92130,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRole", "version": "v1" } }, "patch": { - "description": "partially update the specified Group", + "description": "partially update the specified ClusterRole", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -97094,7 +92152,7 @@ "tags": [ "oapi" ], - "operationId": "patchGroup", + "operationId": "patchClusterRole", "parameters": [ { "name": "body", @@ -97109,7 +92167,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ClusterRole" } }, "401": { @@ -97119,7 +92177,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Group", + "kind": "ClusterRole", "version": "v1" } }, @@ -97127,7 +92185,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Group", + "description": "name of the ClusterRole", "name": "name", "in": "path", "required": true @@ -97141,9 +92199,9 @@ } ] }, - "/oapi/v1/hostsubnets": { + "/oapi/v1/deploymentconfigs": { "get": { - "description": "list or watch objects of kind HostSubnet", + "description": "list or watch objects of kind DeploymentConfig", "consumes": [ "*/*" ], @@ -97160,7 +92218,215 @@ "tags": [ "oapi" ], - "operationId": "listHostSubnet", + "operationId": "listDeploymentConfigForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.apps.v1.DeploymentConfigList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "DeploymentConfig", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/v1/egressnetworkpolicies": { + "get": { + "description": "list or watch objects of kind EgressNetworkPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "listEgressNetworkPolicyForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.network.v1.EgressNetworkPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "EgressNetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/v1/groups": { + "get": { + "description": "list or watch objects of kind Group", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "listGroup", "parameters": [ { "uniqueItems": true, @@ -97223,7 +92489,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnetList" + "$ref": "#/definitions/com.github.openshift.api.user.v1.GroupList" } }, "401": { @@ -97233,12 +92499,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, "post": { - "description": "create a HostSubnet", + "description": "create a Group", "consumes": [ "*/*" ], @@ -97253,14 +92519,14 @@ "tags": [ "oapi" ], - "operationId": "createHostSubnet", + "operationId": "createGroup", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } } ], @@ -97268,19 +92534,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "401": { @@ -97290,12 +92556,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, "delete": { - "description": "delete collection of HostSubnet", + "description": "delete collection of Group", "consumes": [ "*/*" ], @@ -97310,7 +92576,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionHostSubnet", + "operationId": "deleteCollectionGroup", "parameters": [ { "uniqueItems": true, @@ -97383,7 +92649,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, @@ -97397,9 +92663,9 @@ } ] }, - "/oapi/v1/hostsubnets/{name}": { + "/oapi/v1/groups/{name}": { "get": { - "description": "read the specified HostSubnet", + "description": "read the specified Group", "consumes": [ "*/*" ], @@ -97414,7 +92680,7 @@ "tags": [ "oapi" ], - "operationId": "readHostSubnet", + "operationId": "readGroup", "parameters": [ { "uniqueItems": true, @@ -97435,7 +92701,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "401": { @@ -97445,12 +92711,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, "put": { - "description": "replace the specified HostSubnet", + "description": "replace the specified Group", "consumes": [ "*/*" ], @@ -97465,14 +92731,14 @@ "tags": [ "oapi" ], - "operationId": "replaceHostSubnet", + "operationId": "replaceGroup", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } } ], @@ -97480,13 +92746,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "401": { @@ -97496,12 +92762,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, "delete": { - "description": "delete a HostSubnet", + "description": "delete a Group", "consumes": [ "*/*" ], @@ -97516,7 +92782,7 @@ "tags": [ "oapi" ], - "operationId": "deleteHostSubnet", + "operationId": "deleteGroup", "parameters": [ { "name": "body", @@ -97562,12 +92828,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, "patch": { - "description": "partially update the specified HostSubnet", + "description": "partially update the specified Group", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -97584,7 +92850,7 @@ "tags": [ "oapi" ], - "operationId": "patchHostSubnet", + "operationId": "patchGroup", "parameters": [ { "name": "body", @@ -97599,7 +92865,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Group" } }, "401": { @@ -97609,7 +92875,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "HostSubnet", + "kind": "Group", "version": "v1" } }, @@ -97617,7 +92883,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the HostSubnet", + "description": "name of the Group", "name": "name", "in": "path", "required": true @@ -97631,9 +92897,9 @@ } ] }, - "/oapi/v1/identities": { + "/oapi/v1/hostsubnets": { "get": { - "description": "list or watch objects of kind Identity", + "description": "list or watch objects of kind HostSubnet", "consumes": [ "*/*" ], @@ -97650,7 +92916,7 @@ "tags": [ "oapi" ], - "operationId": "listIdentity", + "operationId": "listHostSubnet", "parameters": [ { "uniqueItems": true, @@ -97713,7 +92979,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.IdentityList" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnetList" } }, "401": { @@ -97723,12 +92989,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, "post": { - "description": "create an Identity", + "description": "create a HostSubnet", "consumes": [ "*/*" ], @@ -97743,14 +93009,14 @@ "tags": [ "oapi" ], - "operationId": "createIdentity", + "operationId": "createHostSubnet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } } ], @@ -97758,19 +93024,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "401": { @@ -97780,12 +93046,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, "delete": { - "description": "delete collection of Identity", + "description": "delete collection of HostSubnet", "consumes": [ "*/*" ], @@ -97800,7 +93066,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionIdentity", + "operationId": "deleteCollectionHostSubnet", "parameters": [ { "uniqueItems": true, @@ -97873,7 +93139,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, @@ -97887,9 +93153,9 @@ } ] }, - "/oapi/v1/identities/{name}": { + "/oapi/v1/hostsubnets/{name}": { "get": { - "description": "read the specified Identity", + "description": "read the specified HostSubnet", "consumes": [ "*/*" ], @@ -97904,7 +93170,7 @@ "tags": [ "oapi" ], - "operationId": "readIdentity", + "operationId": "readHostSubnet", "parameters": [ { "uniqueItems": true, @@ -97925,7 +93191,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "401": { @@ -97935,12 +93201,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, "put": { - "description": "replace the specified Identity", + "description": "replace the specified HostSubnet", "consumes": [ "*/*" ], @@ -97955,14 +93221,14 @@ "tags": [ "oapi" ], - "operationId": "replaceIdentity", + "operationId": "replaceHostSubnet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } } ], @@ -97970,13 +93236,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "401": { @@ -97986,12 +93252,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, "delete": { - "description": "delete an Identity", + "description": "delete a HostSubnet", "consumes": [ "*/*" ], @@ -98006,7 +93272,7 @@ "tags": [ "oapi" ], - "operationId": "deleteIdentity", + "operationId": "deleteHostSubnet", "parameters": [ { "name": "body", @@ -98052,12 +93318,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, "patch": { - "description": "partially update the specified Identity", + "description": "partially update the specified HostSubnet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -98074,7 +93340,7 @@ "tags": [ "oapi" ], - "operationId": "patchIdentity", + "operationId": "patchHostSubnet", "parameters": [ { "name": "body", @@ -98089,7 +93355,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" + "$ref": "#/definitions/com.github.openshift.api.network.v1.HostSubnet" } }, "401": { @@ -98099,7 +93365,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Identity", + "kind": "HostSubnet", "version": "v1" } }, @@ -98107,7 +93373,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Identity", + "description": "name of the HostSubnet", "name": "name", "in": "path", "required": true @@ -98121,9 +93387,9 @@ } ] }, - "/oapi/v1/images": { + "/oapi/v1/identities": { "get": { - "description": "list or watch objects of kind Image", + "description": "list or watch objects of kind Identity", "consumes": [ "*/*" ], @@ -98140,7 +93406,7 @@ "tags": [ "oapi" ], - "operationId": "listImage", + "operationId": "listIdentity", "parameters": [ { "uniqueItems": true, @@ -98203,7 +93469,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageList" + "$ref": "#/definitions/com.github.openshift.api.user.v1.IdentityList" } }, "401": { @@ -98213,12 +93479,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, "post": { - "description": "create an Image", + "description": "create an Identity", "consumes": [ "*/*" ], @@ -98233,14 +93499,14 @@ "tags": [ "oapi" ], - "operationId": "createImage", + "operationId": "createIdentity", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } } ], @@ -98248,19 +93514,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "401": { @@ -98270,12 +93536,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, "delete": { - "description": "delete collection of Image", + "description": "delete collection of Identity", "consumes": [ "*/*" ], @@ -98290,7 +93556,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionImage", + "operationId": "deleteCollectionIdentity", "parameters": [ { "uniqueItems": true, @@ -98363,7 +93629,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, @@ -98377,9 +93643,9 @@ } ] }, - "/oapi/v1/images/{name}": { + "/oapi/v1/identities/{name}": { "get": { - "description": "read the specified Image", + "description": "read the specified Identity", "consumes": [ "*/*" ], @@ -98394,7 +93660,7 @@ "tags": [ "oapi" ], - "operationId": "readImage", + "operationId": "readIdentity", "parameters": [ { "uniqueItems": true, @@ -98415,7 +93681,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "401": { @@ -98425,12 +93691,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, "put": { - "description": "replace the specified Image", + "description": "replace the specified Identity", "consumes": [ "*/*" ], @@ -98445,14 +93711,14 @@ "tags": [ "oapi" ], - "operationId": "replaceImage", + "operationId": "replaceIdentity", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } } ], @@ -98460,13 +93726,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "401": { @@ -98476,12 +93742,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, "delete": { - "description": "delete an Image", + "description": "delete an Identity", "consumes": [ "*/*" ], @@ -98496,7 +93762,7 @@ "tags": [ "oapi" ], - "operationId": "deleteImage", + "operationId": "deleteIdentity", "parameters": [ { "name": "body", @@ -98542,12 +93808,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", + "kind": "Identity", "version": "v1" } }, "patch": { - "description": "partially update the specified Image", + "description": "partially update the specified Identity", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -98564,7 +93830,7 @@ "tags": [ "oapi" ], - "operationId": "patchImage", + "operationId": "patchIdentity", "parameters": [ { "name": "body", @@ -98579,7 +93845,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + "$ref": "#/definitions/com.github.openshift.api.user.v1.Identity" } }, "401": { @@ -98589,320 +93855,31 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Image", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Image", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/imagesignatures": { - "post": { - "description": "create an ImageSignature", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createImageSignature", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ImageSignature", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/imagesignatures/{name}": { - "delete": { - "description": "delete an ImageSignature", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "deleteImageSignature", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ImageSignature", + "kind": "Identity", "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, { "uniqueItems": true, "type": "string", - "description": "name of the ImageSignature", + "description": "name of the Identity", "name": "name", "in": "path", "required": true }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" } ] }, - "/oapi/v1/imagestreamimports": { - "post": { - "description": "create an ImageStreamImport", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createImageStreamImportForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamImport" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ImageStreamImport", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/imagestreammappings": { - "post": { - "description": "create an ImageStreamMapping", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createImageStreamMappingForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamMapping" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ImageStreamMapping", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/imagestreams": { + "/oapi/v1/images": { "get": { - "description": "list or watch objects of kind ImageStream", + "description": "list or watch objects of kind Image", "consumes": [ "*/*" ], @@ -98919,7 +93896,7 @@ "tags": [ "oapi" ], - "operationId": "listImageStreamForAllNamespaces", + "operationId": "listImage", "parameters": [ { "uniqueItems": true, @@ -98982,7 +93959,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamList" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageList" } }, "401": { @@ -98992,12 +93969,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ImageStream", + "kind": "Image", "version": "v1" } }, "post": { - "description": "create an ImageStream", + "description": "create an Image", "consumes": [ "*/*" ], @@ -99012,14 +93989,14 @@ "tags": [ "oapi" ], - "operationId": "createImageStreamForAllNamespaces", + "operationId": "createImage", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } } ], @@ -99027,19 +94004,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStream" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } }, "401": { @@ -99049,32 +94026,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ImageStream", + "kind": "Image", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/imagestreamtags": { - "get": { - "description": "list objects of kind ImageStreamTag", + "delete": { + "description": "delete collection of Image", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -99082,7 +94046,7 @@ "tags": [ "oapi" ], - "operationId": "listImageStreamTagForAllNamespaces", + "operationId": "deleteCollectionImage", "parameters": [ { "uniqueItems": true, @@ -99145,22 +94109,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTagList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ImageStreamTag", + "kind": "Image", "version": "v1" } }, - "post": { - "description": "create an ImageStreamTag", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/oapi/v1/images/{name}": { + "get": { + "description": "read the specified Image", "consumes": [ "*/*" ], @@ -99175,14 +94150,65 @@ "tags": [ "oapi" ], - "operationId": "createImageStreamTagForAllNamespaces", + "operationId": "readImage", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Image", + "version": "v1" + } + }, + "put": { + "description": "replace the specified Image", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "replaceImage", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } } ], @@ -99190,33 +94216,148 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Image", + "version": "v1" + } + }, + "delete": { + "description": "delete an Image", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "deleteImage", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTag" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ImageStreamTag", + "kind": "Image", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified Image", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "patchImage", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.image.v1.Image" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Image", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Image", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -99226,9 +94367,9 @@ } ] }, - "/oapi/v1/localresourceaccessreviews": { + "/oapi/v1/imagesignatures": { "post": { - "description": "create a LocalResourceAccessReview", + "description": "create an ImageSignature", "consumes": [ "*/*" ], @@ -99243,14 +94384,14 @@ "tags": [ "oapi" ], - "operationId": "createLocalResourceAccessReviewForAllNamespaces", + "operationId": "createImageSignature", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" } } ], @@ -99258,19 +94399,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalResourceAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageSignature" } }, "401": { @@ -99280,7 +94421,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LocalResourceAccessReview", + "kind": "ImageSignature", "version": "v1" } }, @@ -99294,9 +94435,9 @@ } ] }, - "/oapi/v1/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", + "/oapi/v1/imagesignatures/{name}": { + "delete": { + "description": "delete an ImageSignature", "consumes": [ "*/*" ], @@ -99311,14 +94452,14 @@ "tags": [ "oapi" ], - "operationId": "createLocalSubjectAccessReviewForAllNamespaces", + "operationId": "deleteImageSignature", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } } ], @@ -99326,39 +94467,264 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, - "201": { - "description": "Created", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ImageSignature", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "integer", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ImageSignature", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ] + }, + "/oapi/v1/imagestreams": { + "get": { + "description": "list or watch objects of kind ImageStream", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "listImageStreamForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamList" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ImageStream", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/oapi/v1/imagestreamtags": { + "get": { + "description": "list objects of kind ImageStreamTag", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "listImageStreamTagForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.image.v1.ImageStreamTagList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "LocalSubjectAccessReview", + "kind": "ImageStreamTag", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, @@ -106664,400 +102030,9 @@ } ] }, - "/oapi/v1/namespaces/{namespace}/subjectrulesreviews": { - "post": { - "description": "create a SubjectRulesReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createNamespacedSubjectRulesReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "SubjectRulesReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/namespaces/{namespace}/templates": { - "get": { - "description": "list or watch objects of kind Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "listNamespacedTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "post": { - "description": "create a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createNamespacedTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "deleteCollectionNamespacedTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/namespaces/{namespace}/templates/{name}": { - "get": { - "description": "read the specified Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "readNamespacedTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Template", + "/oapi/v1/namespaces/{namespace}/subjectrulesreviews": { + "post": { + "description": "create a SubjectRulesReview", "consumes": [ "*/*" ], @@ -107072,14 +102047,14 @@ "tags": [ "oapi" ], - "operationId": "replaceNamespacedTemplate", + "operationId": "createNamespacedSubjectRulesReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } } ], @@ -107087,148 +102062,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "delete": { - "description": "delete a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "deleteNamespacedTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Template", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "patchNamespacedTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", + "202": { + "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Template", + "kind": "SubjectRulesReview", "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Template", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -107246,9 +102106,9 @@ } ] }, - "/oapi/v1/netnamespaces": { + "/oapi/v1/namespaces/{namespace}/templates": { "get": { - "description": "list or watch objects of kind NetNamespace", + "description": "list or watch objects of kind Template", "consumes": [ "*/*" ], @@ -107265,7 +102125,7 @@ "tags": [ "oapi" ], - "operationId": "listNetNamespace", + "operationId": "listNamespacedTemplate", "parameters": [ { "uniqueItems": true, @@ -107328,7 +102188,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespaceList" + "$ref": "#/definitions/com.github.openshift.api.template.v1.TemplateList" } }, "401": { @@ -107338,12 +102198,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "post": { - "description": "create a NetNamespace", + "description": "create a Template", "consumes": [ "*/*" ], @@ -107358,14 +102218,14 @@ "tags": [ "oapi" ], - "operationId": "createNetNamespace", + "operationId": "createNamespacedTemplate", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } } ], @@ -107373,19 +102233,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "401": { @@ -107395,12 +102255,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "delete": { - "description": "delete collection of NetNamespace", + "description": "delete collection of Template", "consumes": [ "*/*" ], @@ -107415,7 +102275,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionNetNamespace", + "operationId": "deleteCollectionNamespacedTemplate", "parameters": [ { "uniqueItems": true, @@ -107488,11 +102348,19 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -107502,9 +102370,9 @@ } ] }, - "/oapi/v1/netnamespaces/{name}": { + "/oapi/v1/namespaces/{namespace}/templates/{name}": { "get": { - "description": "read the specified NetNamespace", + "description": "read the specified Template", "consumes": [ "*/*" ], @@ -107519,7 +102387,7 @@ "tags": [ "oapi" ], - "operationId": "readNetNamespace", + "operationId": "readNamespacedTemplate", "parameters": [ { "uniqueItems": true, @@ -107540,7 +102408,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "401": { @@ -107550,12 +102418,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "put": { - "description": "replace the specified NetNamespace", + "description": "replace the specified Template", "consumes": [ "*/*" ], @@ -107570,14 +102438,14 @@ "tags": [ "oapi" ], - "operationId": "replaceNetNamespace", + "operationId": "replaceNamespacedTemplate", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } } ], @@ -107585,13 +102453,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "401": { @@ -107601,12 +102469,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "delete": { - "description": "delete a NetNamespace", + "description": "delete a Template", "consumes": [ "*/*" ], @@ -107621,7 +102489,7 @@ "tags": [ "oapi" ], - "operationId": "deleteNetNamespace", + "operationId": "deleteNamespacedTemplate", "parameters": [ { "name": "body", @@ -107667,12 +102535,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, "patch": { - "description": "partially update the specified NetNamespace", + "description": "partially update the specified Template", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -107689,7 +102557,7 @@ "tags": [ "oapi" ], - "operationId": "patchNetNamespace", + "operationId": "patchNamespacedTemplate", "parameters": [ { "name": "body", @@ -107704,7 +102572,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" + "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" } }, "401": { @@ -107714,7 +102582,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "NetNamespace", + "kind": "Template", "version": "v1" } }, @@ -107722,11 +102590,19 @@ { "uniqueItems": true, "type": "string", - "description": "name of the NetNamespace", + "description": "name of the Template", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -107736,9 +102612,9 @@ } ] }, - "/oapi/v1/oauthaccesstokens": { + "/oapi/v1/netnamespaces": { "get": { - "description": "list or watch objects of kind OAuthAccessToken", + "description": "list or watch objects of kind NetNamespace", "consumes": [ "*/*" ], @@ -107755,7 +102631,7 @@ "tags": [ "oapi" ], - "operationId": "listOAuthAccessToken", + "operationId": "listNetNamespace", "parameters": [ { "uniqueItems": true, @@ -107818,7 +102694,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessTokenList" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespaceList" } }, "401": { @@ -107828,12 +102704,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, "post": { - "description": "create an OAuthAccessToken", + "description": "create a NetNamespace", "consumes": [ "*/*" ], @@ -107848,14 +102724,14 @@ "tags": [ "oapi" ], - "operationId": "createOAuthAccessToken", + "operationId": "createNetNamespace", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } } ], @@ -107863,19 +102739,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "401": { @@ -107885,12 +102761,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, "delete": { - "description": "delete collection of OAuthAccessToken", + "description": "delete collection of NetNamespace", "consumes": [ "*/*" ], @@ -107905,7 +102781,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionOAuthAccessToken", + "operationId": "deleteCollectionNetNamespace", "parameters": [ { "uniqueItems": true, @@ -107978,7 +102854,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, @@ -107992,9 +102868,9 @@ } ] }, - "/oapi/v1/oauthaccesstokens/{name}": { + "/oapi/v1/netnamespaces/{name}": { "get": { - "description": "read the specified OAuthAccessToken", + "description": "read the specified NetNamespace", "consumes": [ "*/*" ], @@ -108009,7 +102885,7 @@ "tags": [ "oapi" ], - "operationId": "readOAuthAccessToken", + "operationId": "readNetNamespace", "parameters": [ { "uniqueItems": true, @@ -108030,7 +102906,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "401": { @@ -108040,12 +102916,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, "put": { - "description": "replace the specified OAuthAccessToken", + "description": "replace the specified NetNamespace", "consumes": [ "*/*" ], @@ -108060,14 +102936,14 @@ "tags": [ "oapi" ], - "operationId": "replaceOAuthAccessToken", + "operationId": "replaceNetNamespace", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } } ], @@ -108075,13 +102951,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "401": { @@ -108091,12 +102967,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, "delete": { - "description": "delete an OAuthAccessToken", + "description": "delete a NetNamespace", "consumes": [ "*/*" ], @@ -108111,7 +102987,7 @@ "tags": [ "oapi" ], - "operationId": "deleteOAuthAccessToken", + "operationId": "deleteNetNamespace", "parameters": [ { "name": "body", @@ -108157,12 +103033,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, "patch": { - "description": "partially update the specified OAuthAccessToken", + "description": "partially update the specified NetNamespace", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -108179,7 +103055,7 @@ "tags": [ "oapi" ], - "operationId": "patchOAuthAccessToken", + "operationId": "patchNetNamespace", "parameters": [ { "name": "body", @@ -108194,7 +103070,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" + "$ref": "#/definitions/com.github.openshift.api.network.v1.NetNamespace" } }, "401": { @@ -108204,7 +103080,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAccessToken", + "kind": "NetNamespace", "version": "v1" } }, @@ -108212,7 +103088,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the OAuthAccessToken", + "description": "name of the NetNamespace", "name": "name", "in": "path", "required": true @@ -108226,9 +103102,9 @@ } ] }, - "/oapi/v1/oauthauthorizetokens": { + "/oapi/v1/oauthaccesstokens": { "get": { - "description": "list or watch objects of kind OAuthAuthorizeToken", + "description": "list or watch objects of kind OAuthAccessToken", "consumes": [ "*/*" ], @@ -108245,7 +103121,7 @@ "tags": [ "oapi" ], - "operationId": "listOAuthAuthorizeToken", + "operationId": "listOAuthAccessToken", "parameters": [ { "uniqueItems": true, @@ -108308,7 +103184,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeTokenList" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessTokenList" } }, "401": { @@ -108318,12 +103194,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, "post": { - "description": "create an OAuthAuthorizeToken", + "description": "create an OAuthAccessToken", "consumes": [ "*/*" ], @@ -108338,14 +103214,14 @@ "tags": [ "oapi" ], - "operationId": "createOAuthAuthorizeToken", + "operationId": "createOAuthAccessToken", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } } ], @@ -108353,19 +103229,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "401": { @@ -108375,12 +103251,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, "delete": { - "description": "delete collection of OAuthAuthorizeToken", + "description": "delete collection of OAuthAccessToken", "consumes": [ "*/*" ], @@ -108395,7 +103271,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionOAuthAuthorizeToken", + "operationId": "deleteCollectionOAuthAccessToken", "parameters": [ { "uniqueItems": true, @@ -108468,7 +103344,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, @@ -108482,9 +103358,9 @@ } ] }, - "/oapi/v1/oauthauthorizetokens/{name}": { + "/oapi/v1/oauthaccesstokens/{name}": { "get": { - "description": "read the specified OAuthAuthorizeToken", + "description": "read the specified OAuthAccessToken", "consumes": [ "*/*" ], @@ -108499,7 +103375,7 @@ "tags": [ "oapi" ], - "operationId": "readOAuthAuthorizeToken", + "operationId": "readOAuthAccessToken", "parameters": [ { "uniqueItems": true, @@ -108520,7 +103396,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "401": { @@ -108530,12 +103406,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, "put": { - "description": "replace the specified OAuthAuthorizeToken", + "description": "replace the specified OAuthAccessToken", "consumes": [ "*/*" ], @@ -108550,14 +103426,14 @@ "tags": [ "oapi" ], - "operationId": "replaceOAuthAuthorizeToken", + "operationId": "replaceOAuthAccessToken", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } } ], @@ -108565,13 +103441,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "401": { @@ -108581,12 +103457,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, "delete": { - "description": "delete an OAuthAuthorizeToken", + "description": "delete an OAuthAccessToken", "consumes": [ "*/*" ], @@ -108601,7 +103477,7 @@ "tags": [ "oapi" ], - "operationId": "deleteOAuthAuthorizeToken", + "operationId": "deleteOAuthAccessToken", "parameters": [ { "name": "body", @@ -108647,12 +103523,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, "patch": { - "description": "partially update the specified OAuthAuthorizeToken", + "description": "partially update the specified OAuthAccessToken", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -108669,7 +103545,7 @@ "tags": [ "oapi" ], - "operationId": "patchOAuthAuthorizeToken", + "operationId": "patchOAuthAccessToken", "parameters": [ { "name": "body", @@ -108684,7 +103560,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAccessToken" } }, "401": { @@ -108694,7 +103570,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthAuthorizeToken", + "kind": "OAuthAccessToken", "version": "v1" } }, @@ -108702,7 +103578,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the OAuthAuthorizeToken", + "description": "name of the OAuthAccessToken", "name": "name", "in": "path", "required": true @@ -108716,9 +103592,9 @@ } ] }, - "/oapi/v1/oauthclientauthorizations": { + "/oapi/v1/oauthauthorizetokens": { "get": { - "description": "list or watch objects of kind OAuthClientAuthorization", + "description": "list or watch objects of kind OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -108735,7 +103611,7 @@ "tags": [ "oapi" ], - "operationId": "listOAuthClientAuthorization", + "operationId": "listOAuthAuthorizeToken", "parameters": [ { "uniqueItems": true, @@ -108798,7 +103674,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorizationList" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeTokenList" } }, "401": { @@ -108808,12 +103684,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, "post": { - "description": "create an OAuthClientAuthorization", + "description": "create an OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -108828,14 +103704,14 @@ "tags": [ "oapi" ], - "operationId": "createOAuthClientAuthorization", + "operationId": "createOAuthAuthorizeToken", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } } ], @@ -108843,19 +103719,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "401": { @@ -108865,12 +103741,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, "delete": { - "description": "delete collection of OAuthClientAuthorization", + "description": "delete collection of OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -108885,7 +103761,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionOAuthClientAuthorization", + "operationId": "deleteCollectionOAuthAuthorizeToken", "parameters": [ { "uniqueItems": true, @@ -108958,7 +103834,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, @@ -108972,9 +103848,9 @@ } ] }, - "/oapi/v1/oauthclientauthorizations/{name}": { + "/oapi/v1/oauthauthorizetokens/{name}": { "get": { - "description": "read the specified OAuthClientAuthorization", + "description": "read the specified OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -108989,7 +103865,7 @@ "tags": [ "oapi" ], - "operationId": "readOAuthClientAuthorization", + "operationId": "readOAuthAuthorizeToken", "parameters": [ { "uniqueItems": true, @@ -109010,7 +103886,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "401": { @@ -109020,12 +103896,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, "put": { - "description": "replace the specified OAuthClientAuthorization", + "description": "replace the specified OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -109040,14 +103916,14 @@ "tags": [ "oapi" ], - "operationId": "replaceOAuthClientAuthorization", + "operationId": "replaceOAuthAuthorizeToken", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } } ], @@ -109055,13 +103931,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "401": { @@ -109071,12 +103947,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, "delete": { - "description": "delete an OAuthClientAuthorization", + "description": "delete an OAuthAuthorizeToken", "consumes": [ "*/*" ], @@ -109091,7 +103967,7 @@ "tags": [ "oapi" ], - "operationId": "deleteOAuthClientAuthorization", + "operationId": "deleteOAuthAuthorizeToken", "parameters": [ { "name": "body", @@ -109137,12 +104013,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, "patch": { - "description": "partially update the specified OAuthClientAuthorization", + "description": "partially update the specified OAuthAuthorizeToken", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -109159,7 +104035,7 @@ "tags": [ "oapi" ], - "operationId": "patchOAuthClientAuthorization", + "operationId": "patchOAuthAuthorizeToken", "parameters": [ { "name": "body", @@ -109174,7 +104050,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthAuthorizeToken" } }, "401": { @@ -109184,7 +104060,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClientAuthorization", + "kind": "OAuthAuthorizeToken", "version": "v1" } }, @@ -109192,7 +104068,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the OAuthClientAuthorization", + "description": "name of the OAuthAuthorizeToken", "name": "name", "in": "path", "required": true @@ -109206,9 +104082,9 @@ } ] }, - "/oapi/v1/oauthclients": { + "/oapi/v1/oauthclientauthorizations": { "get": { - "description": "list or watch objects of kind OAuthClient", + "description": "list or watch objects of kind OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109225,7 +104101,7 @@ "tags": [ "oapi" ], - "operationId": "listOAuthClient", + "operationId": "listOAuthClientAuthorization", "parameters": [ { "uniqueItems": true, @@ -109288,7 +104164,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientList" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorizationList" } }, "401": { @@ -109298,12 +104174,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, "post": { - "description": "create an OAuthClient", + "description": "create an OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109318,14 +104194,14 @@ "tags": [ "oapi" ], - "operationId": "createOAuthClient", + "operationId": "createOAuthClientAuthorization", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } } ], @@ -109333,19 +104209,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "401": { @@ -109355,12 +104231,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, "delete": { - "description": "delete collection of OAuthClient", + "description": "delete collection of OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109375,7 +104251,7 @@ "tags": [ "oapi" ], - "operationId": "deleteCollectionOAuthClient", + "operationId": "deleteCollectionOAuthClientAuthorization", "parameters": [ { "uniqueItems": true, @@ -109448,7 +104324,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, @@ -109462,9 +104338,9 @@ } ] }, - "/oapi/v1/oauthclients/{name}": { + "/oapi/v1/oauthclientauthorizations/{name}": { "get": { - "description": "read the specified OAuthClient", + "description": "read the specified OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109479,7 +104355,7 @@ "tags": [ "oapi" ], - "operationId": "readOAuthClient", + "operationId": "readOAuthClientAuthorization", "parameters": [ { "uniqueItems": true, @@ -109500,7 +104376,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "401": { @@ -109510,12 +104386,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, "put": { - "description": "replace the specified OAuthClient", + "description": "replace the specified OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109530,14 +104406,14 @@ "tags": [ "oapi" ], - "operationId": "replaceOAuthClient", + "operationId": "replaceOAuthClientAuthorization", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } } ], @@ -109545,13 +104421,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "401": { @@ -109561,12 +104437,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, "delete": { - "description": "delete an OAuthClient", + "description": "delete an OAuthClientAuthorization", "consumes": [ "*/*" ], @@ -109581,7 +104457,7 @@ "tags": [ "oapi" ], - "operationId": "deleteOAuthClient", + "operationId": "deleteOAuthClientAuthorization", "parameters": [ { "name": "body", @@ -109627,12 +104503,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, "patch": { - "description": "partially update the specified OAuthClient", + "description": "partially update the specified OAuthClientAuthorization", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -109649,7 +104525,7 @@ "tags": [ "oapi" ], - "operationId": "patchOAuthClient", + "operationId": "patchOAuthClientAuthorization", "parameters": [ { "name": "body", @@ -109664,7 +104540,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientAuthorization" } }, "401": { @@ -109674,7 +104550,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "OAuthClient", + "kind": "OAuthClientAuthorization", "version": "v1" } }, @@ -109682,7 +104558,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the OAuthClient", + "description": "name of the OAuthClientAuthorization", "name": "name", "in": "path", "required": true @@ -109696,278 +104572,9 @@ } ] }, - "/oapi/v1/podsecuritypolicyreviews": { - "post": { - "description": "create a PodSecurityPolicyReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createPodSecurityPolicyReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicyReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodSecurityPolicyReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/podsecuritypolicyselfsubjectreviews": { - "post": { - "description": "create a PodSecurityPolicySelfSubjectReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createPodSecurityPolicySelfSubjectReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodSecurityPolicySelfSubjectReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/podsecuritypolicysubjectreviews": { - "post": { - "description": "create a PodSecurityPolicySubjectReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createPodSecurityPolicySubjectReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.security.v1.PodSecurityPolicySubjectReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodSecurityPolicySubjectReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/processedtemplates": { - "post": { - "description": "create a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "operationId": "createProcessedTemplateForAllNamespacesV1", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/projectrequests": { + "/oapi/v1/oauthclients": { "get": { - "description": "list objects of kind ProjectRequest", + "description": "list or watch objects of kind OAuthClient", "consumes": [ "*/*" ], @@ -109984,7 +104591,7 @@ "tags": [ "oapi" ], - "operationId": "listProjectRequest", + "operationId": "listOAuthClient", "parameters": [ { "uniqueItems": true, @@ -110047,7 +104654,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClientList" } }, "401": { @@ -110057,12 +104664,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ProjectRequest", + "kind": "OAuthClient", "version": "v1" } }, "post": { - "description": "create a ProjectRequest", + "description": "create an OAuthClient", "consumes": [ "*/*" ], @@ -110077,14 +104684,14 @@ "tags": [ "oapi" ], - "operationId": "createProjectRequest", + "operationId": "createOAuthClient", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } } ], @@ -110092,19 +104699,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "401": { @@ -110114,32 +104721,19 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "ProjectRequest", + "kind": "OAuthClient", "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/projects": { - "get": { - "description": "list or watch objects of kind Project", + "delete": { + "description": "delete collection of OAuthClient", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -110147,7 +104741,7 @@ "tags": [ "oapi" ], - "operationId": "listProject", + "operationId": "deleteCollectionOAuthClient", "parameters": [ { "uniqueItems": true, @@ -110210,74 +104804,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Project", - "version": "v1" - } - }, - "post": { - "description": "create a Project", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createProject", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Project", + "kind": "OAuthClient", "version": "v1" } }, @@ -110291,9 +104828,9 @@ } ] }, - "/oapi/v1/projects/{name}": { + "/oapi/v1/oauthclients/{name}": { "get": { - "description": "read the specified Project", + "description": "read the specified OAuthClient", "consumes": [ "*/*" ], @@ -110308,12 +104845,28 @@ "tags": [ "oapi" ], - "operationId": "readProject", + "operationId": "readOAuthClient", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "401": { @@ -110323,12 +104876,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Project", + "kind": "OAuthClient", "version": "v1" } }, "put": { - "description": "replace the specified Project", + "description": "replace the specified OAuthClient", "consumes": [ "*/*" ], @@ -110343,14 +104896,14 @@ "tags": [ "oapi" ], - "operationId": "replaceProject", + "operationId": "replaceOAuthClient", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } } ], @@ -110358,13 +104911,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "401": { @@ -110374,12 +104927,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Project", + "kind": "OAuthClient", "version": "v1" } }, "delete": { - "description": "delete a Project", + "description": "delete an OAuthClient", "consumes": [ "*/*" ], @@ -110394,7 +104947,7 @@ "tags": [ "oapi" ], - "operationId": "deleteProject", + "operationId": "deleteOAuthClient", "parameters": [ { "name": "body", @@ -110440,12 +104993,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Project", + "kind": "OAuthClient", "version": "v1" } }, "patch": { - "description": "partially update the specified Project", + "description": "partially update the specified OAuthClient", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -110462,7 +105015,7 @@ "tags": [ "oapi" ], - "operationId": "patchProject", + "operationId": "patchOAuthClient", "parameters": [ { "name": "body", @@ -110477,7 +105030,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + "$ref": "#/definitions/com.github.openshift.api.oauth.v1.OAuthClient" } }, "401": { @@ -110487,7 +105040,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Project", + "kind": "OAuthClient", "version": "v1" } }, @@ -110495,7 +105048,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Project", + "description": "name of the OAuthClient", "name": "name", "in": "path", "required": true @@ -110509,77 +105062,9 @@ } ] }, - "/oapi/v1/resourceaccessreviews": { - "post": { - "description": "create a ResourceAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createResourceAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/oapi/v1/rolebindingrestrictions": { + "/oapi/v1/projectrequests": { "get": { - "description": "list or watch objects of kind RoleBindingRestriction", + "description": "list objects of kind ProjectRequest", "consumes": [ "*/*" ], @@ -110596,7 +105081,7 @@ "tags": [ "oapi" ], - "operationId": "listRoleBindingRestrictionForAllNamespaces", + "operationId": "listProjectRequest", "parameters": [ { "uniqueItems": true, @@ -110659,7 +105144,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { @@ -110669,12 +105154,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "RoleBindingRestriction", + "kind": "ProjectRequest", "version": "v1" } }, "post": { - "description": "create a RoleBindingRestriction", + "description": "create a ProjectRequest", "consumes": [ "*/*" ], @@ -110689,14 +105174,14 @@ "tags": [ "oapi" ], - "operationId": "createRoleBindingRestrictionForAllNamespaces", + "operationId": "createProjectRequest", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" } } ], @@ -110704,19 +105189,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestriction" + "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectRequest" } }, "401": { @@ -110726,7 +105211,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "RoleBindingRestriction", + "kind": "ProjectRequest", "version": "v1" } }, @@ -110740,9 +105225,9 @@ } ] }, - "/oapi/v1/rolebindings": { + "/oapi/v1/projects": { "get": { - "description": "list objects of kind RoleBinding", + "description": "list or watch objects of kind Project", "consumes": [ "*/*" ], @@ -110759,7 +105244,7 @@ "tags": [ "oapi" ], - "operationId": "listRoleBindingForAllNamespaces", + "operationId": "listProject", "parameters": [ { "uniqueItems": true, @@ -110822,7 +105307,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" + "$ref": "#/definitions/com.github.openshift.api.project.v1.ProjectList" } }, "401": { @@ -110832,12 +105317,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "RoleBinding", + "kind": "Project", "version": "v1" } }, "post": { - "description": "create a RoleBinding", + "description": "create a Project", "consumes": [ "*/*" ], @@ -110852,14 +105337,14 @@ "tags": [ "oapi" ], - "operationId": "createRoleBindingForAllNamespaces", + "operationId": "createProject", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" } } ], @@ -110867,19 +105352,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBinding" + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" } }, "401": { @@ -110889,7 +105374,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "RoleBinding", + "kind": "Project", "version": "v1" } }, @@ -110903,18 +105388,16 @@ } ] }, - "/oapi/v1/roles": { + "/oapi/v1/projects/{name}": { "get": { - "description": "list objects of kind Role", + "description": "read the specified Project", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -110922,85 +105405,210 @@ "tags": [ "oapi" ], - "operationId": "listRoleForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "operationId": "readProject", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Project", + "version": "v1" + } + }, + "put": { + "description": "replace the specified Project", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "replaceProject", + "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Project", + "version": "v1" + } + }, + "delete": { + "description": "delete a Project", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "deleteProject", + "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } }, { "uniqueItems": true, "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", + "description": "The 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. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Project", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified Project", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "oapi" + ], + "operationId": "patchProject", + "parameters": [ { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" + "$ref": "#/definitions/com.github.openshift.api.project.v1.Project" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Role", + "kind": "Project", "version": "v1" } }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Project", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/oapi/v1/resourceaccessreviews": { "post": { - "description": "create a Role", + "description": "create a ResourceAccessReview", "consumes": [ "*/*" ], @@ -111015,14 +105623,14 @@ "tags": [ "oapi" ], - "operationId": "createRoleForAllNamespaces", + "operationId": "createResourceAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } } ], @@ -111030,19 +105638,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.Role" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.ResourceAccessReview" } }, "401": { @@ -111052,7 +105660,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Role", + "kind": "ResourceAccessReview", "version": "v1" } }, @@ -111066,9 +105674,9 @@ } ] }, - "/oapi/v1/routes": { + "/oapi/v1/rolebindingrestrictions": { "get": { - "description": "list or watch objects of kind Route", + "description": "list or watch objects of kind RoleBindingRestriction", "consumes": [ "*/*" ], @@ -111085,92 +105693,103 @@ "tags": [ "oapi" ], - "operationId": "listRouteForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], + "operationId": "listRoleBindingRestrictionForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.RouteList" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingRestrictionList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Route", - "version": "v1" + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "RoleBindingRestriction", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "post": { - "description": "create a Route", + ] + }, + "/oapi/v1/rolebindings": { + "get": { + "description": "list objects of kind RoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -111178,67 +105797,103 @@ "tags": [ "oapi" ], - "operationId": "createRouteForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - } - ], + "operationId": "listRoleBindingForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.route.v1.Route" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleBindingList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "Route", + "kind": "RoleBinding", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/oapi/v1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", + "/oapi/v1/roles": { + "get": { + "description": "list objects of kind Role", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -111246,67 +105901,103 @@ "tags": [ "oapi" ], - "operationId": "createSelfSubjectRulesReviewForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], + "operationId": "listRoleForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.RoleList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "SelfSubjectRulesReview", + "kind": "Role", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/oapi/v1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", + "/oapi/v1/routes": { + "get": { + "description": "list or watch objects of kind Route", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -111314,60 +106005,94 @@ "tags": [ "oapi" ], - "operationId": "createSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" - } - } - ], + "operationId": "listRouteForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/com.github.openshift.api.route.v1.RouteList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", - "kind": "SubjectAccessReview", + "kind": "Route", "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/oapi/v1/subjectrulesreviews": { + "/oapi/v1/subjectaccessreviews": { "post": { - "description": "create a SubjectRulesReview", + "description": "create a SubjectAccessReview", "consumes": [ "*/*" ], @@ -111382,14 +106107,14 @@ "tags": [ "oapi" ], - "operationId": "createSubjectRulesReviewForAllNamespaces", + "operationId": "createSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } } ], @@ -111397,19 +106122,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectRulesReview" + "$ref": "#/definitions/com.github.openshift.api.authorization.v1.SubjectAccessReview" } }, "401": { @@ -111419,7 +106144,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", - "kind": "SubjectRulesReview", + "kind": "SubjectAccessReview", "version": "v1" } }, @@ -111453,64 +106178,6 @@ "oapi" ], "operationId": "listTemplateForAllNamespaces", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], "responses": { "200": { "description": "OK", @@ -111529,70 +106196,69 @@ "version": "v1" } }, - "post": { - "description": "create a Template", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "oapi" - ], - "operationId": "createTemplateForAllNamespaces", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/com.github.openshift.api.template.v1.Template" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Template", - "version": "v1" - } - }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, diff --git a/pkg/openapi/zz_generated.openapi.go b/pkg/openapi/zz_generated.openapi.go index 692ed868e1e2..7e3c2b20d19b 100644 --- a/pkg/openapi/zz_generated.openapi.go +++ b/pkg/openapi/zz_generated.openapi.go @@ -8,6 +8,7 @@ package openapi import ( spec "github.com/go-openapi/spec" + v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -415,7 +416,6 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "k8s.io/api/autoscaling/v1.Scale": schema_k8sio_api_autoscaling_v1_Scale(ref), "k8s.io/api/autoscaling/v1.ScaleSpec": schema_k8sio_api_autoscaling_v1_ScaleSpec(ref), "k8s.io/api/autoscaling/v1.ScaleStatus": schema_k8sio_api_autoscaling_v1_ScaleStatus(ref), - "k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy": schema_k8sio_api_autoscaling_v2beta1_ContainerResourcePolicy(ref), "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference": schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref), "k8s.io/api/autoscaling/v2beta1.ExternalMetricSource": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ExternalMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricStatus(ref), @@ -428,19 +428,10 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "k8s.io/api/autoscaling/v2beta1.MetricStatus": schema_k8sio_api_autoscaling_v2beta1_MetricStatus(ref), "k8s.io/api/autoscaling/v2beta1.ObjectMetricSource": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ObjectMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.PodResourcePolicy": schema_k8sio_api_autoscaling_v2beta1_PodResourcePolicy(ref), - "k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy": schema_k8sio_api_autoscaling_v2beta1_PodUpdatePolicy(ref), "k8s.io/api/autoscaling/v2beta1.PodsMetricSource": schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.PodsMetricStatus": schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources": schema_k8sio_api_autoscaling_v2beta1_RecommendedContainerResources(ref), - "k8s.io/api/autoscaling/v2beta1.RecommendedPodResources": schema_k8sio_api_autoscaling_v2beta1_RecommendedPodResources(ref), "k8s.io/api/autoscaling/v2beta1.ResourceMetricSource": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref), "k8s.io/api/autoscaling/v2beta1.ResourceMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscaler(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerCondition(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerList": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerList(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerSpec(ref), - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus": schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerStatus(ref), "k8s.io/api/batch/v1.Job": schema_k8sio_api_batch_v1_Job(ref), "k8s.io/api/batch/v1.JobCondition": schema_k8sio_api_batch_v1_JobCondition(ref), "k8s.io/api/batch/v1.JobList": schema_k8sio_api_batch_v1_JobList(ref), @@ -20050,60 +20041,6 @@ func schema_k8sio_api_autoscaling_v1_ScaleStatus(ref common.ReferenceCallback) c } } -func schema_k8sio_api_autoscaling_v2beta1_ContainerResourcePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.", - Properties: map[string]spec.Schema{ - "containerName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don't have their own policy specified.", - Type: []string{"string"}, - Format: "", - }, - }, - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "Whether autoscaler is enabled for the container. The default is \"Auto\".", - Type: []string{"string"}, - Format: "", - }, - }, - "minAllowed": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "maxAllowed": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -20638,59 +20575,6 @@ func schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref common.Referenc } } -func schema_k8sio_api_autoscaling_v2beta1_PodResourcePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodResourcePolicy controls how autoscaler computes the recommended resources for containers belonging to the pod. There can be at most one entry for every named container and optionally a single wildcard entry with `containerName` = '*', which handles all containers that don't have individual policies.", - Properties: map[string]spec.Schema{ - "containerPolicies": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "containerName", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Per-container resource policies.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.ContainerResourcePolicy"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_PodUpdatePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodUpdatePolicy describes the rules on how changes are applied to the pods.", - Properties: map[string]spec.Schema{ - "updateMode": { - SchemaProps: spec.SchemaProps{ - Description: "Controls when autoscaler applies changes to the pod resources. The default is 'Auto'.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -20747,94 +20631,6 @@ func schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref common.ReferenceC } } -func schema_k8sio_api_autoscaling_v2beta1_RecommendedContainerResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RecommendedContainerResources is the recommendation of resources computed by autoscaler for a specific container. Respects the container resource policy if present in the spec. In particular the recommendation is not produced for containers with `ContainerScalingMode` set to 'Off'.", - Properties: map[string]spec.Schema{ - "containerName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the container.", - Type: []string{"string"}, - Format: "", - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "Recommended amount of resources.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "lowerBound": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum recommended amount of resources. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "upperBound": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum recommended amount of resources. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"target"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_RecommendedPodResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RecommendedPodResources is the recommendation of resources computed by autoscaler. It contains a recommendation for each container in the pod (except for those with `ContainerScalingMode` set to 'Off').", - Properties: map[string]spec.Schema{ - "containerRecommendations": { - SchemaProps: spec.SchemaProps{ - Description: "Resources recommended by the autoscaler for each container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.RecommendedContainerResources"}, - } -} - func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -20905,222 +20701,6 @@ func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref common.Refere } } -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscaler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscaler is the configuration for a vertical pod autoscaler, which automatically manages pod resources based on historical and real time resource utilization.", - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the behavior of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Current information about the autoscaler.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerSpec", "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerCondition describes the state of a VerticalPodAutoscaler at a certain point.", - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type describes the current condition", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition (True, False, Unknown)", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is the reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable explanation containing details about the transition", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects.", - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of vertical pod autoscaler objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscaler", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler.", - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query that determines the set of pods controlled by the Autoscaler. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "updatePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Describes the rules on how changes are applied to the pods. If not specified, all fields in the `PodUpdatePolicy` are set to their default values.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy"), - }, - }, - "resourcePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodResourcePolicy"), - }, - }, - }, - Required: []string{"selector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.PodResourcePolicy", "k8s.io/api/autoscaling/v2beta1.PodUpdatePolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_VerticalPodAutoscalerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VerticalPodAutoscalerStatus describes the runtime state of the autoscaler.", - Properties: map[string]spec.Schema{ - "recommendation": { - SchemaProps: spec.SchemaProps{ - Description: "The most recently computed amount of resources recommended by the autoscaler for the controlled pods.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.RecommendedPodResources"), - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.RecommendedPodResources", "k8s.io/api/autoscaling/v2beta1.VerticalPodAutoscalerCondition"}, - } -} - func schema_k8sio_api_batch_v1_Job(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -39129,19 +38709,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSON(ref common.ReferenceCallback) co return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - Properties: map[string]spec.Schema{ - "Raw": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - Required: []string{"Raw"}, + Type: v1beta1.JSON{}.OpenAPISchemaType(), + Format: v1beta1.JSON{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{}, } } @@ -39427,31 +38998,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray(ref common.Ref return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - Properties: map[string]spec.Schema{ - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - "JSONSchemas": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - }, - Required: []string{"Schema", "JSONSchemas"}, + Type: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -39459,25 +39009,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool(ref common.Refe return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - Properties: map[string]spec.Schema{ - "Allows": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - Required: []string{"Allows", "Schema"}, + Type: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -39485,32 +39020,10 @@ func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray(ref comm return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - Properties: map[string]spec.Schema{ - "Schema": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - "Property": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"Schema", "Property"}, + Type: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaType(), + Format: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaFormat(), }, }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, } } @@ -44112,13 +43625,6 @@ func schema_pkg_apis_componentconfig_v1alpha1_KubeCloudSharedConfiguration(ref c Format: "", }, }, - "serviceAccountKeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key used to sign service account tokens.", - Type: []string{"string"}, - Format: "", - }, - }, "nodeSyncPeriod": { SchemaProps: spec.SchemaProps{ Description: "nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer periods will result in fewer calls to cloud provider, but may delay addition of new nodes to cluster.", @@ -44126,7 +43632,7 @@ func schema_pkg_apis_componentconfig_v1alpha1_KubeCloudSharedConfiguration(ref c }, }, }, - Required: []string{"port", "address", "useServiceAccountCredentials", "allowUntaggedCloud", "routeReconciliationPeriod", "nodeMonitorPeriod", "clusterName", "clusterCIDR", "allocateNodeCIDRs", "cIDRAllocatorType", "configureCloudRoutes", "serviceAccountKeyFile", "nodeSyncPeriod"}, + Required: []string{"port", "address", "useServiceAccountCredentials", "allowUntaggedCloud", "routeReconciliationPeriod", "nodeMonitorPeriod", "clusterName", "clusterCIDR", "allocateNodeCIDRs", "cIDRAllocatorType", "configureCloudRoutes", "nodeSyncPeriod"}, }, }, Dependencies: []string{ @@ -44832,6 +44338,13 @@ func schema_pkg_apis_componentconfig_v1alpha1_SAControllerConfiguration(ref comm Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Properties: map[string]spec.Schema{ + "serviceAccountKeyFile": { + SchemaProps: spec.SchemaProps{ + Description: "serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key used to sign service account tokens.", + Type: []string{"string"}, + Format: "", + }, + }, "concurrentSATokenSyncs": { SchemaProps: spec.SchemaProps{ Description: "concurrentSATokenSyncs is the number of service account token syncing operations that will be done concurrently.", @@ -44847,7 +44360,7 @@ func schema_pkg_apis_componentconfig_v1alpha1_SAControllerConfiguration(ref comm }, }, }, - Required: []string{"concurrentSATokenSyncs", "rootCAFile"}, + Required: []string{"serviceAccountKeyFile", "concurrentSATokenSyncs", "rootCAFile"}, }, }, Dependencies: []string{}, @@ -46156,7 +45669,7 @@ func schema_proxy_apis_kubeproxyconfig_v1alpha1_KubeProxyIPVSConfiguration(ref c Format: "", }, }, - "ExcludeCIDRs": { + "excludeCIDRs": { SchemaProps: spec.SchemaProps{ Description: "excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch when cleaning up ipvs services.", Type: []string{"array"}, @@ -46171,7 +45684,7 @@ func schema_proxy_apis_kubeproxyconfig_v1alpha1_KubeProxyIPVSConfiguration(ref c }, }, }, - Required: []string{"syncPeriod", "minSyncPeriod", "scheduler", "ExcludeCIDRs"}, + Required: []string{"syncPeriod", "minSyncPeriod", "scheduler", "excludeCIDRs"}, }, }, Dependencies: []string{ diff --git a/test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml b/test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml index 12b02e1001e6..91ff96b55a05 100644 --- a/test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml +++ b/test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml @@ -5957,6 +5957,7 @@ items: verbs: - create - delete + - get - list - watch - apiGroups: diff --git a/test/testdata/bootstrappolicy/bootstrap_policy_file.yaml b/test/testdata/bootstrappolicy/bootstrap_policy_file.yaml index 7c6b433b59e1..47b732877f1a 100644 --- a/test/testdata/bootstrappolicy/bootstrap_policy_file.yaml +++ b/test/testdata/bootstrappolicy/bootstrap_policy_file.yaml @@ -5957,6 +5957,7 @@ items: verbs: - create - delete + - get - list - watch - apiGroups: From 403f02f43f5760563cc2043527b291c4b0752905 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 2 Jul 2018 11:48:41 -0400 Subject: [PATCH 4/5] UPSTREAM: : coerce string->int, empty object -> slice for backwards compatibility Drop in some future release --- .../pkg/runtime/serializer/json/json_patch.go | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_patch.go diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_patch.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_patch.go new file mode 100644 index 000000000000..da4c9c73c336 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json_patch.go @@ -0,0 +1,130 @@ +package json + +import ( + "reflect" + "strconv" + "unsafe" + + jsoniter "github.com/json-iterator/go" + "github.com/modern-go/reflect2" +) + +func init() { + // TODO: drop in 4.0 + jsoniter.RegisterExtension(&coercerExtension{}) +} + +type coercerExtension struct { + jsoniter.DummyExtension +} + +func (*coercerExtension) DecorateDecoder(typ reflect2.Type, decoder jsoniter.ValDecoder) jsoniter.ValDecoder { + switch typ.Kind() { + case reflect.Int8, reflect.Uint8, reflect.Int16, reflect.Uint16, reflect.Int32, reflect.Uint32, reflect.Int64, reflect.Uint64, reflect.Int, reflect.Uint: + return &intCoercer{typ.Kind(), decoder} + case reflect.Slice: + return &sliceCoercer{decoder} + default: + return decoder + } +} + +// intCoercer attempts to parse strings to integer fields. drop in 4.0. +type intCoercer struct { + kind reflect.Kind + jsoniter.ValDecoder +} + +func (c *intCoercer) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) { + switch iter.WhatIsNext() { + case jsoniter.StringValue: + var str string + iter.ReadVal(&str) + switch c.kind { + case reflect.Int8: + if i, err := strconv.ParseInt(str, 10, 8); err == nil { + *(*int8)(ptr) = int8(i) + } else { + iter.ReportError("read int8", "unexpected character: \"") + } + case reflect.Int16: + if i, err := strconv.ParseInt(str, 10, 16); err == nil { + *(*int16)(ptr) = int16(i) + } else { + iter.ReportError("read int16", "unexpected character: \"") + } + case reflect.Int32: + if i, err := strconv.ParseInt(str, 10, 32); err == nil { + *(*int32)(ptr) = int32(i) + } else { + iter.ReportError("read int32", "unexpected character: \"") + } + case reflect.Int64: + if i, err := strconv.ParseInt(str, 10, 64); err == nil { + *(*int64)(ptr) = int64(i) + } else { + iter.ReportError("read int64", "unexpected character: \"") + } + case reflect.Int: + if i, err := strconv.ParseInt(str, 10, 64); err == nil { + *(*int)(ptr) = int(i) + } else { + iter.ReportError("read int", "unexpected character: \"") + } + + case reflect.Uint8: + if i, err := strconv.ParseUint(str, 10, 8); err == nil { + *(*uint8)(ptr) = uint8(i) + } else { + iter.ReportError("read uint8", "unexpected character: \"") + } + case reflect.Uint16: + if i, err := strconv.ParseUint(str, 10, 16); err == nil { + *(*uint16)(ptr) = uint16(i) + } else { + iter.ReportError("read uint16", "unexpected character: \"") + } + case reflect.Uint32: + if i, err := strconv.ParseUint(str, 10, 32); err == nil { + *(*uint32)(ptr) = uint32(i) + } else { + iter.ReportError("read uint32", "unexpected character: \"") + } + case reflect.Uint64: + if i, err := strconv.ParseUint(str, 10, 64); err == nil { + *(*uint64)(ptr) = uint64(i) + } else { + iter.ReportError("read uint16", "unexpected character: \"") + } + case reflect.Uint: + if i, err := strconv.ParseUint(str, 10, 64); err == nil { + *(*uint)(ptr) = uint(i) + } else { + iter.ReportError("read uint", "unexpected character: \"") + } + + default: + iter.ReportError("read number", "unexpected character: \"") + } + default: + c.ValDecoder.Decode(ptr, iter) + } +} + +// sliceCoercer tolerates empty object values (`{}`) for slice fields. drop in 4.0. +type sliceCoercer struct { + jsoniter.ValDecoder +} + +func (c *sliceCoercer) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) { + switch iter.WhatIsNext() { + case jsoniter.ObjectValue: + var obj map[string]interface{} + iter.ReadVal(&obj) + if len(obj) > 0 { + iter.ReportError("decode slice", "expect [ or n, but found {") + } + default: + c.ValDecoder.Decode(ptr, iter) + } +} From 3506509ecdd6d65a3cdd5e7a3fb99d56eb0c4869 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 2 Jul 2018 11:49:11 -0400 Subject: [PATCH 5/5] Add tests to ensure type coercion handles errors correctly --- pkg/api/compatibility_test.go | 63 ++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/pkg/api/compatibility_test.go b/pkg/api/compatibility_test.go index 2b8c9b4bb267..e8bb038ef92c 100644 --- a/pkg/api/compatibility_test.go +++ b/pkg/api/compatibility_test.go @@ -116,15 +116,17 @@ func TestAllowedGrouplessVersion(t *testing.T) { func TestAllowedTypeCoercion(t *testing.T) { ten := int64(10) + twenty := int32(10) testcases := []struct { - name string - input []byte - into runtime.Object - expected runtime.Object + name string + input []byte + into runtime.Object + expected runtime.Object + expectedErr string }{ { - name: "string to number", + name: "string to int64", input: []byte(`{ "kind":"Pod", "apiVersion":"v1", @@ -135,6 +137,36 @@ func TestAllowedTypeCoercion(t *testing.T) { Spec: v1.PodSpec{ActiveDeadlineSeconds: &ten}, }, }, + { + name: "string to int64 malformed", + input: []byte(`{ + "kind":"Pod", + "apiVersion":"v1", + "spec":{"activeDeadlineSeconds":"1.1"} + }`), + expectedErr: "read int64: unexpected character: \"", + }, + { + name: "string to int32", + input: []byte(`{ + "kind":"Pod", + "apiVersion":"v1", + "spec":{"priority":"10"} + }`), + expected: &v1.Pod{ + TypeMeta: metav1.TypeMeta{Kind: "Pod", APIVersion: "v1"}, + Spec: v1.PodSpec{Priority: &twenty}, + }, + }, + { + name: "string to int32 malformed", + input: []byte(`{ + "kind":"Pod", + "apiVersion":"v1", + "spec":{"priority":"1.1"} + }`), + expectedErr: "read int32: unexpected character: \"", + }, { name: "empty object to array", input: []byte(`{ @@ -144,9 +176,18 @@ func TestAllowedTypeCoercion(t *testing.T) { }`), expected: &v1.Pod{ TypeMeta: metav1.TypeMeta{Kind: "Pod", APIVersion: "v1"}, - Spec: v1.PodSpec{Containers: []v1.Container{}}, + Spec: v1.PodSpec{Containers: nil}, }, }, + { + name: "non-empty object to array fails", + input: []byte(`{ + "kind":"Pod", + "apiVersion":"v1", + "spec":{"containers":{"name":"somevalue"}} + }`), + expectedErr: "v1.PodSpec.Containers: decode slice: expect [ or n, but found {", + }, } for i := range testcases { @@ -155,8 +196,14 @@ func TestAllowedTypeCoercion(t *testing.T) { t.Run(tc.name, func(t *testing.T) { s := jsonserializer.NewSerializer(jsonserializer.DefaultMetaFactory, legacyscheme.Scheme, legacyscheme.Scheme, false) obj, _, err := s.Decode(tc.input, nil, tc.into) - if err != nil { - t.Error(err) + if err != nil || len(tc.expectedErr) > 0 { + if len(tc.expectedErr) == 0 { + t.Error(err) + } else if err == nil { + t.Errorf("expected error %q, got none", tc.expectedErr) + } else if !strings.Contains(err.Error(), tc.expectedErr) { + t.Errorf("expected error %q, got %q", tc.expectedErr, err.Error()) + } return } if !reflect.DeepEqual(obj, tc.expected) {