diff --git a/VERSION b/VERSION index 3872197cfa..e81fa2f70d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.18.14-dev \ No newline at end of file +v1.18.17-dev \ No newline at end of file diff --git a/go.mod b/go.mod index 5190f895fe..c1bc5c483f 100644 --- a/go.mod +++ b/go.mod @@ -3,31 +3,31 @@ module k8s.io/cloud-provider-gcp go 1.13 replace ( - // these replacements are pinned to 62876fc6d93e which is the sha associated with the 1.18.13 tag on k/k - // as you cannot pin them to v1.18.13 directly - k8s.io/api => k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20201204114159-4c00c3c45926 - k8s.io/apiextensions-apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20201204114159-4c00c3c45926 - k8s.io/apimachinery => k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20201204114159-4c00c3c45926 - k8s.io/apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20201204114159-4c00c3c45926 - k8s.io/cli-runtime => k8s.io/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20201204114159-4c00c3c45926 - k8s.io/client-go => k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20201204114159-4c00c3c45926 - k8s.io/cloud-provider => k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20201204114159-4c00c3c45926 - k8s.io/cluster-bootstrap => k8s.io/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20201204114159-4c00c3c45926 - k8s.io/code-generator => k8s.io/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20201204114159-4c00c3c45926 - k8s.io/component-base => k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20201204114159-4c00c3c45926 - k8s.io/cri-api => k8s.io/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20201204114159-4c00c3c45926 - k8s.io/csi-translation-lib => k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kube-aggregator => k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kube-controller-manager => k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kube-proxy => k8s.io/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kube-scheduler => k8s.io/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kubectl => k8s.io/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20201204114159-4c00c3c45926 - k8s.io/kubelet => k8s.io/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20201204114159-4c00c3c45926 - k8s.io/legacy-cloud-providers => k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20201204114159-4c00c3c45926 - k8s.io/metrics => k8s.io/kubernetes/staging/src/k8s.io/metrics v0.0.0-20201204114159-4c00c3c45926 - k8s.io/sample-apiserver => k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20201204114159-4c00c3c45926 - k8s.io/sample-cli-plugin => k8s.io/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20201204114159-4c00c3c45926 - k8s.io/sample-controller => k8s.io/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20201204114159-4c00c3c45926 + // these replacements are pinned to 68b4e26caf6e which is the sha associated with the 1.18.17 tag on k/k + // as you cannot pin them to v1.18.17 directly + k8s.io/api => k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20210318005318-68b4e26caf6e + k8s.io/apiextensions-apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210318005318-68b4e26caf6e + k8s.io/apimachinery => k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210318005318-68b4e26caf6e + k8s.io/apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210318005318-68b4e26caf6e + k8s.io/cli-runtime => k8s.io/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210318005318-68b4e26caf6e + k8s.io/client-go => k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210318005318-68b4e26caf6e + k8s.io/cloud-provider => k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210318005318-68b4e26caf6e + k8s.io/cluster-bootstrap => k8s.io/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210318005318-68b4e26caf6e + k8s.io/code-generator => k8s.io/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210318005318-68b4e26caf6e + k8s.io/component-base => k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210318005318-68b4e26caf6e + k8s.io/cri-api => k8s.io/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210318005318-68b4e26caf6e + k8s.io/csi-translation-lib => k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kube-aggregator => k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kube-controller-manager => k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kube-proxy => k8s.io/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kube-scheduler => k8s.io/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kubectl => k8s.io/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210318005318-68b4e26caf6e + k8s.io/kubelet => k8s.io/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210318005318-68b4e26caf6e + k8s.io/legacy-cloud-providers => k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210318005318-68b4e26caf6e + k8s.io/metrics => k8s.io/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210318005318-68b4e26caf6e + k8s.io/sample-apiserver => k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210318005318-68b4e26caf6e + k8s.io/sample-cli-plugin => k8s.io/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20210318005318-68b4e26caf6e + k8s.io/sample-controller => k8s.io/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20210318005318-68b4e26caf6e ) require ( @@ -42,7 +42,7 @@ require ( k8s.io/cloud-provider v0.0.0 k8s.io/component-base v0.0.0 k8s.io/klog v1.0.0 - k8s.io/kubernetes v1.18.13 + k8s.io/kubernetes v1.18.17 k8s.io/legacy-cloud-providers v0.0.0 k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 ) diff --git a/go.sum b/go.sum index 19678c9abf..b717b1787c 100644 --- a/go.sum +++ b/go.sum @@ -789,37 +789,37 @@ k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6 h1:Oh3Mzx5pJ+yIumsAD0MOECPVeXsVot0UkiaCGVyfGQY= k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= -k8s.io/kubernetes v1.18.13 h1:E0P69TV94DYh3uA9KMNjsKnVBZm37ufRRCocKkOWozA= -k8s.io/kubernetes v1.18.13/go.mod h1:1uB7+7NGbXMLX7XOjMcXnk2Lc1v2J3NcBFDUTn1JkX8= -k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20201204114159-4c00c3c45926 h1:77QkiAOyJWd3vnIqDk81lPDB4P6CCzXjAZ7mYehqAxk= -k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20201204114159-4c00c3c45926/go.mod h1:oMzWB6/RPBLYAObltLVSu5Ms1ZztBe7G8s1ni2rZY7w= -k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20201204114159-4c00c3c45926/go.mod h1:BVIYewlEVCukQBRrZR3Kms8GdCsDQBsRIBCoy3rwzMk= -k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20201204114159-4c00c3c45926 h1:7Oaq+oJno6L5AbDkfk3f3LxntKAJpl6I7M69oe55Ao4= -k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20201204114159-4c00c3c45926/go.mod h1:O0RN84lOQdMpi45vcplXjrN0t9ijoRZZFQcDwzfiN4o= -k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20201204114159-4c00c3c45926 h1:9ImYsIaI8r+ho0W9qKwOVYSOoE2yrr4ywesadql29vg= -k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20201204114159-4c00c3c45926/go.mod h1:PAkjvu2+ZaJ0h190VdCJCbQjb+QqVk6xlaDlUkkxlxw= -k8s.io/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20201204114159-4c00c3c45926/go.mod h1:tQWQ35D+zCpe30tdF2SPVPsDvRsfnnaV7AfT5iQyoVE= -k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20201204114159-4c00c3c45926 h1:SML831QN470LtMaT6139RZCD+gUBRLo0v0mVLq8mtpw= -k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20201204114159-4c00c3c45926/go.mod h1:BZvMIT9kFoTauzRMi2SzP8eU6nwxgYfyIw2sWpEbFos= -k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20201204114159-4c00c3c45926 h1:kSlhgck4HzXd/FUq5CzciZ1wUXDyIjGUHSEqBd0OtRw= -k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20201204114159-4c00c3c45926/go.mod h1:jW0IWD1v1cNcp/vvXbVuovmZNSieKSZBdM7VmX1lrVI= -k8s.io/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20201204114159-4c00c3c45926/go.mod h1:oHXhD/NqW/vlYggpTUWbP2x6disww69H1jdsyirbJl8= -k8s.io/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20201204114159-4c00c3c45926/go.mod h1:qBtAbyavqI3lGwEvxrQk9wwUTWntOADx38Iizyn31nw= -k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20201204114159-4c00c3c45926 h1:rcwIRQcWlK9UzTbQ1wLXICRAJ70SaQ71SiYI+lUuVP0= -k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20201204114159-4c00c3c45926/go.mod h1:zRlCznOsLYdwq5DB2b/26X/n/04fhV3U3rMC60t80/Q= -k8s.io/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20201204114159-4c00c3c45926/go.mod h1:O3AtmT8iqccYwp/fsXdy3h0N9X/yfvRMD2XS48PJrBk= -k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20201204114159-4c00c3c45926/go.mod h1:/YQL/PqGdoNbC2H+w4tx2zrVdxNb541lW3PA81FdOlE= -k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20201204114159-4c00c3c45926/go.mod h1:NcOKzNVVRhmkQmzCcBHfPPcZqgGXouc/o3Eul3saPj8= -k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20201204114159-4c00c3c45926 h1:yer3FsCopkpBBPVbRUC0gY5/iF1RH506TH7rMHc67cU= -k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20201204114159-4c00c3c45926/go.mod h1:pABoR/v0r2aJLFC1570FaaRJbXyiHhqdGHe5W8nk0XY= -k8s.io/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20201204114159-4c00c3c45926/go.mod h1:GLAmLACy/nOND24DRGKyPH21F89pTcevjPRxEtbLJmU= -k8s.io/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20201204114159-4c00c3c45926/go.mod h1:UNQ/Ff/Mq9mmCl0MYGl3ciCEIRQr9BT+/DSsoy6/ZMI= -k8s.io/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20201204114159-4c00c3c45926/go.mod h1:fhYoYA0NMwnn7+22+HDfGm0COfeDzxagvttB/vRtotA= -k8s.io/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20201204114159-4c00c3c45926/go.mod h1:Raj75cxSm9NiVBoLk/lB1D4XvpBzTG4WoJ6nIH8Cyew= -k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20201204114159-4c00c3c45926 h1:gv8OL9MYjI+osJDEnNP6s7yTk/kJDhog6TLUm1pVfhw= -k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20201204114159-4c00c3c45926/go.mod h1:R6lK1g14jiec20OVuA1ArvsCKs5th4rxGL3eUMdQmyA= -k8s.io/kubernetes/staging/src/k8s.io/metrics v0.0.0-20201204114159-4c00c3c45926/go.mod h1:xZM9EdJpWjqIWPvLiCP7vYKUEMwIgc0S8nc/MlLVK3Y= -k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20201204114159-4c00c3c45926/go.mod h1:p8OmVbdzpawdZ/r9E1qcdJpzRirEg4OcSg8aZVWqvJo= +k8s.io/kubernetes v1.18.17 h1:N7HZ5CtpocQ1LNq9RrD/hcP+xfM6ZnYJ32kUqzb4E5Q= +k8s.io/kubernetes v1.18.17/go.mod h1:1uB7+7NGbXMLX7XOjMcXnk2Lc1v2J3NcBFDUTn1JkX8= +k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20210318005318-68b4e26caf6e h1:1/LLuYYkWXO8MIgGgHhWE+/wNr9/irP0kfdUAUegQU0= +k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:oMzWB6/RPBLYAObltLVSu5Ms1ZztBe7G8s1ni2rZY7w= +k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:BVIYewlEVCukQBRrZR3Kms8GdCsDQBsRIBCoy3rwzMk= +k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210318005318-68b4e26caf6e h1:aKyMQqZOiizY9oFIoOz9jhxEEHjTFGefQ9ymR1mZaPQ= +k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:O0RN84lOQdMpi45vcplXjrN0t9ijoRZZFQcDwzfiN4o= +k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210318005318-68b4e26caf6e h1:zMHt3DouZEh8CsQVzOf3PTlnnDRZ0D/AkKwM4ldi8jI= +k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:PAkjvu2+ZaJ0h190VdCJCbQjb+QqVk6xlaDlUkkxlxw= +k8s.io/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:tQWQ35D+zCpe30tdF2SPVPsDvRsfnnaV7AfT5iQyoVE= +k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210318005318-68b4e26caf6e h1:+RjoGfvrgxDFVHKKaKCP7wcpAaiogCwdULLMhR6DvnU= +k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:BZvMIT9kFoTauzRMi2SzP8eU6nwxgYfyIw2sWpEbFos= +k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210318005318-68b4e26caf6e h1:Mh3GULSpVsUwz/opi6ffdu7+42gT/eWv5V0+S8w6YAQ= +k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:jW0IWD1v1cNcp/vvXbVuovmZNSieKSZBdM7VmX1lrVI= +k8s.io/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:oHXhD/NqW/vlYggpTUWbP2x6disww69H1jdsyirbJl8= +k8s.io/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:qBtAbyavqI3lGwEvxrQk9wwUTWntOADx38Iizyn31nw= +k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210318005318-68b4e26caf6e h1:Ww9i+LezSAJvwwmgi4M3NqIdrXjCgJrAbkQLau4MiyE= +k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:zRlCznOsLYdwq5DB2b/26X/n/04fhV3U3rMC60t80/Q= +k8s.io/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:O3AtmT8iqccYwp/fsXdy3h0N9X/yfvRMD2XS48PJrBk= +k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:/YQL/PqGdoNbC2H+w4tx2zrVdxNb541lW3PA81FdOlE= +k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:NcOKzNVVRhmkQmzCcBHfPPcZqgGXouc/o3Eul3saPj8= +k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210318005318-68b4e26caf6e h1:L8CQRM1EkG/lMxwmlk7XGZtOeVILzhWbNjaK6ycZIoM= +k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:pABoR/v0r2aJLFC1570FaaRJbXyiHhqdGHe5W8nk0XY= +k8s.io/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:GLAmLACy/nOND24DRGKyPH21F89pTcevjPRxEtbLJmU= +k8s.io/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:UNQ/Ff/Mq9mmCl0MYGl3ciCEIRQr9BT+/DSsoy6/ZMI= +k8s.io/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:fhYoYA0NMwnn7+22+HDfGm0COfeDzxagvttB/vRtotA= +k8s.io/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:Raj75cxSm9NiVBoLk/lB1D4XvpBzTG4WoJ6nIH8Cyew= +k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210318005318-68b4e26caf6e h1:PN6HZmmrAap1Ubusw4PxX7Rs+mtQqGn4BhtZ2fAHnUk= +k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:R6lK1g14jiec20OVuA1ArvsCKs5th4rxGL3eUMdQmyA= +k8s.io/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:xZM9EdJpWjqIWPvLiCP7vYKUEMwIgc0S8nc/MlLVK3Y= +k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210318005318-68b4e26caf6e/go.mod h1:p8OmVbdzpawdZ/r9E1qcdJpzRirEg4OcSg8aZVWqvJo= k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8= k8s.io/system-validators v1.0.4/go.mod h1:HgSgTg4NAGNoYYjKsUyk52gdNi2PVDswQ9Iyn66R7NI= k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU= diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go index b7c59cfc54..65cb389e51 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go @@ -96,9 +96,11 @@ func SerializeObject(mediaType string, encoder runtime.Encoder, hw http.Response err := encoder.Encode(object, w) if err == nil { err = w.Close() - if err == nil { - return + if err != nil { + // we cannot write an error to the writer anymore as the Encode call was successful. + utilruntime.HandleError(fmt.Errorf("apiserver was unable to close cleanly the response writer: %v", err)) } + return } // make a best effort to write the object if a failure is detected diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD index 2f6a55b510..f6bea6e950 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD @@ -19,6 +19,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", @@ -73,6 +74,7 @@ go_test( "//staging/src/k8s.io/api/flowcontrol/v1alpha1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS new file mode 100644 index 0000000000..50a230fcad --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +reviewers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +labels: +- sig/api-machinery +- area/apiserver diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go index 6e3280a055..60499354ee 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/labels" apitypes "k8s.io/apimachinery/pkg/types" apierrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" fcboot "k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap" "k8s.io/apiserver/pkg/authentication/user" @@ -221,14 +222,28 @@ func (cfgCtl *configController) initializeConfigController(informerFactory kubei }}) } +// used from the unit tests only. +func (cfgCtl *configController) getPriorityLevelState(plName string) *priorityLevelState { + cfgCtl.lock.Lock() + defer cfgCtl.lock.Unlock() + return cfgCtl.priorityLevelStates[plName] +} + func (cfgCtl *configController) Run(stopCh <-chan struct{}) error { + defer utilruntime.HandleCrash() + + // Let the config worker stop when we are done defer cfgCtl.configQueue.ShutDown() + klog.Info("Starting API Priority and Fairness config controller") if ok := cache.WaitForCacheSync(stopCh, cfgCtl.plInformerSynced, cfgCtl.fsInformerSynced); !ok { return fmt.Errorf("Never achieved initial sync") } + klog.Info("Running API Priority and Fairness config worker") - wait.Until(cfgCtl.runWorker, time.Second, stopCh) + go wait.Until(cfgCtl.runWorker, time.Second, stopCh) + + <-stopCh klog.Info("Shutting down API Priority and Fairness config worker") return nil } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go index 812ecaf2d2..3ebaf748d3 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go @@ -98,21 +98,28 @@ func (cfgCtl *configController) Handle(ctx context.Context, requestDigest Reques } klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v", requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued) var executed bool - idle := req.Finish(func() { + idle, panicking := true, true + defer func() { + klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v, Finish() => panicking=%v idle=%v", + requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued, panicking, idle) + if idle { + cfgCtl.maybeReap(pl.Name) + } + }() + idle = req.Finish(func() { if queued { metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } metrics.AddDispatch(pl.Name, fs.Name) executed = true startExecutionTime := time.Now() + defer func() { + metrics.ObserveExecutionDuration(pl.Name, fs.Name, time.Since(startExecutionTime)) + }() execFn() - metrics.ObserveExecutionDuration(pl.Name, fs.Name, time.Since(startExecutionTime)) }) if queued && !executed { metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } - klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v, Finish() => idle=%v", requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued, idle) - if idle { - cfgCtl.maybeReap(pl.Name) - } + panicking = false } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go index 8a7e72b5f8..df526a97f6 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go @@ -299,8 +299,15 @@ func (req *request) Finish(execFn func()) bool { if !exec { return idle } - execFn() - return req.qs.finishRequestAndDispatchAsMuchAsPossible(req) + func() { + defer func() { + idle = req.qs.finishRequestAndDispatchAsMuchAsPossible(req) + }() + + execFn() + }() + + return idle } func (req *request) wait() (bool, bool) { diff --git a/vendor/k8s.io/client-go/transport/round_trippers.go b/vendor/k8s.io/client-go/transport/round_trippers.go index a272753ae2..abfb7ad6cb 100644 --- a/vendor/k8s.io/client-go/transport/round_trippers.go +++ b/vendor/k8s.io/client-go/transport/round_trippers.go @@ -340,6 +340,7 @@ func (r *requestInfo) toCurl() string { headers := "" for key, values := range r.RequestHeaders { for _, value := range values { + value = maskValue(key, value) headers += fmt.Sprintf(` -H %q`, fmt.Sprintf("%s: %s", key, value)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go b/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go index 1457e37ed8..744d76bddb 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go +++ b/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go @@ -82,11 +82,23 @@ func VisitContainers(podSpec *v1.PodSpec, visitor ContainerVisitor) bool { // Visitor is called with each object name, and returns true if visiting should continue type Visitor func(name string) (shouldContinue bool) +func skipEmptyNames(visitor Visitor) Visitor { + return func(name string) bool { + if len(name) == 0 { + // continue visiting + return true + } + // delegate to visitor + return visitor(name) + } +} + // VisitPodSecretNames invokes the visitor function with the name of every secret // referenced by the pod spec. If visitor returns false, visiting is short-circuited. // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodSecretNames(pod *v1.Pod, visitor Visitor) bool { + visitor = skipEmptyNames(visitor) for _, reference := range pod.Spec.ImagePullSecrets { if !visitor(reference.Name) { return false @@ -176,6 +188,7 @@ func visitContainerSecretNames(container *v1.Container, visitor Visitor) bool { // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodConfigmapNames(pod *v1.Pod, visitor Visitor) bool { + visitor = skipEmptyNames(visitor) VisitContainers(&pod.Spec, func(c *v1.Container) bool { return visitContainerConfigmapNames(c, visitor) }) diff --git a/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index 4973d55eac..1c86b759a7 100644 --- a/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -158,6 +158,12 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v return nil, err } klog.V(2).Infof("ensureInternalLoadBalancer(%v): reserved IP %q for the forwarding rule", loadBalancerName, ipToUse) + defer func() { + // Release the address if all resources were created successfully, or if we error out. + if err := addrMgr.ReleaseAddress(); err != nil { + klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) + } + }() } // Ensure firewall rules if necessary @@ -197,13 +203,6 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v g.clearPreviousInternalResources(svc, loadBalancerName, existingBackendService, backendServiceName, hcName) } - if addrMgr != nil { - // Now that the controller knows the forwarding rule exists, we can release the address. - if err := addrMgr.ReleaseAddress(); err != nil { - klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) - } - } - // Get the most recent forwarding rule for the address. updatedFwdRule, err := g.GetRegionForwardingRule(loadBalancerName, g.region) if err != nil { diff --git a/vendor/modules.txt b/vendor/modules.txt index 9040b2b91e..058fcc1c66 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -298,7 +298,7 @@ gopkg.in/square/go-jose.v2/jwt gopkg.in/warnings.v0 # gopkg.in/yaml.v2 v2.2.8 gopkg.in/yaml.v2 -# k8s.io/api v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/api v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20210318005318-68b4e26caf6e k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 k8s.io/api/admissionregistration/v1 @@ -341,7 +341,7 @@ k8s.io/api/settings/v1alpha1 k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 -# k8s.io/apimachinery v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/apimachinery v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210318005318-68b4e26caf6e k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/api/meta @@ -394,7 +394,7 @@ k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/apiserver v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210318005318-68b4e26caf6e k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission/configuration k8s.io/apiserver/pkg/admission/initializer @@ -516,7 +516,7 @@ k8s.io/apiserver/plugin/pkg/audit/truncate k8s.io/apiserver/plugin/pkg/audit/webhook k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authorizer/webhook -# k8s.io/client-go v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/client-go v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210318005318-68b4e26caf6e k8s.io/client-go/discovery k8s.io/client-go/discovery/fake k8s.io/client-go/informers @@ -729,7 +729,7 @@ k8s.io/client-go/util/homedir k8s.io/client-go/util/keyutil k8s.io/client-go/util/retry k8s.io/client-go/util/workqueue -# k8s.io/cloud-provider v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/cloud-provider v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210318005318-68b4e26caf6e k8s.io/cloud-provider k8s.io/cloud-provider/api k8s.io/cloud-provider/node/helpers @@ -737,7 +737,7 @@ k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/volume k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/helpers -# k8s.io/component-base v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/component-base v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210318005318-68b4e26caf6e k8s.io/component-base/cli/flag k8s.io/component-base/cli/globalflag k8s.io/component-base/config @@ -757,7 +757,7 @@ k8s.io/component-base/version k8s.io/component-base/version/verflag # k8s.io/klog v1.0.0 k8s.io/klog -# k8s.io/kube-controller-manager v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/kube-controller-manager v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210318005318-68b4e26caf6e k8s.io/kube-controller-manager/config/v1alpha1 # k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6 k8s.io/kube-openapi/pkg/builder @@ -766,7 +766,7 @@ k8s.io/kube-openapi/pkg/handler k8s.io/kube-openapi/pkg/schemaconv k8s.io/kube-openapi/pkg/util k8s.io/kube-openapi/pkg/util/proto -# k8s.io/kubernetes v1.18.13 +# k8s.io/kubernetes v1.18.17 k8s.io/kubernetes/cmd/cloud-controller-manager/app k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config/scheme @@ -853,7 +853,7 @@ k8s.io/kubernetes/pkg/util/hash k8s.io/kubernetes/pkg/util/node k8s.io/kubernetes/pkg/util/parsers k8s.io/kubernetes/pkg/util/taints -# k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20201204114159-4c00c3c45926 +# k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210318005318-68b4e26caf6e k8s.io/legacy-cloud-providers/gce # k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 k8s.io/utils/buffer