updated gems and versions
This commit is contained in:
commit
cee9deb12c
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
If you're looking for help check [Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes) and the [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/).
|
||||
|
||||
If this may be security issue, please disclose it privately via https://kubernetes.io/security/.
|
||||
If the matter is security related, please disclose it privately via https://kubernetes.io/security/.
|
||||
-->
|
||||
|
||||
**Is this a BUG REPORT or FEATURE REQUEST?**:
|
||||
|
@ -1,30 +1,37 @@
|
||||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.10.3](#v1103)
|
||||
- [Downloads for v1.10.3](#downloads-for-v1103)
|
||||
- [v1.10.4](#v1104)
|
||||
- [Downloads for v1.10.4](#downloads-for-v1104)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Node Binaries](#node-binaries)
|
||||
- [Changelog since v1.10.2](#changelog-since-v1102)
|
||||
- [Changelog since v1.10.3](#changelog-since-v1103)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.10.2](#v1102)
|
||||
- [Downloads for v1.10.2](#downloads-for-v1102)
|
||||
- [v1.10.3](#v1103)
|
||||
- [Downloads for v1.10.3](#downloads-for-v1103)
|
||||
- [Client Binaries](#client-binaries-1)
|
||||
- [Server Binaries](#server-binaries-1)
|
||||
- [Node Binaries](#node-binaries-1)
|
||||
- [Changelog since v1.10.1](#changelog-since-v1101)
|
||||
- [Changelog since v1.10.2](#changelog-since-v1102)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.10.1](#v1101)
|
||||
- [Downloads for v1.10.1](#downloads-for-v1101)
|
||||
- [v1.10.2](#v1102)
|
||||
- [Downloads for v1.10.2](#downloads-for-v1102)
|
||||
- [Client Binaries](#client-binaries-2)
|
||||
- [Server Binaries](#server-binaries-2)
|
||||
- [Node Binaries](#node-binaries-2)
|
||||
- [Changelog since v1.10.0](#changelog-since-v1100)
|
||||
- [Changelog since v1.10.1](#changelog-since-v1101)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.10.0](#v1100)
|
||||
- [Downloads for v1.10.0](#downloads-for-v1100)
|
||||
- [v1.10.1](#v1101)
|
||||
- [Downloads for v1.10.1](#downloads-for-v1101)
|
||||
- [Client Binaries](#client-binaries-3)
|
||||
- [Server Binaries](#server-binaries-3)
|
||||
- [Node Binaries](#node-binaries-3)
|
||||
- [Changelog since v1.10.0](#changelog-since-v1100)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
- [v1.10.0](#v1100)
|
||||
- [Downloads for v1.10.0](#downloads-for-v1100)
|
||||
- [Client Binaries](#client-binaries-4)
|
||||
- [Server Binaries](#server-binaries-4)
|
||||
- [Node Binaries](#node-binaries-4)
|
||||
- [Major Themes](#major-themes)
|
||||
- [Node](#node)
|
||||
- [Storage](#storage)
|
||||
@ -38,7 +45,7 @@
|
||||
- [Before Upgrading](#before-upgrading)
|
||||
- [Known Issues](#known-issues)
|
||||
- [Deprecations](#deprecations)
|
||||
- [Other Notable Changes](#other-notable-changes-3)
|
||||
- [Other Notable Changes](#other-notable-changes-4)
|
||||
- [Apps](#apps)
|
||||
- [AWS](#aws)
|
||||
- [Auth](#auth-1)
|
||||
@ -61,69 +68,144 @@
|
||||
- [External Dependencies](#external-dependencies)
|
||||
- [v1.10.0-rc.1](#v1100-rc1)
|
||||
- [Downloads for v1.10.0-rc.1](#downloads-for-v1100-rc1)
|
||||
- [Client Binaries](#client-binaries-4)
|
||||
- [Server Binaries](#server-binaries-4)
|
||||
- [Node Binaries](#node-binaries-4)
|
||||
- [Changelog since v1.10.0-beta.4](#changelog-since-v1100-beta4)
|
||||
- [Other notable changes](#other-notable-changes-4)
|
||||
- [v1.10.0-beta.4](#v1100-beta4)
|
||||
- [Downloads for v1.10.0-beta.4](#downloads-for-v1100-beta4)
|
||||
- [Client Binaries](#client-binaries-5)
|
||||
- [Server Binaries](#server-binaries-5)
|
||||
- [Node Binaries](#node-binaries-5)
|
||||
- [Changelog since v1.10.0-beta.3](#changelog-since-v1100-beta3)
|
||||
- [Changelog since v1.10.0-beta.4](#changelog-since-v1100-beta4)
|
||||
- [Other notable changes](#other-notable-changes-5)
|
||||
- [v1.10.0-beta.3](#v1100-beta3)
|
||||
- [Downloads for v1.10.0-beta.3](#downloads-for-v1100-beta3)
|
||||
- [v1.10.0-beta.4](#v1100-beta4)
|
||||
- [Downloads for v1.10.0-beta.4](#downloads-for-v1100-beta4)
|
||||
- [Client Binaries](#client-binaries-6)
|
||||
- [Server Binaries](#server-binaries-6)
|
||||
- [Node Binaries](#node-binaries-6)
|
||||
- [Changelog since v1.10.0-beta.2](#changelog-since-v1100-beta2)
|
||||
- [Changelog since v1.10.0-beta.3](#changelog-since-v1100-beta3)
|
||||
- [Other notable changes](#other-notable-changes-6)
|
||||
- [v1.10.0-beta.2](#v1100-beta2)
|
||||
- [Downloads for v1.10.0-beta.2](#downloads-for-v1100-beta2)
|
||||
- [v1.10.0-beta.3](#v1100-beta3)
|
||||
- [Downloads for v1.10.0-beta.3](#downloads-for-v1100-beta3)
|
||||
- [Client Binaries](#client-binaries-7)
|
||||
- [Server Binaries](#server-binaries-7)
|
||||
- [Node Binaries](#node-binaries-7)
|
||||
- [Changelog since v1.10.0-beta.1](#changelog-since-v1100-beta1)
|
||||
- [Action Required](#action-required)
|
||||
- [Changelog since v1.10.0-beta.2](#changelog-since-v1100-beta2)
|
||||
- [Other notable changes](#other-notable-changes-7)
|
||||
- [v1.10.0-beta.1](#v1100-beta1)
|
||||
- [Downloads for v1.10.0-beta.1](#downloads-for-v1100-beta1)
|
||||
- [v1.10.0-beta.2](#v1100-beta2)
|
||||
- [Downloads for v1.10.0-beta.2](#downloads-for-v1100-beta2)
|
||||
- [Client Binaries](#client-binaries-8)
|
||||
- [Server Binaries](#server-binaries-8)
|
||||
- [Node Binaries](#node-binaries-8)
|
||||
- [Changelog since v1.10.0-alpha.3](#changelog-since-v1100-alpha3)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Changelog since v1.10.0-beta.1](#changelog-since-v1100-beta1)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes-8)
|
||||
- [v1.10.0-alpha.3](#v1100-alpha3)
|
||||
- [Downloads for v1.10.0-alpha.3](#downloads-for-v1100-alpha3)
|
||||
- [v1.10.0-beta.1](#v1100-beta1)
|
||||
- [Downloads for v1.10.0-beta.1](#downloads-for-v1100-beta1)
|
||||
- [Client Binaries](#client-binaries-9)
|
||||
- [Server Binaries](#server-binaries-9)
|
||||
- [Node Binaries](#node-binaries-9)
|
||||
- [Changelog since v1.10.0-alpha.2](#changelog-since-v1100-alpha2)
|
||||
- [Changelog since v1.10.0-alpha.3](#changelog-since-v1100-alpha3)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Other notable changes](#other-notable-changes-9)
|
||||
- [v1.10.0-alpha.2](#v1100-alpha2)
|
||||
- [Downloads for v1.10.0-alpha.2](#downloads-for-v1100-alpha2)
|
||||
- [v1.10.0-alpha.3](#v1100-alpha3)
|
||||
- [Downloads for v1.10.0-alpha.3](#downloads-for-v1100-alpha3)
|
||||
- [Client Binaries](#client-binaries-10)
|
||||
- [Server Binaries](#server-binaries-10)
|
||||
- [Node Binaries](#node-binaries-10)
|
||||
- [Changelog since v1.10.0-alpha.1](#changelog-since-v1100-alpha1)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Changelog since v1.10.0-alpha.2](#changelog-since-v1100-alpha2)
|
||||
- [Other notable changes](#other-notable-changes-10)
|
||||
- [v1.10.0-alpha.1](#v1100-alpha1)
|
||||
- [Downloads for v1.10.0-alpha.1](#downloads-for-v1100-alpha1)
|
||||
- [v1.10.0-alpha.2](#v1100-alpha2)
|
||||
- [Downloads for v1.10.0-alpha.2](#downloads-for-v1100-alpha2)
|
||||
- [Client Binaries](#client-binaries-11)
|
||||
- [Server Binaries](#server-binaries-11)
|
||||
- [Node Binaries](#node-binaries-11)
|
||||
- [Changelog since v1.10.0-alpha.1](#changelog-since-v1100-alpha1)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-11)
|
||||
- [v1.10.0-alpha.1](#v1100-alpha1)
|
||||
- [Downloads for v1.10.0-alpha.1](#downloads-for-v1100-alpha1)
|
||||
- [Client Binaries](#client-binaries-12)
|
||||
- [Server Binaries](#server-binaries-12)
|
||||
- [Node Binaries](#node-binaries-12)
|
||||
- [Changelog since v1.9.0](#changelog-since-v190)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Other notable changes](#other-notable-changes-11)
|
||||
- [Other notable changes](#other-notable-changes-12)
|
||||
<!-- END MUNGE: GENERATED_TOC -->
|
||||
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# v1.10.4
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.10/examples)
|
||||
|
||||
## Downloads for v1.10.4
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes.tar.gz) | `b6e04c7c95ec9cfe6463ccc0863cd7c5dc874409ce2c3dd130809ea3e22ec39d`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-src.tar.gz) | `fd93b9cf0f7735e85a90674f90a7b943539774406ac21ea351789bd5d5f32649`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-darwin-386.tar.gz) | `1beadf6a6031bb461b34b9286e652e5ff79f4373dfa8ee8489f02b42b741d69d`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-darwin-amd64.tar.gz) | `dbbb0f6d29002f8cfee39ffe61bcec74341916927ee7f2d2e41f18689364936f`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-386.tar.gz) | `00363c5438dc049b26257dcf97f012bc0dc5844aa7804633d2dc077c9814d9b7`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-amd64.tar.gz) | `2831fe621bf1542a1eac38b8f50aa40a96b26153e850b3ff7155e5ce4f4f400e`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-arm.tar.gz) | `ca98be6e14e697e7dc3aa2f0f83422ed6bc466efaaf19139c84c6cb74f79477a`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-arm64.tar.gz) | `444cddd2c0b2c7ab37f8c4786723c1c940fdcf52c24edefd992ad707e9628360`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-ppc64le.tar.gz) | `f7ac9c508634c77a54e8a0b71684bbe454e3ddb325ff6c4450e8d013e90a7e7f`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-linux-s390x.tar.gz) | `ed5440b893e0e39eb2d09a4b32e072e6e51ec8aef6e674d6620e3e1c23b1715d`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-windows-386.tar.gz) | `80207e67c741a6fb30073fd5890edfd3e21ff9dc5560b802d8601e82d062b029`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-client-windows-amd64.tar.gz) | `7ada21ad4c0e10939f0bbb16ec3dc5c6d9329eff75e943eecca2461d0f874eb1`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-server-linux-amd64.tar.gz) | `e2381459ba91674b5e5cc10c8e8d6dc910e71874d01165ca07a94188edc8505e`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-server-linux-arm.tar.gz) | `c48cc7a90c57f3fa73de1362ef5f64542e11eb31290569b190e716c03f09ca39`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-server-linux-arm64.tar.gz) | `1ab1d282935be7e775ee07aab720c9bc8da6157386fc3d91565214cbc16debf1`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-server-linux-ppc64le.tar.gz) | `a64bb8c60e094cb03e29413bc83b6177caa07f786f43e52a8d748147138321c3`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-server-linux-s390x.tar.gz) | `5e96c974df9e41ca12a6ba0796227af48df6d6d6c5256abb7e39c0002504714e`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-linux-amd64.tar.gz) | `40b8bc76cb4a2676d02169e26f43d39198f6e41297f22ef07e1984feac3879b3`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-linux-arm.tar.gz) | `7d818b1fcf82a74de401936db1cd4704e52b594658c9be6c760b3c5ca2e49c01`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-linux-arm64.tar.gz) | `41e4fb14acaec64b7b79fd0c938a2c2c5b914de8b007afe3ffb0eb1c3e2d7f0e`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-linux-ppc64le.tar.gz) | `a22095e62acbcea4ea4d95e500eaa10d30db529b8b0465b67b44bd53a3df628f`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-linux-s390x.tar.gz) | `bfe8e8890d2ed5511cf4cbc9908b603a1b0610d7847c7c272011028b382f71de`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.10.4/kubernetes-node-windows-amd64.tar.gz) | `f9d9b614febf3c787c02e661bfc7a54cbff9a0ef0d260d43fe03190f13bdf065`
|
||||
|
||||
## Changelog since v1.10.3
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* 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))
|
||||
* Fixed CSI gRPC connection leak during volume operations. ([#64519](https://github.com/kubernetes/kubernetes/pull/64519), [@vladimirvivien](https://github.com/vladimirvivien))
|
||||
* In case StorageObjectInUse feature is disabled and Persistent Volume (PV) or Persistent Volume Claim (PVC) contains a finalizer and the PV or PVC is deleted it is not automatically removed from the system. Now, it is automatically removed. ([#62938](https://github.com/kubernetes/kubernetes/pull/62938), [@pospispa](https://github.com/pospispa))
|
||||
* Fixed SELinux relabeling of CSI volumes. ([#64026](https://github.com/kubernetes/kubernetes/pull/64026), [@jsafrane](https://github.com/jsafrane))
|
||||
* Fixed error reporting of CSI volumes attachment. ([#63303](https://github.com/kubernetes/kubernetes/pull/63303), [@jsafrane](https://github.com/jsafrane))
|
||||
* fix azure file size grow issue ([#64383](https://github.com/kubernetes/kubernetes/pull/64383), [@andyzhangx](https://github.com/andyzhangx))
|
||||
* Fixed detach of already detached CSI volumes. ([#63295](https://github.com/kubernetes/kubernetes/pull/63295), [@jsafrane](https://github.com/jsafrane))
|
||||
* Update event-exporter to version v0.2.0 that supports old (gke_container/gce_instance) and new (k8s_container/k8s_node/k8s_pod) stackdriver resources. ([#63918](https://github.com/kubernetes/kubernetes/pull/63918), [@cezarygerard](https://github.com/cezarygerard))
|
||||
* Fix issue of colliding nodePorts when the cluster has services with externalTrafficPolicy=Local ([#64349](https://github.com/kubernetes/kubernetes/pull/64349), [@nicksardo](https://github.com/nicksardo))
|
||||
* Update nvidia-gpu-device-plugin DaemonSet config to use RollingUpdate updateStrategy instead of OnDelete. ([#64296](https://github.com/kubernetes/kubernetes/pull/64296), [@mindprince](https://github.com/mindprince))
|
||||
* kubeadm will no longer generate an unused etcd CA and certificates when configured to use an external etcd cluster. ([#63806](https://github.com/kubernetes/kubernetes/pull/63806), [@detiber](https://github.com/detiber))
|
||||
* Fix incorrectly propagated ResourceVersion in ListRequests returning 0 items. ([#64150](https://github.com/kubernetes/kubernetes/pull/64150), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* Fix SessionAffinity not updated issue for Azure load balancer ([#64180](https://github.com/kubernetes/kubernetes/pull/64180), [@feiskyer](https://github.com/feiskyer))
|
||||
* Fixes a hang on kubelet startup when using systemd cgroup driver of libcontainer. ([#61926](https://github.com/kubernetes/kubernetes/pull/61926), [@filbranden](https://github.com/filbranden))
|
||||
* Prevent 1.10 e2es testing deprecated CAdvisorPort in v1.11 ([#64184](https://github.com/kubernetes/kubernetes/pull/64184), [@dixudx](https://github.com/dixudx))
|
||||
* GCE: Fix to make the built-in `kubernetes` service properly point to the master's load balancer address in clusters that use multiple master VMs. ([#63696](https://github.com/kubernetes/kubernetes/pull/63696), [@grosskur](https://github.com/grosskur))
|
||||
* etcd client add dial timeout. ([#61459](https://github.com/kubernetes/kubernetes/pull/61459), [@hzxuzhonghu](https://github.com/hzxuzhonghu))
|
||||
* nil admission options are now consistent with other nil options. ([#63993](https://github.com/kubernetes/kubernetes/pull/63993), [@tamalsaha](https://github.com/tamalsaha))
|
||||
* Add a way to pass extra arguments to etcd. ([#63961](https://github.com/kubernetes/kubernetes/pull/63961), [@mborsz](https://github.com/mborsz))
|
||||
* kubeadm: surface external etcd preflight validation errors ([#60585](https://github.com/kubernetes/kubernetes/pull/60585), [@alexbrand](https://github.com/alexbrand))
|
||||
|
||||
|
||||
|
||||
# v1.10.3
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.10/examples)
|
||||
|
@ -1,24 +1,408 @@
|
||||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.11.0-alpha.2](#v1110-alpha2)
|
||||
- [Downloads for v1.11.0-alpha.2](#downloads-for-v1110-alpha2)
|
||||
- [v1.11.0-beta.2](#v1110-beta2)
|
||||
- [Downloads for v1.11.0-beta.2](#downloads-for-v1110-beta2)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Node Binaries](#node-binaries)
|
||||
- [Changelog since v1.11.0-alpha.1](#changelog-since-v1110-alpha1)
|
||||
- [Changelog since v1.11.0-beta.1](#changelog-since-v1110-beta1)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.11.0-alpha.1](#v1110-alpha1)
|
||||
- [Downloads for v1.11.0-alpha.1](#downloads-for-v1110-alpha1)
|
||||
- [v1.11.0-beta.1](#v1110-beta1)
|
||||
- [Downloads for v1.11.0-beta.1](#downloads-for-v1110-beta1)
|
||||
- [Client Binaries](#client-binaries-1)
|
||||
- [Server Binaries](#server-binaries-1)
|
||||
- [Node Binaries](#node-binaries-1)
|
||||
- [Changelog since v1.10.0](#changelog-since-v1100)
|
||||
- [Action Required](#action-required)
|
||||
- [Changelog since v1.11.0-alpha.2](#changelog-since-v1110-alpha2)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.11.0-alpha.2](#v1110-alpha2)
|
||||
- [Downloads for v1.11.0-alpha.2](#downloads-for-v1110-alpha2)
|
||||
- [Client Binaries](#client-binaries-2)
|
||||
- [Server Binaries](#server-binaries-2)
|
||||
- [Node Binaries](#node-binaries-2)
|
||||
- [Changelog since v1.11.0-alpha.1](#changelog-since-v1110-alpha1)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.11.0-alpha.1](#v1110-alpha1)
|
||||
- [Downloads for v1.11.0-alpha.1](#downloads-for-v1110-alpha1)
|
||||
- [Client Binaries](#client-binaries-3)
|
||||
- [Server Binaries](#server-binaries-3)
|
||||
- [Node Binaries](#node-binaries-3)
|
||||
- [Changelog since v1.10.0](#changelog-since-v1100)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
<!-- END MUNGE: GENERATED_TOC -->
|
||||
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# 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)
|
||||
|
||||
## Downloads for v1.11.0-beta.1
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes.tar.gz) | `3209303a10ca8dd311c500ee858b9151b43c1bb5c2b3a9fb9281722e021d6871`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-src.tar.gz) | `c2e4d3b1beb4cd0b2a775394a30da2c2949d380e57f729dc48c541069c103326`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-darwin-386.tar.gz) | `cbded4d58b3d2cbeb2e43c48c9dd359834c9c9aa376751a7f8960be45601fb40`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-darwin-amd64.tar.gz) | `ceccd21fda90b96865801053f1784d4062d69b11e2e911483223860dfe6c3a17`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-386.tar.gz) | `75c9794a7f43f891aa839b2571fa44ffced25197578adc31b4c3cb28d7fbf158`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-amd64.tar.gz) | `184905f6b8b856306483d811d015cf0b28c0703ceb372594622732da2a07989f`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-arm.tar.gz) | `2d985829499588d32483d7c6a36b3b0f2b6d4031eda31c65b066b77bc51bae66`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-arm64.tar.gz) | `268556ede751058162a42d0156f27e42e37b23d60b2485e350cffe6e1b376fa4`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-ppc64le.tar.gz) | `8859bd7a37bf5a659eb17e47d2c54d228950b2ef48243c93f11799c455789983`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-linux-s390x.tar.gz) | `90bbe2fc45ae722a05270820336b9178baaab198401bb6888e817afe6a1a304e`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-windows-386.tar.gz) | `948b01f555abfc30990345004d5ce679d4b9d0a32d699a50b6d8309040b2b2f2`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-client-windows-amd64.tar.gz) | `091e9d4e7fa611cf06d2907d159e0cc36ae8602403ad0819d62df4ddbaba6095`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-server-linux-amd64.tar.gz) | `727a5e8241035d631d90f3d119a27384abe93cde14c242c4d2d1cf948f84a650`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-server-linux-arm.tar.gz) | `6eb7479348e9480d9d1ee31dc991297b93e076dd21b567c595f82d45b66ef949`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-server-linux-arm64.tar.gz) | `9eab5ccdfba2803a743ed12b4323ad0e8e0215779edf5752224103b6667a35c1`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-server-linux-ppc64le.tar.gz) | `d86b07ee28ed3d2c0668a2737fff4b3d025d4cd7b6f1aadc85f8f13b4c12e578`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-server-linux-s390x.tar.gz) | `c2d19acb88684a52a74f469ab26874ab224023f29290865e08c86338d30dd598`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-linux-amd64.tar.gz) | `2957bf3e9dc9cd9570597434909e5ef03e996f8443c02f9d95fa6de2cd17126f`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-linux-arm.tar.gz) | `5995b8b9628fca9eaa92c283cfb4199ab353efa8953b980eec994f49ac3a0ebd`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-linux-arm64.tar.gz) | `996691b3b894ec9769be1ee45c5053ff1560e3ef161de8f8b9ac067c0d3559d3`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-linux-ppc64le.tar.gz) | `8bb7fe72ec704afa5ad96356787972144b0f7923fc68678894424f1f62da7041`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-linux-s390x.tar.gz) | `4c1f0314ad60537c8a7866b0cabdece21284ee91ae692d1999b3d5273ee7cbaf`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.11.0-beta.1/kubernetes-node-windows-amd64.tar.gz) | `158832f41cd452f93482cc8a8f1dd69cc243eb63ce3581e7f2eab2de323f6202`
|
||||
|
||||
## Changelog since v1.11.0-alpha.2
|
||||
|
||||
### Action Required
|
||||
|
||||
* [action required] `.NodeName` and `.CRISocket` in the `MasterConfiguration` and `NodeConfiguration` v1alpha1 API objects are now `.NodeRegistration.Name` and `.NodeRegistration.CRISocket` respectively in the v1alpha2 API. The `.NoTaintMaster` field has been removed in the v1alpha2 API. ([#64210](https://github.com/kubernetes/kubernetes/pull/64210), [@luxas](https://github.com/luxas))
|
||||
* (ACTION REQUIRED) PersisntVolumeLabel admission controller is now disabled by default. If you depend on this feature (AWS/GCE) then ensure it is added to the `--enable-admission-plugins` flag on the kube-apiserver. ([#64326](https://github.com/kubernetes/kubernetes/pull/64326), [@andrewsykim](https://github.com/andrewsykim))
|
||||
* [action required] kubeadm: The `:Etcd` struct has been refactored in the v1alpha2 API. All the options now reside under either `.Etcd.Local` or `.Etcd.External`. Automatic conversions from the v1alpha1 API are supported. ([#64066](https://github.com/kubernetes/kubernetes/pull/64066), [@luxas](https://github.com/luxas))
|
||||
* [action required] kubeadm: kubelets in kubeadm clusters now disable the readonly port (10255). If you're relying on unauthenticated access to the readonly port, please switch to using the secure port (10250). Instead, you can now use ServiceAccount tokens when talking to the secure port, which will make it easier to get access to e.g. the `/metrics` endpoint of the kubelet securely. ([#64187](https://github.com/kubernetes/kubernetes/pull/64187), [@luxas](https://github.com/luxas))
|
||||
* [action required] kubeadm: Support for `.AuthorizationModes` in the kubeadm v1alpha2 API has been removed. Instead, you can use the `.APIServerExtraArgs` and `.APIServerExtraVolumes` fields to achieve the same effect. Files using the v1alpha1 API and setting this field will be automatically upgraded to this v1alpha2 API and the information will be preserved. ([#64068](https://github.com/kubernetes/kubernetes/pull/64068), [@luxas](https://github.com/luxas))
|
||||
* [action required] The formerly publicly-available cAdvisor web UI that the kubelet ran on port 4194 by default is now turned off by default. The flag configuring what port to run this UI on `--cadvisor-port` was deprecated in v1.10. Now the default is `--cadvisor-port=0`, in other words, to not run the web server. The recommended way to run cAdvisor if you still need it, is via a DaemonSet. The `--cadvisor-port` will be removed in v1.12 ([#63881](https://github.com/kubernetes/kubernetes/pull/63881), [@luxas](https://github.com/luxas))
|
||||
* [action required] kubeadm: The `.ImagePullPolicy` field has been removed in the v1alpha2 API version. Instead it's set statically to `IfNotPresent` for all required images. If you want to always pull the latest images before cluster init (like what `Always` would do), run `kubeadm config images pull` before each `kubeadm init`. If you don't want the kubelet to pull any images at `kubeadm init` time, as you for instance don't have an internet connection, you can also run `kubeadm config images pull` before `kubeadm init` or side-load the images some other way (e.g. `docker load -i image.tar`). Having the images locally cached will result in no pull at runtime, which makes it possible to run without any internet connection. ([#64096](https://github.com/kubernetes/kubernetes/pull/64096), [@luxas](https://github.com/luxas))
|
||||
* [action required] In the new v1alpha2 kubeadm Configuration API, the `.CloudProvider` and `.PrivilegedPods` fields don't exist anymore. ([#63866](https://github.com/kubernetes/kubernetes/pull/63866), [@luxas](https://github.com/luxas))
|
||||
* Instead, you should use the out-of-tree cloud provider implementations which are beta in v1.11.
|
||||
* If you have to use the legacy in-tree cloud providers, you can rearrange your config like the example below. In case you need the `cloud-config` file (located in `{cloud-config-path}`), you can mount it into the API Server and controller-manager containers using ExtraVolumes like the example below.
|
||||
* If you need to use the `.PrivilegedPods` functionality, you can still edit the manifests in
|
||||
* `/etc/kubernetes/manifests/`, and set `.SecurityContext.Privileged=true` for the apiserver
|
||||
* and controller manager.
|
||||
* ---
|
||||
* kind: MasterConfiguration
|
||||
* apiVersion: kubeadm.k8s.io/v1alpha2
|
||||
* apiServerExtraArgs:
|
||||
* cloud-provider: "{cloud}"
|
||||
* cloud-config: "{cloud-config-path}"
|
||||
* apiServerExtraVolumes:
|
||||
* - name: cloud
|
||||
* hostPath: "{cloud-config-path}"
|
||||
* mountPath: "{cloud-config-path}"
|
||||
* controllerManagerExtraArgs:
|
||||
* cloud-provider: "{cloud}"
|
||||
* cloud-config: "{cloud-config-path}"
|
||||
* controllerManagerExtraVolumes:
|
||||
* - name: cloud
|
||||
* hostPath: "{cloud-config-path}"
|
||||
* mountPath: "{cloud-config-path}"
|
||||
* ---
|
||||
* [action required] kubeadm now uses an upgraded API version for the configuration file, `kubeadm.k8s.io/v1alpha2`. kubeadm in v1.11 will still be able to read `v1alpha1` configuration, and will automatically convert the configuration to `v1alpha2` internally and when storing the configuration in the ConfigMap in the cluster. ([#63788](https://github.com/kubernetes/kubernetes/pull/63788), [@luxas](https://github.com/luxas))
|
||||
* The annotation `service.alpha.kubernetes.io/tolerate-unready-endpoints` is deprecated. Users should use Service.spec.publishNotReadyAddresses instead. ([#63742](https://github.com/kubernetes/kubernetes/pull/63742), [@thockin](https://github.com/thockin))
|
||||
* avoid duplicate status in audit events ([#62695](https://github.com/kubernetes/kubernetes/pull/62695), [@CaoShuFeng](https://github.com/CaoShuFeng))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Remove rescheduler from master. ([#64364](https://github.com/kubernetes/kubernetes/pull/64364), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
* Declare IPVS-based kube-proxy GA ([#58442](https://github.com/kubernetes/kubernetes/pull/58442), [@m1093782566](https://github.com/m1093782566))
|
||||
* kubeadm: conditionally set the kubelet cgroup driver for Docker ([#64347](https://github.com/kubernetes/kubernetes/pull/64347), [@neolit123](https://github.com/neolit123))
|
||||
* kubectl built for darwin from darwin now enables cgo to use the system-native C libraries for DNS resolution. Cross-compiled kubectl (e.g. from an official kubernetes release) still uses the go-native netgo DNS implementation. ([#64219](https://github.com/kubernetes/kubernetes/pull/64219), [@ixdy](https://github.com/ixdy))
|
||||
* AWS EBS volumes can be now used as ReadOnly in pods. ([#64403](https://github.com/kubernetes/kubernetes/pull/64403), [@jsafrane](https://github.com/jsafrane))
|
||||
* Exec authenticator plugin supports TLS client certificates. ([#61803](https://github.com/kubernetes/kubernetes/pull/61803), [@awly](https://github.com/awly))
|
||||
* Use Patch instead of Put to sync pod status ([#62306](https://github.com/kubernetes/kubernetes/pull/62306), [@freehan](https://github.com/freehan))
|
||||
* kubectl apply --prune supports CronJob resource. ([#62991](https://github.com/kubernetes/kubernetes/pull/62991), [@tomoe](https://github.com/tomoe))
|
||||
* Label ExternalEtcdClientCertificates can be used for ignoring all preflight check issues related to client certificate files for external etcd. ([#64269](https://github.com/kubernetes/kubernetes/pull/64269), [@kad](https://github.com/kad))
|
||||
* Provide a meaningful error message in openstack cloud provider when no valid IP address can be found for a node ([#64318](https://github.com/kubernetes/kubernetes/pull/64318), [@gonzolino](https://github.com/gonzolino))
|
||||
* kubeadm: Add a 'kubeadm config migrate' command to convert old API types to their newer counterparts in the new, supported API types. This is just a client-side tool, it just executes locally without requiring a cluster to be running. You can think about this as an Unix pipe that upgrades config files. ([#64232](https://github.com/kubernetes/kubernetes/pull/64232), [@luxas](https://github.com/luxas))
|
||||
* The --dry-run flag has been enabled for kubectl auth reconcile ([#64458](https://github.com/kubernetes/kubernetes/pull/64458), [@mrogers950](https://github.com/mrogers950))
|
||||
* Add probe based mechanism for kubelet plugin discovery ([#63328](https://github.com/kubernetes/kubernetes/pull/63328), [@vikaschoudhary16](https://github.com/vikaschoudhary16))
|
||||
* Add Establishing Controller on CRDs to avoid race between Established condition and CRs actually served. In HA setups, the Established condition is delayed by 5 seconds. ([#63068](https://github.com/kubernetes/kubernetes/pull/63068), [@xmudrii](https://github.com/xmudrii))
|
||||
* CoreDNS is now v1.1.3 ([#64258](https://github.com/kubernetes/kubernetes/pull/64258), [@rajansandeep](https://github.com/rajansandeep))
|
||||
* kubeadm will pull required images during preflight checks if it cannot find them on the system ([#64105](https://github.com/kubernetes/kubernetes/pull/64105), [@chuckha](https://github.com/chuckha))
|
||||
* kubeadm: rename the addon parameter `kube-dns` to `coredns` for `kubeadm alpha phases addons` as CoreDNS is now the default DNS server in 1.11. ([#64274](https://github.com/kubernetes/kubernetes/pull/64274), [@neolit123](https://github.com/neolit123))
|
||||
* kubeadm: when starting the API server use the arguments --enable-admission-plugins and --disable-admission-plugins instead of the deprecated --admission-control. ([#64165](https://github.com/kubernetes/kubernetes/pull/64165), [@neolit123](https://github.com/neolit123))
|
||||
* Add spec.additionalPrinterColumns to CRDs to define server side printing columns. ([#60991](https://github.com/kubernetes/kubernetes/pull/60991), [@sttts](https://github.com/sttts))
|
||||
* fix azure file size grow issue ([#64383](https://github.com/kubernetes/kubernetes/pull/64383), [@andyzhangx](https://github.com/andyzhangx))
|
||||
* Fix issue of colliding nodePorts when the cluster has services with externalTrafficPolicy=Local ([#64349](https://github.com/kubernetes/kubernetes/pull/64349), [@nicksardo](https://github.com/nicksardo))
|
||||
* fixes a panic applying json patches containing out of bounds operations ([#64355](https://github.com/kubernetes/kubernetes/pull/64355), [@liggitt](https://github.com/liggitt))
|
||||
* Fail fast if cgroups-per-qos is set on Windows ([#62984](https://github.com/kubernetes/kubernetes/pull/62984), [@feiskyer](https://github.com/feiskyer))
|
||||
* Move Volume expansion to Beta ([#64288](https://github.com/kubernetes/kubernetes/pull/64288), [@gnufied](https://github.com/gnufied))
|
||||
* kubectl delete does not use reapers for removing objects anymore, but relies on server-side GC entirely ([#63979](https://github.com/kubernetes/kubernetes/pull/63979), [@soltysh](https://github.com/soltysh))
|
||||
* Basic plumbing for volume topology aware dynamic provisioning ([#63232](https://github.com/kubernetes/kubernetes/pull/63232), [@lichuqiang](https://github.com/lichuqiang))
|
||||
* API server properly parses propagationPolicy as a query parameter sent with a delete request ([#63414](https://github.com/kubernetes/kubernetes/pull/63414), [@roycaihw](https://github.com/roycaihw))
|
||||
* Property `serverAddressByClientCIDRs` in `metav1.APIGroup` (discovery API) now become optional instead of required ([#61963](https://github.com/kubernetes/kubernetes/pull/61963), [@roycaihw](https://github.com/roycaihw))
|
||||
* The dynamic Kubelet config feature is now beta, and the DynamicKubeletConfig feature gate is on by default. In order to use dynamic Kubelet config, ensure that the Kubelet's --dynamic-config-dir option is set. ([#64275](https://github.com/kubernetes/kubernetes/pull/64275), [@mtaufen](https://github.com/mtaufen))
|
||||
* Add reason message logs for non-exist Azure resources ([#64248](https://github.com/kubernetes/kubernetes/pull/64248), [@feiskyer](https://github.com/feiskyer))
|
||||
* Fix SessionAffinity not updated issue for Azure load balancer ([#64180](https://github.com/kubernetes/kubernetes/pull/64180), [@feiskyer](https://github.com/feiskyer))
|
||||
* The kube-apiserver openapi doc now includes extensions identifying APIService and CustomResourceDefinition kinds ([#64174](https://github.com/kubernetes/kubernetes/pull/64174), [@liggitt](https://github.com/liggitt))
|
||||
* apiservices/status and certificatesigningrequests/status now support GET and PATCH ([#64063](https://github.com/kubernetes/kubernetes/pull/64063), [@roycaihw](https://github.com/roycaihw))
|
||||
* kubectl: This client version requires the `apps/v1` APIs, so it will not work against a cluster version older than v1.9.0. Note that kubectl only guarantees compatibility with clusters that are +/-1 minor version away. ([#61419](https://github.com/kubernetes/kubernetes/pull/61419), [@enisoc](https://github.com/enisoc))
|
||||
* Correct the way we reset containers and pods in kubeadm via crictl ([#63862](https://github.com/kubernetes/kubernetes/pull/63862), [@runcom](https://github.com/runcom))
|
||||
* Allow env from resource with keys & updated tests ([#60636](https://github.com/kubernetes/kubernetes/pull/60636), [@PhilipGough](https://github.com/PhilipGough))
|
||||
* The kubelet certificate rotation feature can now be enabled via the `.RotateCertificates` field in the kubelet's config file. The `--rotate-certificates` flag is now deprecated, and will be removed in a future release. ([#63912](https://github.com/kubernetes/kubernetes/pull/63912), [@luxas](https://github.com/luxas))
|
||||
* Use DeleteOptions.PropagationPolicy instead of OrphanDependents in kubectl ([#59851](https://github.com/kubernetes/kubernetes/pull/59851), [@nilebox](https://github.com/nilebox))
|
||||
* add block device support for azure disk ([#63841](https://github.com/kubernetes/kubernetes/pull/63841), [@andyzhangx](https://github.com/andyzhangx))
|
||||
* Fix incorrectly propagated ResourceVersion in ListRequests returning 0 items. ([#64150](https://github.com/kubernetes/kubernetes/pull/64150), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* Changes ext3/ext4 volume creation to not reserve any portion of the volume for the root user. ([#64102](https://github.com/kubernetes/kubernetes/pull/64102), [@atombender](https://github.com/atombender))
|
||||
* Add CRD Versioning with NOP converter ([#63830](https://github.com/kubernetes/kubernetes/pull/63830), [@mbohlool](https://github.com/mbohlool))
|
||||
* adds a kubectl wait command ([#64034](https://github.com/kubernetes/kubernetes/pull/64034), [@deads2k](https://github.com/deads2k))
|
||||
* "kubeadm init" now writes a structured and versioned kubelet ComponentConfiguration file to `/var/lib/kubelet/config.yaml` and an environment file with runtime flags (you can source this file in the systemd kubelet dropin) to `/var/lib/kubelet/kubeadm-flags.env`. ([#63887](https://github.com/kubernetes/kubernetes/pull/63887), [@luxas](https://github.com/luxas))
|
||||
* `kubectl auth reconcile` only works with rbac.v1 ([#63967](https://github.com/kubernetes/kubernetes/pull/63967), [@deads2k](https://github.com/deads2k))
|
||||
* The dynamic Kubelet config feature will now update config in the event of a ConfigMap mutation, which reduces the chance for silent config skew. Only name, namespace, and kubeletConfigKey may now be set in Node.Spec.ConfigSource.ConfigMap. The least disruptive pattern for config management is still to create a new ConfigMap and incrementally roll out a new Node.Spec.ConfigSource. ([#63221](https://github.com/kubernetes/kubernetes/pull/63221), [@mtaufen](https://github.com/mtaufen))
|
||||
* Graduate CRI container log rotation to beta, and enable it by default. ([#64046](https://github.com/kubernetes/kubernetes/pull/64046), [@yujuhong](https://github.com/yujuhong))
|
||||
* APIServices with kube-like versions (e.g. v1, v2beta1, etc.) will be sorted appropriately within each group. ([#64004](https://github.com/kubernetes/kubernetes/pull/64004), [@mbohlool](https://github.com/mbohlool))
|
||||
* kubectl and client-go now detects duplicated name for user, cluster and context when loading kubeconfig and reports error ([#60464](https://github.com/kubernetes/kubernetes/pull/60464), [@roycaihw](https://github.com/roycaihw))
|
||||
* event object references with apiversion will now report an apiversion. ([#63913](https://github.com/kubernetes/kubernetes/pull/63913), [@deads2k](https://github.com/deads2k))
|
||||
* Subresources for custom resources is now beta and enabled by default. With this, updates to the `/status` subresource will disallow updates to all fields other than `.status` (not just `.spec` and `.metadata` as before). Also, `required` can be used at the root of the CRD OpenAPI validation schema when the `/status` subresource is enabled. ([#63598](https://github.com/kubernetes/kubernetes/pull/63598), [@nikhita](https://github.com/nikhita))
|
||||
* increase grpc client default response size ([#63977](https://github.com/kubernetes/kubernetes/pull/63977), [@runcom](https://github.com/runcom))
|
||||
* HTTP transport now uses `context.Context` to cancel dial operations. k8s.io/client-go/transport/Config struct has been updated to accept a function with a `context.Context` parameter. This is a breaking change if you use this field in your code. ([#60012](https://github.com/kubernetes/kubernetes/pull/60012), [@ash2k](https://github.com/ash2k))
|
||||
* Adds a mechanism in vSphere Cloud Provider to get credentials from Kubernetes secrets ([#63902](https://github.com/kubernetes/kubernetes/pull/63902), [@abrarshivani](https://github.com/abrarshivani))
|
||||
* kubeadm: A `kubeadm config print-default` command has now been added that you can use as a starting point when writing your own kubeadm configuration files ([#63969](https://github.com/kubernetes/kubernetes/pull/63969), [@luxas](https://github.com/luxas))
|
||||
* Update event-exporter to version v0.2.0 that supports old (gke_container/gce_instance) and new (k8s_container/k8s_node/k8s_pod) stackdriver resources. ([#63918](https://github.com/kubernetes/kubernetes/pull/63918), [@cezarygerard](https://github.com/cezarygerard))
|
||||
* Cluster Autoscaler 1.2.2 (release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.2.2) ([#63974](https://github.com/kubernetes/kubernetes/pull/63974), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))
|
||||
* Update kubeadm's minimum supported kubernetes in v1.11.x to 1.10 ([#63920](https://github.com/kubernetes/kubernetes/pull/63920), [@dixudx](https://github.com/dixudx))
|
||||
* Add 'UpdateStrategyType' and 'RollingUpdateStrategy' to 'kubectl describe sts' command output. ([#63844](https://github.com/kubernetes/kubernetes/pull/63844), [@tossmilestone](https://github.com/tossmilestone))
|
||||
* Remove UID mutation from request.context. ([#63957](https://github.com/kubernetes/kubernetes/pull/63957), [@hzxuzhonghu](https://github.com/hzxuzhonghu))
|
||||
* kubeadm has removed `.Etcd.SelfHosting` from its configuration API. It was never used in practice. ([#63871](https://github.com/kubernetes/kubernetes/pull/63871), [@luxas](https://github.com/luxas))
|
||||
* list/watch API requests with a fieldSelector that specifies `metadata.name` can now be authorized as requests for an individual named resource ([#63469](https://github.com/kubernetes/kubernetes/pull/63469), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* Add a way to pass extra arguments to etcd. ([#63961](https://github.com/kubernetes/kubernetes/pull/63961), [@mborsz](https://github.com/mborsz))
|
||||
* minor fix for VolumeZoneChecker predicate, storageclass can be in annotation and spec. ([#63749](https://github.com/kubernetes/kubernetes/pull/63749), [@wenlxie](https://github.com/wenlxie))
|
||||
* vSphere Cloud Provider: add SAML token authentication support ([#63824](https://github.com/kubernetes/kubernetes/pull/63824), [@dougm](https://github.com/dougm))
|
||||
* adds the `kubeadm upgrade diff` command to show how static pod manifests will be changed by an upgrade. ([#63930](https://github.com/kubernetes/kubernetes/pull/63930), [@liztio](https://github.com/liztio))
|
||||
* Fix memory cgroup notifications, and reduce associated log spam. ([#63220](https://github.com/kubernetes/kubernetes/pull/63220), [@dashpole](https://github.com/dashpole))
|
||||
* Adds a `kubeadm config images pull` command to pull container images used by kubeadm. ([#63833](https://github.com/kubernetes/kubernetes/pull/63833), [@chuckha](https://github.com/chuckha))
|
||||
* Restores the pre-1.10 behavior of the openstack cloud provider which uses the instance name as the Kubernetes Node name. This requires instances be named with RFC-1123 compatible names. ([#63903](https://github.com/kubernetes/kubernetes/pull/63903), [@liggitt](https://github.com/liggitt))
|
||||
* Added support for NFS relations on kubernetes-worker charm. ([#63817](https://github.com/kubernetes/kubernetes/pull/63817), [@hyperbolic2346](https://github.com/hyperbolic2346))
|
||||
* Stop using InfluxDB as default cluster monitoring ([#62328](https://github.com/kubernetes/kubernetes/pull/62328), [@serathius](https://github.com/serathius))
|
||||
* InfluxDB cluster monitoring is deprecated and will be removed in v1.12
|
||||
* GCE: Fix to make the built-in `kubernetes` service properly point to the master's load balancer address in clusters that use multiple master VMs. ([#63696](https://github.com/kubernetes/kubernetes/pull/63696), [@grosskur](https://github.com/grosskur))
|
||||
* Kubernetes cluster on GCE have crictl installed now. Users can use it to help debug their node. The documentation of crictl can be found https://github.com/kubernetes-incubator/cri-tools/blob/master/docs/crictl.md. ([#63357](https://github.com/kubernetes/kubernetes/pull/63357), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* The NodeRestriction admission plugin now prevents kubelets from modifying/removing taints applied to their Node API object. ([#63167](https://github.com/kubernetes/kubernetes/pull/63167), [@liggitt](https://github.com/liggitt))
|
||||
* The status of dynamic Kubelet config is now reported via Node.Status.Config, rather than the KubeletConfigOk node condition. ([#63314](https://github.com/kubernetes/kubernetes/pull/63314), [@mtaufen](https://github.com/mtaufen))
|
||||
* kubeadm now checks that IPv4/IPv6 forwarding is enabled ([#63872](https://github.com/kubernetes/kubernetes/pull/63872), [@kad](https://github.com/kad))
|
||||
* kubeadm will now deploy CoreDNS by default instead of KubeDNS ([#63509](https://github.com/kubernetes/kubernetes/pull/63509), [@detiber](https://github.com/detiber))
|
||||
* This PR will leverage subtests on the existing table tests for the scheduler units. ([#63658](https://github.com/kubernetes/kubernetes/pull/63658), [@xchapter7x](https://github.com/xchapter7x))
|
||||
* Some refactoring of error/status messages and functions to align with new approach.
|
||||
* kubeadm upgrade now supports external etcd setups again ([#63495](https://github.com/kubernetes/kubernetes/pull/63495), [@detiber](https://github.com/detiber))
|
||||
* fix mount unmount failure for a Windows pod ([#63272](https://github.com/kubernetes/kubernetes/pull/63272), [@andyzhangx](https://github.com/andyzhangx))
|
||||
* CRI: update documents for container logpath. The container log path has been changed from containername_attempt#.log to containername/attempt#.log ([#62015](https://github.com/kubernetes/kubernetes/pull/62015), [@feiskyer](https://github.com/feiskyer))
|
||||
* Create a new `dryRun` query parameter for mutating endpoints. If the parameter is set, then the query will be rejected, as the feature is not implemented yet. This will allow forward compatibility with future clients; otherwise, future clients talking with older apiservers might end up modifying a resource even if they include the `dryRun` query parameter. ([#63557](https://github.com/kubernetes/kubernetes/pull/63557), [@apelisse](https://github.com/apelisse))
|
||||
* kubelet: fix hangs in updating Node status after network interruptions/changes between the kubelet and API server ([#63492](https://github.com/kubernetes/kubernetes/pull/63492), [@liggitt](https://github.com/liggitt))
|
||||
* The `PriorityClass` API is promoted to `scheduling.k8s.io/v1beta1` ([#63100](https://github.com/kubernetes/kubernetes/pull/63100), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
* Services can listen on same host ports on different interfaces with --nodeport-addresses specified ([#62003](https://github.com/kubernetes/kubernetes/pull/62003), [@m1093782566](https://github.com/m1093782566))
|
||||
* kubeadm will no longer generate an unused etcd CA and certificates when configured to use an external etcd cluster. ([#63806](https://github.com/kubernetes/kubernetes/pull/63806), [@detiber](https://github.com/detiber))
|
||||
* corrects a race condition in bootstrapping aggregated cluster roles in new HA clusters ([#63761](https://github.com/kubernetes/kubernetes/pull/63761), [@liggitt](https://github.com/liggitt))
|
||||
* Adding initial Korean translation for kubectl ([#62040](https://github.com/kubernetes/kubernetes/pull/62040), [@ianychoi](https://github.com/ianychoi))
|
||||
* Report node DNS info with --node-ip flag ([#63170](https://github.com/kubernetes/kubernetes/pull/63170), [@micahhausler](https://github.com/micahhausler))
|
||||
* The old dynamic client has been replaced by a new one. The previous dynamic client will exist for one release in `client-go/deprecated-dynamic`. Switch as soon as possible. ([#63446](https://github.com/kubernetes/kubernetes/pull/63446), [@deads2k](https://github.com/deads2k))
|
||||
* CustomResourceDefinitions Status subresource now supports GET and PATCH ([#63619](https://github.com/kubernetes/kubernetes/pull/63619), [@roycaihw](https://github.com/roycaihw))
|
||||
* Re-enable nodeipam controller for external clouds. ([#63049](https://github.com/kubernetes/kubernetes/pull/63049), [@andrewsykim](https://github.com/andrewsykim))
|
||||
* Removes a preflight check for kubeadm that validated custom kube-apiserver, kube-controller-manager and kube-scheduler arguments. ([#63673](https://github.com/kubernetes/kubernetes/pull/63673), [@chuckha](https://github.com/chuckha))
|
||||
* Adds a list-images subcommand to kubeadm that lists required images for a kubeadm install. ([#63450](https://github.com/kubernetes/kubernetes/pull/63450), [@chuckha](https://github.com/chuckha))
|
||||
* Apply pod name and namespace labels to pod cgroup in cAdvisor metrics ([#63406](https://github.com/kubernetes/kubernetes/pull/63406), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* try to read openstack auth config from client config and fall back to read from the environment variables if not available ([#60200](https://github.com/kubernetes/kubernetes/pull/60200), [@dixudx](https://github.com/dixudx))
|
||||
* GC is now bound by QPS (it wasn't before) and so if you need more QPS to avoid ratelimiting GC, you'll have to set it. ([#63657](https://github.com/kubernetes/kubernetes/pull/63657), [@shyamjvs](https://github.com/shyamjvs))
|
||||
* The Kubelet's deprecated --allow-privileged flag now defaults to true. This enables users to stop setting --allow-privileged in order to transition to PodSecurityPolicy. Previously, users had to continue setting --allow-privileged, because the default was false. ([#63442](https://github.com/kubernetes/kubernetes/pull/63442), [@mtaufen](https://github.com/mtaufen))
|
||||
* You must now specify Node.Spec.ConfigSource.ConfigMap.KubeletConfigKey when using dynamic Kubelet config to tell the Kubelet which key of the ConfigMap identifies its config file. ([#59847](https://github.com/kubernetes/kubernetes/pull/59847), [@mtaufen](https://github.com/mtaufen))
|
||||
* Kubernetes version command line parameter in kubeadm has been updated to drop an unnecessary redirection from ci/latest.txt to ci-cross/latest.txt. Users should know exactly where the builds are stored on Google Cloud storage buckets from now on. For example for 1.9 and 1.10, users can specify ci/latest-1.9 and ci/latest-1.10 as the CI build jobs what build images correctly updates those. The CI jobs for master update the ci-cross/latest location, so if you are looking for latest master builds, then the correct parameter to use would be ci-cross/latest. ([#63504](https://github.com/kubernetes/kubernetes/pull/63504), [@dims](https://github.com/dims))
|
||||
* Search standard KubeConfig file locations when using `kubeadm token` without `--kubeconfig`. ([#62850](https://github.com/kubernetes/kubernetes/pull/62850), [@neolit123](https://github.com/neolit123))
|
||||
* Include the list of security groups when failing with the errors that more then one is tagged ([#58874](https://github.com/kubernetes/kubernetes/pull/58874), [@sorenmat](https://github.com/sorenmat))
|
||||
* Allow "required" to be used at the CRD OpenAPI validation schema when the /status subresource is enabled. ([#63533](https://github.com/kubernetes/kubernetes/pull/63533), [@sttts](https://github.com/sttts))
|
||||
* When updating /status subresource of a custom resource, only the value at the `.status` subpath for the update is considered. ([#63385](https://github.com/kubernetes/kubernetes/pull/63385), [@CaoShuFeng](https://github.com/CaoShuFeng))
|
||||
* Supported nodeSelector.matchFields (node's `metadata.node`) in scheduler. ([#62453](https://github.com/kubernetes/kubernetes/pull/62453), [@k82cn](https://github.com/k82cn))
|
||||
* Do not check vmSetName when getting Azure node's IP ([#63541](https://github.com/kubernetes/kubernetes/pull/63541), [@feiskyer](https://github.com/feiskyer))
|
||||
* Fix stackdriver metrics for node memory using wrong metric type ([#63535](https://github.com/kubernetes/kubernetes/pull/63535), [@serathius](https://github.com/serathius))
|
||||
* [fluentd-gcp addon] Use the logging agent's node name as the metadata agent URL. ([#63353](https://github.com/kubernetes/kubernetes/pull/63353), [@bmoyles0117](https://github.com/bmoyles0117))
|
||||
* `kubectl cp` supports completion. ([#60371](https://github.com/kubernetes/kubernetes/pull/60371), [@superbrothers](https://github.com/superbrothers))
|
||||
* Azure VMSS: support VM names to contain the `_` character ([#63526](https://github.com/kubernetes/kubernetes/pull/63526), [@djsly](https://github.com/djsly))
|
||||
* OpenStack built-in cloud provider is now deprecated. Please use the external cloud provider for OpenStack. ([#63524](https://github.com/kubernetes/kubernetes/pull/63524), [@dims](https://github.com/dims))
|
||||
* the shortcuts which were moved server-side in at least 1.9 have been removed from being hardcoded in kubectl ([#63507](https://github.com/kubernetes/kubernetes/pull/63507), [@deads2k](https://github.com/deads2k))
|
||||
* Fixes fake client generation for non-namespaced subresources ([#60445](https://github.com/kubernetes/kubernetes/pull/60445), [@jhorwit2](https://github.com/jhorwit2))
|
||||
* `kubectl delete` with selection criteria defaults to ignoring not found errors ([#63490](https://github.com/kubernetes/kubernetes/pull/63490), [@deads2k](https://github.com/deads2k))
|
||||
* Increase scheduler cache generation number monotonically in order to avoid collision and use of stale information in scheduler. ([#63264](https://github.com/kubernetes/kubernetes/pull/63264), [@bsalamat](https://github.com/bsalamat))
|
||||
* Fixes issue where subpath readOnly mounts failed ([#63045](https://github.com/kubernetes/kubernetes/pull/63045), [@msau42](https://github.com/msau42))
|
||||
* Update to use go1.10.2 ([#63412](https://github.com/kubernetes/kubernetes/pull/63412), [@praseodym](https://github.com/praseodym))
|
||||
* `kubectl create [secret | configmap] --from-file` now works on Windows with fully-qualified paths ([#63439](https://github.com/kubernetes/kubernetes/pull/63439), [@liggitt](https://github.com/liggitt))
|
||||
* kube-apiserver: the default `--endpoint-reconciler-type` is now `lease`. The `master-count` endpoint reconciler type is deprecated and will be removed in 1.13. ([#63383](https://github.com/kubernetes/kubernetes/pull/63383), [@liggitt](https://github.com/liggitt))
|
||||
* owner references can be set during creation without deletion power ([#63403](https://github.com/kubernetes/kubernetes/pull/63403), [@deads2k](https://github.com/deads2k))
|
||||
* Lays groundwork for OIDC distributed claims handling in the apiserver authentication token checker. ([#63213](https://github.com/kubernetes/kubernetes/pull/63213), [@filmil](https://github.com/filmil))
|
||||
* A distributed claim allows the OIDC provider to delegate a claim to a
|
||||
* separate URL. Distributed claims are of the form as seen below, and are
|
||||
* defined in the OIDC Connect Core 1.0, section 5.6.2.
|
||||
* For details, see:
|
||||
* http://openid.net/specs/openid-connect-core-1_0.html#AggregatedDistributedClaims
|
||||
* Use /usr/bin/env in all script shebangs to increase portability. ([#62657](https://github.com/kubernetes/kubernetes/pull/62657), [@matthyx](https://github.com/matthyx))
|
||||
|
||||
|
||||
|
||||
# v1.11.0-alpha.2
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/master/examples)
|
||||
|
196
CHANGELOG-1.8.md
196
CHANGELOG-1.8.md
@ -1,102 +1,109 @@
|
||||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.8.13](#v1813)
|
||||
- [Downloads for v1.8.13](#downloads-for-v1813)
|
||||
- [v1.8.14](#v1814)
|
||||
- [Downloads for v1.8.14](#downloads-for-v1814)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Node Binaries](#node-binaries)
|
||||
- [Changelog since v1.8.12](#changelog-since-v1812)
|
||||
- [Changelog since v1.8.13](#changelog-since-v1813)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.8.12](#v1812)
|
||||
- [Downloads for v1.8.12](#downloads-for-v1812)
|
||||
- [v1.8.13](#v1813)
|
||||
- [Downloads for v1.8.13](#downloads-for-v1813)
|
||||
- [Client Binaries](#client-binaries-1)
|
||||
- [Server Binaries](#server-binaries-1)
|
||||
- [Node Binaries](#node-binaries-1)
|
||||
- [Changelog since v1.8.11](#changelog-since-v1811)
|
||||
- [Changelog since v1.8.12](#changelog-since-v1812)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.8.11](#v1811)
|
||||
- [Downloads for v1.8.11](#downloads-for-v1811)
|
||||
- [v1.8.12](#v1812)
|
||||
- [Downloads for v1.8.12](#downloads-for-v1812)
|
||||
- [Client Binaries](#client-binaries-2)
|
||||
- [Server Binaries](#server-binaries-2)
|
||||
- [Node Binaries](#node-binaries-2)
|
||||
- [Changelog since v1.8.10](#changelog-since-v1810)
|
||||
- [Action Required](#action-required)
|
||||
- [Changelog since v1.8.11](#changelog-since-v1811)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.8.10](#v1810)
|
||||
- [Downloads for v1.8.10](#downloads-for-v1810)
|
||||
- [v1.8.11](#v1811)
|
||||
- [Downloads for v1.8.11](#downloads-for-v1811)
|
||||
- [Client Binaries](#client-binaries-3)
|
||||
- [Server Binaries](#server-binaries-3)
|
||||
- [Node Binaries](#node-binaries-3)
|
||||
- [Changelog since v1.8.9](#changelog-since-v189)
|
||||
- [Changelog since v1.8.10](#changelog-since-v1810)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
- [v1.8.9](#v189)
|
||||
- [Downloads for v1.8.9](#downloads-for-v189)
|
||||
- [v1.8.10](#v1810)
|
||||
- [Downloads for v1.8.10](#downloads-for-v1810)
|
||||
- [Client Binaries](#client-binaries-4)
|
||||
- [Server Binaries](#server-binaries-4)
|
||||
- [Node Binaries](#node-binaries-4)
|
||||
- [Changelog since v1.8.8](#changelog-since-v188)
|
||||
- [Changelog since v1.8.9](#changelog-since-v189)
|
||||
- [Other notable changes](#other-notable-changes-4)
|
||||
- [v1.8.8](#v188)
|
||||
- [Downloads for v1.8.8](#downloads-for-v188)
|
||||
- [v1.8.9](#v189)
|
||||
- [Downloads for v1.8.9](#downloads-for-v189)
|
||||
- [Client Binaries](#client-binaries-5)
|
||||
- [Server Binaries](#server-binaries-5)
|
||||
- [Node Binaries](#node-binaries-5)
|
||||
- [Changelog since v1.8.7](#changelog-since-v187)
|
||||
- [Changelog since v1.8.8](#changelog-since-v188)
|
||||
- [Other notable changes](#other-notable-changes-5)
|
||||
- [v1.8.7](#v187)
|
||||
- [Downloads for v1.8.7](#downloads-for-v187)
|
||||
- [v1.8.8](#v188)
|
||||
- [Downloads for v1.8.8](#downloads-for-v188)
|
||||
- [Client Binaries](#client-binaries-6)
|
||||
- [Server Binaries](#server-binaries-6)
|
||||
- [Node Binaries](#node-binaries-6)
|
||||
- [Changelog since v1.8.6](#changelog-since-v186)
|
||||
- [Changelog since v1.8.7](#changelog-since-v187)
|
||||
- [Other notable changes](#other-notable-changes-6)
|
||||
- [v1.8.6](#v186)
|
||||
- [Downloads for v1.8.6](#downloads-for-v186)
|
||||
- [v1.8.7](#v187)
|
||||
- [Downloads for v1.8.7](#downloads-for-v187)
|
||||
- [Client Binaries](#client-binaries-7)
|
||||
- [Server Binaries](#server-binaries-7)
|
||||
- [Node Binaries](#node-binaries-7)
|
||||
- [Changelog since v1.8.5](#changelog-since-v185)
|
||||
- [Changelog since v1.8.6](#changelog-since-v186)
|
||||
- [Other notable changes](#other-notable-changes-7)
|
||||
- [v1.8.5](#v185)
|
||||
- [Downloads for v1.8.5](#downloads-for-v185)
|
||||
- [v1.8.6](#v186)
|
||||
- [Downloads for v1.8.6](#downloads-for-v186)
|
||||
- [Client Binaries](#client-binaries-8)
|
||||
- [Server Binaries](#server-binaries-8)
|
||||
- [Node Binaries](#node-binaries-8)
|
||||
- [Changelog since v1.8.4](#changelog-since-v184)
|
||||
- [Changelog since v1.8.5](#changelog-since-v185)
|
||||
- [Other notable changes](#other-notable-changes-8)
|
||||
- [v1.8.4](#v184)
|
||||
- [Downloads for v1.8.4](#downloads-for-v184)
|
||||
- [v1.8.5](#v185)
|
||||
- [Downloads for v1.8.5](#downloads-for-v185)
|
||||
- [Client Binaries](#client-binaries-9)
|
||||
- [Server Binaries](#server-binaries-9)
|
||||
- [Node Binaries](#node-binaries-9)
|
||||
- [Changelog since v1.8.3](#changelog-since-v183)
|
||||
- [Changelog since v1.8.4](#changelog-since-v184)
|
||||
- [Other notable changes](#other-notable-changes-9)
|
||||
- [v1.8.3](#v183)
|
||||
- [Downloads for v1.8.3](#downloads-for-v183)
|
||||
- [v1.8.4](#v184)
|
||||
- [Downloads for v1.8.4](#downloads-for-v184)
|
||||
- [Client Binaries](#client-binaries-10)
|
||||
- [Server Binaries](#server-binaries-10)
|
||||
- [Node Binaries](#node-binaries-10)
|
||||
- [Changelog since v1.8.2](#changelog-since-v182)
|
||||
- [Changelog since v1.8.3](#changelog-since-v183)
|
||||
- [Other notable changes](#other-notable-changes-10)
|
||||
- [v1.8.2](#v182)
|
||||
- [Downloads for v1.8.2](#downloads-for-v182)
|
||||
- [v1.8.3](#v183)
|
||||
- [Downloads for v1.8.3](#downloads-for-v183)
|
||||
- [Client Binaries](#client-binaries-11)
|
||||
- [Server Binaries](#server-binaries-11)
|
||||
- [Node Binaries](#node-binaries-11)
|
||||
- [Changelog since v1.8.1](#changelog-since-v181)
|
||||
- [Changelog since v1.8.2](#changelog-since-v182)
|
||||
- [Other notable changes](#other-notable-changes-11)
|
||||
- [v1.8.1](#v181)
|
||||
- [Downloads for v1.8.1](#downloads-for-v181)
|
||||
- [v1.8.2](#v182)
|
||||
- [Downloads for v1.8.2](#downloads-for-v182)
|
||||
- [Client Binaries](#client-binaries-12)
|
||||
- [Server Binaries](#server-binaries-12)
|
||||
- [Node Binaries](#node-binaries-12)
|
||||
- [Changelog since v1.8.0](#changelog-since-v180)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Changelog since v1.8.1](#changelog-since-v181)
|
||||
- [Other notable changes](#other-notable-changes-12)
|
||||
- [v1.8.0](#v180)
|
||||
- [Downloads for v1.8.0](#downloads-for-v180)
|
||||
- [v1.8.1](#v181)
|
||||
- [Downloads for v1.8.1](#downloads-for-v181)
|
||||
- [Client Binaries](#client-binaries-13)
|
||||
- [Server Binaries](#server-binaries-13)
|
||||
- [Node Binaries](#node-binaries-13)
|
||||
- [Changelog since v1.8.0](#changelog-since-v180)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Other notable changes](#other-notable-changes-13)
|
||||
- [v1.8.0](#v180)
|
||||
- [Downloads for v1.8.0](#downloads-for-v180)
|
||||
- [Client Binaries](#client-binaries-14)
|
||||
- [Server Binaries](#server-binaries-14)
|
||||
- [Node Binaries](#node-binaries-14)
|
||||
- [Introduction to v1.8.0](#introduction-to-v180)
|
||||
- [Major Themes](#major-themes)
|
||||
- [SIG API Machinery](#sig-api-machinery)
|
||||
@ -157,49 +164,110 @@
|
||||
- [External Dependencies](#external-dependencies)
|
||||
- [v1.8.0-rc.1](#v180-rc1)
|
||||
- [Downloads for v1.8.0-rc.1](#downloads-for-v180-rc1)
|
||||
- [Client Binaries](#client-binaries-14)
|
||||
- [Server Binaries](#server-binaries-14)
|
||||
- [Node Binaries](#node-binaries-14)
|
||||
- [Changelog since v1.8.0-beta.1](#changelog-since-v180-beta1)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-13)
|
||||
- [v1.8.0-beta.1](#v180-beta1)
|
||||
- [Downloads for v1.8.0-beta.1](#downloads-for-v180-beta1)
|
||||
- [Client Binaries](#client-binaries-15)
|
||||
- [Server Binaries](#server-binaries-15)
|
||||
- [Node Binaries](#node-binaries-15)
|
||||
- [Changelog since v1.8.0-alpha.3](#changelog-since-v180-alpha3)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Changelog since v1.8.0-beta.1](#changelog-since-v180-beta1)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-14)
|
||||
- [v1.8.0-alpha.3](#v180-alpha3)
|
||||
- [Downloads for v1.8.0-alpha.3](#downloads-for-v180-alpha3)
|
||||
- [v1.8.0-beta.1](#v180-beta1)
|
||||
- [Downloads for v1.8.0-beta.1](#downloads-for-v180-beta1)
|
||||
- [Client Binaries](#client-binaries-16)
|
||||
- [Server Binaries](#server-binaries-16)
|
||||
- [Node Binaries](#node-binaries-16)
|
||||
- [Changelog since v1.8.0-alpha.2](#changelog-since-v180-alpha2)
|
||||
- [Action Required](#action-required-4)
|
||||
- [Changelog since v1.8.0-alpha.3](#changelog-since-v180-alpha3)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Other notable changes](#other-notable-changes-15)
|
||||
- [v1.8.0-alpha.2](#v180-alpha2)
|
||||
- [Downloads for v1.8.0-alpha.2](#downloads-for-v180-alpha2)
|
||||
- [v1.8.0-alpha.3](#v180-alpha3)
|
||||
- [Downloads for v1.8.0-alpha.3](#downloads-for-v180-alpha3)
|
||||
- [Client Binaries](#client-binaries-17)
|
||||
- [Server Binaries](#server-binaries-17)
|
||||
- [Node Binaries](#node-binaries-17)
|
||||
- [Changelog since v1.7.0](#changelog-since-v170)
|
||||
- [Action Required](#action-required-5)
|
||||
- [Changelog since v1.8.0-alpha.2](#changelog-since-v180-alpha2)
|
||||
- [Action Required](#action-required-4)
|
||||
- [Other notable changes](#other-notable-changes-16)
|
||||
- [v1.8.0-alpha.1](#v180-alpha1)
|
||||
- [Downloads for v1.8.0-alpha.1](#downloads-for-v180-alpha1)
|
||||
- [v1.8.0-alpha.2](#v180-alpha2)
|
||||
- [Downloads for v1.8.0-alpha.2](#downloads-for-v180-alpha2)
|
||||
- [Client Binaries](#client-binaries-18)
|
||||
- [Server Binaries](#server-binaries-18)
|
||||
- [Node Binaries](#node-binaries-18)
|
||||
- [Changelog since v1.7.0](#changelog-since-v170)
|
||||
- [Action Required](#action-required-5)
|
||||
- [Other notable changes](#other-notable-changes-17)
|
||||
- [v1.8.0-alpha.1](#v180-alpha1)
|
||||
- [Downloads for v1.8.0-alpha.1](#downloads-for-v180-alpha1)
|
||||
- [Client Binaries](#client-binaries-19)
|
||||
- [Server Binaries](#server-binaries-19)
|
||||
- [Node Binaries](#node-binaries-19)
|
||||
- [Changelog since v1.7.0-alpha.4](#changelog-since-v170-alpha4)
|
||||
- [Action Required](#action-required-6)
|
||||
- [Other notable changes](#other-notable-changes-17)
|
||||
- [Other notable changes](#other-notable-changes-18)
|
||||
<!-- END MUNGE: GENERATED_TOC -->
|
||||
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# v1.8.14
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.8/examples)
|
||||
|
||||
## Downloads for v1.8.14
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes.tar.gz) | `d2013bbc635031c1f388b53a32164447f196bf34f91f3f72f52e400eea548fd8`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-src.tar.gz) | `ed46ded775aea6f9a588cb2ff9ae589d36cca16900a6296a9d99f208fe4a34dc`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-darwin-386.tar.gz) | `5137f01bb56b7a46ec6aacfdd90bbb65784c97feb32efb69334c0d7d5a7ffe85`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-darwin-amd64.tar.gz) | `1752603560668b060b8ed277a8edb2879e844414e19708ee35ab03e87ffff50e`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-386.tar.gz) | `0ed204cbb6735407ec0eb8cd3fe99f1443550bc4c00bb6313a00851cc387a616`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-amd64.tar.gz) | `66da3e182d7289e3147dbc25bc61a2ec92bb5fa5c13fa0972446639523a9a02f`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-arm.tar.gz) | `93541062a6e04b06f177793d1e875eb8f4ccd9f1c0e69025abf75efe3d6da0a2`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-arm64.tar.gz) | `ea38a7ad0152858aa9326cf2248fe33cb1f38c42e1c28428b7d91eb8cdff1a03`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-ppc64le.tar.gz) | `da651a6d058c3b4a65d145eb4ed57afb227774784ff262bb220132c5e1a9caf2`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-linux-s390x.tar.gz) | `98b3bb4297c81fe268144d461cc97e6c18c5ad8cc7b93197050be92e7b92e906`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-windows-386.tar.gz) | `5f96970061ad3b8086d27c52ec32d48e0086f780a341d9ed66ec8712ded80df5`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-client-windows-amd64.tar.gz) | `49cab034eb39c827c6fa4e299d1687edb3f3956b035850887be6e040fde21c50`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-server-linux-amd64.tar.gz) | `0ef5b508f57d575eee0fb47c6c0aca68a7da43dd50086c23082da778e2893c41`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-server-linux-arm.tar.gz) | `8d6c1831181ba1f53e62eeb61ba136b28e240ddc3d51c4f15539a624247053f2`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-server-linux-arm64.tar.gz) | `00ae57855ffafcd069514d284f9c9076fb79ed63fe9be7104fa134b51ed15c36`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-server-linux-ppc64le.tar.gz) | `774a9eb65abd8f483a8417ca79d1339783c1cb1d0e8fe2b2821ddd24ab670ec9`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-server-linux-s390x.tar.gz) | `3e0805494c234544a086465dac6d868551876e2a3175c17e46e85e6d141165d5`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-linux-amd64.tar.gz) | `495bc4ec731ca959951b7e9a9cff92eabc2cc83055f4efe8d25f2159aefdf867`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-linux-arm.tar.gz) | `b08d12bc9d66c3d4fab0cbe24fb7478910293c09b731f0a6d48631065633347e`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-linux-arm64.tar.gz) | `50a2c150c8a0622aadffb40f4330f844d633d440187814181858b937fb0a18c7`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-linux-ppc64le.tar.gz) | `2936000403e4eb07d6188aa1a1b65f60b99771c8b463174e5e3db907a923f625`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-linux-s390x.tar.gz) | `3bd2d3b518304b0f68150ef05ecae6da8c1819f58ab15f42ce6eab1d3f6b781b`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.14/kubernetes-node-windows-amd64.tar.gz) | `046341bc2f68f5d47dde21d7eb195bcdca9a973593a157677e8d46cd4c3ca530`
|
||||
|
||||
## Changelog since v1.8.13
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Bump version of prometheus-to-sd to 0.2.6 to decrease log noise and include latest security patches. ([#64963](https://github.com/kubernetes/kubernetes/pull/64963), [@loburm](https://github.com/loburm))
|
||||
* 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))
|
||||
* Fix issue of colliding nodePorts when the cluster has services with externalTrafficPolicy=Local ([#64468](https://github.com/kubernetes/kubernetes/pull/64468), [@nicksardo](https://github.com/nicksardo))
|
||||
* GCE: Fix to make the built-in `kubernetes` service properly point to the master's load balancer address in clusters that use multiple master VMs. ([#63696](https://github.com/kubernetes/kubernetes/pull/63696), [@grosskur](https://github.com/grosskur))
|
||||
* Add a way to pass extra arguments to etcd. ([#63961](https://github.com/kubernetes/kubernetes/pull/63961), [@mborsz](https://github.com/mborsz))
|
||||
* kubelet: fix hangs in updating Node status after network interruptions/changes between the kubelet and API server ([#63492](https://github.com/kubernetes/kubernetes/pull/63492), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
|
||||
|
||||
# v1.8.13
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.8/examples)
|
||||
|
437
Godeps/Godeps.json
generated
437
Godeps/Godeps.json
generated
@ -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",
|
||||
@ -490,8 +490,8 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/container-storage-interface/spec/lib/go/csi/v0",
|
||||
"Comment": "v0.2.0",
|
||||
"Rev": "35d9f9d77954980e449e52c3f3e43c21bd8171f5"
|
||||
"Comment": "v0.3.0",
|
||||
"Rev": "2178fdeea87f1150a17a63252eee28d4d8141f72"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/console",
|
||||
@ -499,48 +499,48 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/api/services/containers/v1",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/api/services/tasks/v1",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/api/services/version/v1",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/api/types",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/api/types/task",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/containers",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/dialer",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/errdefs",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containerd/containerd/namespaces",
|
||||
"Comment": "v1.0.0-beta.2-159-g27d450a",
|
||||
"Rev": "27d450a01bb533d7ebc5701eb52792565396b084"
|
||||
"Comment": "v1.0.2",
|
||||
"Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/containernetworking/cni/libcni",
|
||||
@ -1019,157 +1019,162 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/distribution/digestset",
|
||||
"Comment": "v2.6.0-rc.1-209-gedc3ab2",
|
||||
"Comment": "v2.6.0-rc.1-209-gedc3ab29",
|
||||
"Rev": "edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/distribution/reference",
|
||||
"Comment": "v2.6.0-rc.1-209-gedc3ab2",
|
||||
"Comment": "v2.6.0-rc.1-209-gedc3ab29",
|
||||
"Rev": "edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/blkiodev",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/container",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/events",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/filters",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/image",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/mount",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/network",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/registry",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/strslice",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/swarm",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/swarm/runtime",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/time",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/versions",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/api/types/volume",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/client",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/ioutils",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/jsonlog",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/jsonmessage",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/longpath",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/mount",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/parsers",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/parsers/operatingsystem",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/stdcopy",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/sysinfo",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/system",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/term",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/term/windows",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/docker/pkg/tlsconfig",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f",
|
||||
"Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1",
|
||||
"Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756"
|
||||
},
|
||||
{
|
||||
@ -1194,7 +1199,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/libnetwork/ipvs",
|
||||
"Comment": "v0.8.0-dev.2-910-gba46b92",
|
||||
"Comment": "v0.8.0-dev.2-910-gba46b928",
|
||||
"Rev": "ba46b928444931e6865d8618dc03622cac79aa6f"
|
||||
},
|
||||
{
|
||||
@ -1240,6 +1245,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/evanphx/json-patch",
|
||||
"Comment": "v3.0.0-23-g94e38aa",
|
||||
"Rev": "94e38aa1586e8a6c8a75770bddf5ff84c48a106b"
|
||||
},
|
||||
{
|
||||
@ -1311,132 +1317,132 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/gogoproto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/compare",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/description",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/embedcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/enumstringer",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/equal",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/face",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/gostring",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/marshalto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/populate",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/size",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/stringer",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/testgen",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/union",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/unmarshal",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/proto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/sortkeys",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/types",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/vanity",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/vanity/command",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
@ -1453,39 +1459,48 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/jsonpb",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/proto",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/protoc-gen-go/descriptor",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/any",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/duration",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/empty",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/struct",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/timestamp",
|
||||
"Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9"
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/wrappers",
|
||||
"Comment": "v1.1.0",
|
||||
"Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/btree",
|
||||
@ -1493,249 +1508,257 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/accelerators",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/api",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/cache/memory",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/client/v2",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/collector",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/common",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/containerd",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/crio",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/docker",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/libcontainer",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/raw",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/rkt",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/systemd",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/devicemapper",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/events",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/fs",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/healthz",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/http",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/http/mux",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/info/v1",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/info/v2",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/machine",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher/raw",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher/rkt",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/metrics",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/pages",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/pages/static",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/storage",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/summary",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cloudinfo",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cpuload",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/docker",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/oomparser",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/sysfs",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/sysinfo",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/validate",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/version",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/zfs",
|
||||
"Comment": "v0.29.1",
|
||||
"Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9"
|
||||
"Comment": "v0.30.1",
|
||||
"Rev": "49c4fae21f151168b09758b7da1968fed8cd56a0"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/asn1",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/client",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/client/configpb",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/jsonclient",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/tls",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/x509",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency-go/x509/pkix",
|
||||
"Comment": "v1.0.10",
|
||||
"Rev": "1bec4527572c443752ad4f2830bef88be0533236"
|
||||
},
|
||||
{
|
||||
@ -2006,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",
|
||||
@ -2095,6 +2118,11 @@
|
||||
"Comment": "v1.1.0-2-g8bdf7d1",
|
||||
"Rev": "8bdf7d1a087ccc975cf37dd6507da50698fd19ca"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/mattn/go-shellwords",
|
||||
"Comment": "v1.0.3-20-gf8471b0",
|
||||
"Rev": "f8471b0a71ded0ab910825ee2cf230f25de000f1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/matttproud/golang_protobuf_extensions/pbutil",
|
||||
"Rev": "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a"
|
||||
@ -3083,47 +3111,47 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v0.alpha",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v0.beta",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v1",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/container/v1",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/gensupport",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/googleapi",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/googleapi/internal/uritemplates",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/logging/v2beta1",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/monitoring/v3",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/pubsub/v1",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/tpu/v1alpha1",
|
||||
"Rev": "7f657476956314fee258816aaf81c0ff65cf8bee"
|
||||
"ImportPath": "google.golang.org/api/tpu/v1",
|
||||
"Rev": "8e296ef260056b6323d10727db40512dac6d92d5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/genproto/googleapis/api/annotations",
|
||||
@ -3158,11 +3186,6 @@
|
||||
"Comment": "v1.7.5",
|
||||
"Rev": "5b3c4e850e90a4cf6a20ebd46c8b32a0a3afcb9e"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/grpc/grpclb/grpc_lb_v1",
|
||||
"Comment": "v1.7.5",
|
||||
"Rev": "5b3c4e850e90a4cf6a20ebd46c8b32a0a3afcb9e"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/grpc/grpclb/grpc_lb_v1/messages",
|
||||
"Comment": "v1.7.5",
|
||||
@ -3334,35 +3357,39 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/aggregator",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/builder",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/common",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/generators",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/handler",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/util",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto/testing",
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto/validation",
|
||||
"Rev": "86e28c192d2743f0232b9bc5f0a531568ef9f2a5"
|
||||
"Rev": "8a9b82f00b3a86eac24681da3f9fe6c34c01cea2"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/utils/clock",
|
||||
|
728
Godeps/LICENSES
generated
728
Godeps/LICENSES
generated
@ -40289,6 +40289,205 @@ Apache License
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/docker/docker/pkg/parsers/operatingsystem licensed under: =
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
https://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Copyright 2013-2017 Docker, Inc.
|
||||
|
||||
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
|
||||
|
||||
https://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.
|
||||
|
||||
= vendor/github.com/docker/docker/LICENSE 9740d093a080530b5c5c6573df9af45a
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/docker/docker/pkg/stdcopy licensed under: =
|
||||
|
||||
@ -47950,45 +48149,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/golang/protobuf/ptypes/empty licensed under: =
|
||||
|
||||
Go support for Protocol Buffers - Google's data interchange format
|
||||
|
||||
Copyright 2010 The Go Authors. All rights reserved.
|
||||
https://github.com/golang/protobuf
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
= vendor/github.com/golang/protobuf/LICENSE 14db3a56c3796a940ba32948a15f97d0
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/golang/protobuf/ptypes/struct licensed under: =
|
||||
|
||||
@ -48067,6 +48227,45 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/golang/protobuf/ptypes/wrappers licensed under: =
|
||||
|
||||
Go support for Protocol Buffers - Google's data interchange format
|
||||
|
||||
Copyright 2010 The Go Authors. All rights reserved.
|
||||
https://github.com/golang/protobuf
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
= vendor/github.com/golang/protobuf/LICENSE 14db3a56c3796a940ba32948a15f97d0
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/google/btree licensed under: =
|
||||
|
||||
@ -72257,6 +72456,35 @@ SOFTWARE.
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/mattn/go-shellwords licensed under: =
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Yasuhiro Matsumoto
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
= vendor/github.com/mattn/go-shellwords/LICENSE e5116fc268f5118168ff06a271b50ef9
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/github.com/matttproud/golang_protobuf_extensions/pbutil licensed under: =
|
||||
|
||||
@ -93345,7 +93573,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/google.golang.org/api/tpu/v1alpha1 licensed under: =
|
||||
= vendor/google.golang.org/api/tpu/v1 licensed under: =
|
||||
|
||||
Copyright (c) 2011 Google Inc. All rights reserved.
|
||||
|
||||
@ -94849,216 +95077,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/google.golang.org/grpc/grpclb/grpc_lb_v1 licensed under: =
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
||||
|
||||
= vendor/google.golang.org/grpc/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages licensed under: =
|
||||
|
||||
@ -102669,6 +102687,216 @@ Apache License
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/k8s.io/kube-openapi/pkg/util/proto/testing licensed under: =
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
||||
|
||||
= vendor/k8s.io/kube-openapi/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/k8s.io/kube-openapi/pkg/util/proto/validation licensed under: =
|
||||
|
||||
|
@ -45,7 +45,6 @@ aliases:
|
||||
- shiywang
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
- sttts
|
||||
sig-testing-reviewers:
|
||||
- fejta
|
||||
- ixdy
|
||||
@ -187,6 +186,8 @@ aliases:
|
||||
- cmluciano
|
||||
- bsalamat
|
||||
- m1093782566
|
||||
- tallclair
|
||||
- feiskyer
|
||||
api-approvers:
|
||||
- erictune
|
||||
- lavalamp
|
||||
|
17
SECURITY_CONTACTS
Normal file
17
SECURITY_CONTACTS
Normal file
@ -0,0 +1,17 @@
|
||||
# Defined below are the security contacts for this repo.
|
||||
#
|
||||
# They are the contact point for the Product Security Team to reach out
|
||||
# to for triaging and handling of incoming issues.
|
||||
#
|
||||
# The below names agree to abide by the
|
||||
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
|
||||
# and will be removed and replaced if they violate that agreement.
|
||||
#
|
||||
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
||||
# INSTRUCTIONS AT https://kubernetes.io/security/
|
||||
|
||||
cjcullen
|
||||
jessfraz
|
||||
liggitt
|
||||
philips
|
||||
tallclair
|
276
api/openapi-spec/swagger.json
generated
276
api/openapi-spec/swagger.json
generated
@ -76510,6 +76510,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.CinderPersistentVolumeSource": {
|
||||
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
|
||||
"required": [
|
||||
"volumeID"
|
||||
],
|
||||
"properties": {
|
||||
"fsType": {
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"type": "string"
|
||||
},
|
||||
"readOnly": {
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"type": "boolean"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack.",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference"
|
||||
},
|
||||
"volumeID": {
|
||||
"description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.CinderVolumeSource": {
|
||||
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
|
||||
"required": [
|
||||
@ -76524,6 +76548,10 @@
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"type": "boolean"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack.",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference"
|
||||
},
|
||||
"volumeID": {
|
||||
"description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"type": "string"
|
||||
@ -77675,7 +77703,7 @@
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.GitRepoVolumeSource": {
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -78449,7 +78477,7 @@
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.NodeSelectorTerm": {
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"description": "A list of node selector requirements by node's labels.",
|
||||
@ -78957,7 +78985,7 @@
|
||||
},
|
||||
"cinder": {
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource"
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource"
|
||||
},
|
||||
"claimRef": {
|
||||
"description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding",
|
||||
@ -79210,7 +79238,7 @@
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
|
||||
"description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@ -79287,6 +79315,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"io.k8s.api.core.v1.PodReadinessGate": {
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.PodSecurityContext": {
|
||||
"description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.",
|
||||
"properties": {
|
||||
@ -79320,6 +79360,13 @@
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
},
|
||||
"sysctls": {
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.Sysctl"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -79422,6 +79469,13 @@
|
||||
"description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
||||
"type": "string"
|
||||
},
|
||||
"readinessGates": {
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate"
|
||||
}
|
||||
},
|
||||
"restartPolicy": {
|
||||
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
||||
"type": "string"
|
||||
@ -79474,7 +79528,7 @@
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.PodStatus": {
|
||||
"description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.",
|
||||
"description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
|
||||
@ -79512,7 +79566,7 @@
|
||||
"type": "string"
|
||||
},
|
||||
"phase": {
|
||||
"description": "Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase",
|
||||
"description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase",
|
||||
"type": "string"
|
||||
},
|
||||
"podIP": {
|
||||
@ -80078,12 +80132,16 @@
|
||||
"description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.",
|
||||
"properties": {
|
||||
"hard": {
|
||||
"description": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
|
||||
"description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
|
||||
}
|
||||
},
|
||||
"scopeSelector": {
|
||||
"description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector"
|
||||
},
|
||||
"scopes": {
|
||||
"description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.",
|
||||
"type": "array",
|
||||
@ -80252,6 +80310,42 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.ScopeSelector": {
|
||||
"description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"description": "A list of scope selector requirements by scope of the resources.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.ScopedResourceSelectorRequirement": {
|
||||
"description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.",
|
||||
"required": [
|
||||
"scopeName",
|
||||
"operator"
|
||||
],
|
||||
"properties": {
|
||||
"operator": {
|
||||
"description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.",
|
||||
"type": "string"
|
||||
},
|
||||
"scopeName": {
|
||||
"description": "The name of the scope that the selector applies to.",
|
||||
"type": "string"
|
||||
},
|
||||
"values": {
|
||||
"description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.Secret": {
|
||||
"description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.",
|
||||
"properties": {
|
||||
@ -80569,6 +80663,27 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"io.k8s.api.core.v1.ServiceAccountTokenProjection": {
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.",
|
||||
"type": "string"
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.",
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"path": {
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.ServiceList": {
|
||||
"description": "ServiceList holds a list of services.",
|
||||
"required": [
|
||||
@ -80773,6 +80888,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.Sysctl": {
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of a property to set",
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"description": "Value of a property to set",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.TCPSocketAction": {
|
||||
"description": "TCPSocketAction describes an action based on opening a socket",
|
||||
"required": [
|
||||
@ -80840,6 +80972,38 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.TopologySelectorLabelRequirement": {
|
||||
"description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
|
||||
"required": [
|
||||
"key",
|
||||
"values"
|
||||
],
|
||||
"properties": {
|
||||
"key": {
|
||||
"description": "The label key that the selector applies to.",
|
||||
"type": "string"
|
||||
},
|
||||
"values": {
|
||||
"description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.TopologySelectorTerm": {
|
||||
"description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
|
||||
"properties": {
|
||||
"matchLabelExpressions": {
|
||||
"description": "A list of topology selector requirements by labels.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.api.core.v1.Volume": {
|
||||
"description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
|
||||
"required": [
|
||||
@ -80895,7 +81059,7 @@
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
|
||||
},
|
||||
"gitRepo": {
|
||||
"description": "GitRepo represents a git repository at a particular revision.",
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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.",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource"
|
||||
},
|
||||
"glusterfs": {
|
||||
@ -81029,6 +81193,10 @@
|
||||
"secret": {
|
||||
"description": "information about the secret data to project",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"description": "information about the serviceAccountToken data to project",
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -81232,6 +81400,10 @@
|
||||
"pathPrefix": {
|
||||
"description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`",
|
||||
"type": "string"
|
||||
},
|
||||
"readOnly": {
|
||||
"description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.",
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -82197,6 +82369,13 @@
|
||||
"$ref": "#/definitions/io.k8s.api.extensions.v1beta1.AllowedHostPath"
|
||||
}
|
||||
},
|
||||
"allowedUnsafeSysctls": {
|
||||
"description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"defaultAddCapabilities": {
|
||||
"description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.",
|
||||
"type": "array",
|
||||
@ -82208,6 +82387,13 @@
|
||||
"description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"forbiddenSysctls": {
|
||||
"description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"fsGroup": {
|
||||
"description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.",
|
||||
"$ref": "#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions"
|
||||
@ -82776,6 +82962,10 @@
|
||||
"pathPrefix": {
|
||||
"description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`",
|
||||
"type": "string"
|
||||
},
|
||||
"readOnly": {
|
||||
"description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.",
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -83081,6 +83271,13 @@
|
||||
"$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath"
|
||||
}
|
||||
},
|
||||
"allowedUnsafeSysctls": {
|
||||
"description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"defaultAddCapabilities": {
|
||||
"description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.",
|
||||
"type": "array",
|
||||
@ -83092,6 +83289,13 @@
|
||||
"description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"forbiddenSysctls": {
|
||||
"description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"fsGroup": {
|
||||
"description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.",
|
||||
"$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions"
|
||||
@ -84615,6 +84819,13 @@
|
||||
"description": "AllowVolumeExpansion shows whether the storage class allow volume expand",
|
||||
"type": "boolean"
|
||||
},
|
||||
"allowedTopologies": {
|
||||
"description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm"
|
||||
}
|
||||
},
|
||||
"apiVersion": {
|
||||
"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"
|
||||
@ -84846,6 +85057,13 @@
|
||||
"description": "AllowVolumeExpansion shows whether the storage class allow volume expand",
|
||||
"type": "boolean"
|
||||
},
|
||||
"allowedTopologies": {
|
||||
"description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm"
|
||||
}
|
||||
},
|
||||
"apiVersion": {
|
||||
"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"
|
||||
@ -85067,6 +85285,41 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": {
|
||||
"description": "CustomResourceColumnDefinition specifies a column for server side printing.",
|
||||
"required": [
|
||||
"name",
|
||||
"type",
|
||||
"JSONPath"
|
||||
],
|
||||
"properties": {
|
||||
"JSONPath": {
|
||||
"description": "JSONPath is a simple JSON path, i.e. with array notation.",
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"description": "description is a human readable description of this column.",
|
||||
"type": "string"
|
||||
},
|
||||
"format": {
|
||||
"description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "name is a human readable name for the column.",
|
||||
"type": "string"
|
||||
},
|
||||
"priority": {
|
||||
"description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"type": {
|
||||
"description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": {
|
||||
"description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.",
|
||||
"properties": {
|
||||
@ -85207,6 +85460,13 @@
|
||||
"scope"
|
||||
],
|
||||
"properties": {
|
||||
"additionalPrinterColumns": {
|
||||
"description": "AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition"
|
||||
}
|
||||
},
|
||||
"group": {
|
||||
"description": "Group is the group this resource belongs in",
|
||||
"type": "string"
|
||||
|
81
api/swagger-spec/apps_v1.json
generated
81
api/swagger-spec/apps_v1.json
generated
@ -6743,6 +6743,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -6775,7 +6782,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -6956,7 +6963,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -7246,6 +7253,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -7612,6 +7623,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -7670,6 +7685,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -8384,6 +8421,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -8440,7 +8502,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -8669,6 +8731,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.DaemonSetUpdateStrategy": {
|
||||
"id": "v1.DaemonSetUpdateStrategy",
|
||||
"description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.",
|
||||
|
81
api/swagger-spec/apps_v1beta1.json
generated
81
api/swagger-spec/apps_v1beta1.json
generated
@ -4377,6 +4377,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -4409,7 +4416,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -4590,7 +4597,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -4880,6 +4887,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -5246,6 +5257,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -5304,6 +5319,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -6018,6 +6055,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -6074,7 +6136,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -6303,6 +6365,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.DeploymentStrategy": {
|
||||
"id": "v1beta1.DeploymentStrategy",
|
||||
"description": "DeploymentStrategy describes how to replace existing pods with new ones.",
|
||||
|
81
api/swagger-spec/apps_v1beta2.json
generated
81
api/swagger-spec/apps_v1beta2.json
generated
@ -6743,6 +6743,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -6775,7 +6782,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -6956,7 +6963,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -7246,6 +7253,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -7612,6 +7623,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -7670,6 +7685,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -8384,6 +8421,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -8440,7 +8502,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -8669,6 +8731,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta2.DaemonSetUpdateStrategy": {
|
||||
"id": "v1beta2.DaemonSetUpdateStrategy",
|
||||
"description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.",
|
||||
|
81
api/swagger-spec/batch_v1.json
generated
81
api/swagger-spec/batch_v1.json
generated
@ -1717,6 +1717,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1749,7 +1756,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -1930,7 +1937,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -2220,6 +2227,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2586,6 +2597,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2644,6 +2659,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -3358,6 +3395,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3414,7 +3476,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -3643,6 +3705,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.JobStatus": {
|
||||
"id": "v1.JobStatus",
|
||||
"description": "JobStatus represents the current state of a Job.",
|
||||
|
81
api/swagger-spec/batch_v1beta1.json
generated
81
api/swagger-spec/batch_v1beta1.json
generated
@ -1772,6 +1772,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1804,7 +1811,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -1985,7 +1992,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -2275,6 +2282,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2641,6 +2652,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2699,6 +2714,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -3413,6 +3450,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3469,7 +3531,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -3698,6 +3760,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.CronJobStatus": {
|
||||
"id": "v1beta1.CronJobStatus",
|
||||
"description": "CronJobStatus represents the current state of a cron job.",
|
||||
|
81
api/swagger-spec/batch_v2alpha1.json
generated
81
api/swagger-spec/batch_v2alpha1.json
generated
@ -1772,6 +1772,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1804,7 +1811,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -1985,7 +1992,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -2275,6 +2282,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2641,6 +2652,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2699,6 +2714,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -3413,6 +3450,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3469,7 +3531,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -3698,6 +3760,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v2alpha1.CronJobStatus": {
|
||||
"id": "v2alpha1.CronJobStatus",
|
||||
"description": "CronJobStatus represents the current state of a cron job.",
|
||||
|
99
api/swagger-spec/extensions_v1beta1.json
generated
99
api/swagger-spec/extensions_v1beta1.json
generated
@ -7385,6 +7385,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -7417,7 +7424,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -7598,7 +7605,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -7888,6 +7895,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -8254,6 +8265,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -8312,6 +8327,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
@ -9026,6 +9063,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -9082,7 +9144,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -9311,6 +9373,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.DaemonSetUpdateStrategy": {
|
||||
"id": "v1beta1.DaemonSetUpdateStrategy",
|
||||
"properties": {
|
||||
@ -10342,6 +10417,20 @@
|
||||
"$ref": "v1beta1.AllowedFlexVolume"
|
||||
},
|
||||
"description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field."
|
||||
},
|
||||
"allowedUnsafeSysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc."
|
||||
},
|
||||
"forbiddenSysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -10467,6 +10556,10 @@
|
||||
"pathPrefix": {
|
||||
"type": "string",
|
||||
"description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
18
api/swagger-spec/policy_v1beta1.json
generated
18
api/swagger-spec/policy_v1beta1.json
generated
@ -2499,6 +2499,20 @@
|
||||
"$ref": "v1beta1.AllowedFlexVolume"
|
||||
},
|
||||
"description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field."
|
||||
},
|
||||
"allowedUnsafeSysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc."
|
||||
},
|
||||
"forbiddenSysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2650,6 +2664,10 @@
|
||||
"pathPrefix": {
|
||||
"type": "string",
|
||||
"description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
34
api/swagger-spec/settings.k8s.io_v1alpha1.json
generated
34
api/swagger-spec/settings.k8s.io_v1alpha1.json
generated
@ -1587,7 +1587,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -1768,7 +1768,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -2058,6 +2058,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2386,6 +2390,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2444,6 +2452,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PortworxVolumeSource": {
|
||||
"id": "v1.PortworxVolumeSource",
|
||||
"description": "PortworxVolumeSource represents a Portworx volume resource.",
|
||||
|
41
api/swagger-spec/storage.k8s.io_v1.json
generated
41
api/swagger-spec/storage.k8s.io_v1.json
generated
@ -818,6 +818,13 @@
|
||||
"volumeBindingMode": {
|
||||
"$ref": "v1.VolumeBindingMode",
|
||||
"description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature."
|
||||
},
|
||||
"allowedTopologies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.TopologySelectorTerm"
|
||||
},
|
||||
"description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1067,6 +1074,40 @@
|
||||
"id": "v1.VolumeBindingMode",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.TopologySelectorTerm": {
|
||||
"id": "v1.TopologySelectorTerm",
|
||||
"description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
|
||||
"properties": {
|
||||
"matchLabelExpressions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.TopologySelectorLabelRequirement"
|
||||
},
|
||||
"description": "A list of topology selector requirements by labels."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.TopologySelectorLabelRequirement": {
|
||||
"id": "v1.TopologySelectorLabelRequirement",
|
||||
"description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
|
||||
"required": [
|
||||
"key",
|
||||
"values"
|
||||
],
|
||||
"properties": {
|
||||
"key": {
|
||||
"type": "string",
|
||||
"description": "The label key that the selector applies to."
|
||||
},
|
||||
"values": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
|
41
api/swagger-spec/storage.k8s.io_v1beta1.json
generated
41
api/swagger-spec/storage.k8s.io_v1beta1.json
generated
@ -1512,6 +1512,13 @@
|
||||
"volumeBindingMode": {
|
||||
"$ref": "v1beta1.VolumeBindingMode",
|
||||
"description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature."
|
||||
},
|
||||
"allowedTopologies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.TopologySelectorTerm"
|
||||
},
|
||||
"description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1761,6 +1768,40 @@
|
||||
"id": "v1beta1.VolumeBindingMode",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.TopologySelectorTerm": {
|
||||
"id": "v1.TopologySelectorTerm",
|
||||
"description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
|
||||
"properties": {
|
||||
"matchLabelExpressions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.TopologySelectorLabelRequirement"
|
||||
},
|
||||
"description": "A list of topology selector requirements by labels."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.TopologySelectorLabelRequirement": {
|
||||
"id": "v1.TopologySelectorLabelRequirement",
|
||||
"description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
|
||||
"required": [
|
||||
"key",
|
||||
"values"
|
||||
],
|
||||
"properties": {
|
||||
"key": {
|
||||
"type": "string",
|
||||
"description": "The label key that the selector applies to."
|
||||
},
|
||||
"values": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
|
162
api/swagger-spec/v1.json
generated
162
api/swagger-spec/v1.json
generated
@ -19321,7 +19321,7 @@
|
||||
"description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin."
|
||||
},
|
||||
"cinder": {
|
||||
"$ref": "v1.CinderVolumeSource",
|
||||
"$ref": "v1.CinderPersistentVolumeSource",
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"cephfs": {
|
||||
@ -19651,8 +19651,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.CinderVolumeSource": {
|
||||
"id": "v1.CinderVolumeSource",
|
||||
"v1.CinderPersistentVolumeSource": {
|
||||
"id": "v1.CinderPersistentVolumeSource",
|
||||
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
|
||||
"required": [
|
||||
"volumeID"
|
||||
@ -19669,6 +19669,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.SecretReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -20106,7 +20110,7 @@
|
||||
},
|
||||
"v1.NodeSelectorTerm": {
|
||||
"id": "v1.NodeSelectorTerm",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
|
||||
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
@ -20356,6 +20360,13 @@
|
||||
"dnsConfig": {
|
||||
"$ref": "v1.PodDNSConfig",
|
||||
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
|
||||
},
|
||||
"readinessGates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.PodReadinessGate"
|
||||
},
|
||||
"description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -20388,7 +20399,7 @@
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
"description": "GitRepo represents a git repository at a particular revision."
|
||||
"description": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo 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."
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
@ -20496,7 +20507,7 @@
|
||||
},
|
||||
"v1.GitRepoVolumeSource": {
|
||||
"id": "v1.GitRepoVolumeSource",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.",
|
||||
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo 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.",
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
@ -20724,6 +20735,31 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.CinderVolumeSource": {
|
||||
"id": "v1.CinderVolumeSource",
|
||||
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
|
||||
"required": [
|
||||
"volumeID"
|
||||
],
|
||||
"properties": {
|
||||
"volumeID": {
|
||||
"type": "string",
|
||||
"description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: points to a secret object containing parameters used to connect to OpenStack."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.CephFSVolumeSource": {
|
||||
"id": "v1.CephFSVolumeSource",
|
||||
"description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
|
||||
@ -20926,6 +20962,10 @@
|
||||
"configMap": {
|
||||
"$ref": "v1.ConfigMapProjection",
|
||||
"description": "information about the configMap data to project"
|
||||
},
|
||||
"serviceAccountToken": {
|
||||
"$ref": "v1.ServiceAccountTokenProjection",
|
||||
"description": "information about the serviceAccountToken data to project"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -20984,6 +21024,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServiceAccountTokenProjection": {
|
||||
"id": "v1.ServiceAccountTokenProjection",
|
||||
"description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"audience": {
|
||||
"type": "string",
|
||||
"description": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."
|
||||
},
|
||||
"expirationSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the path relative to the mount point of the file to project the token into."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ScaleIOVolumeSource": {
|
||||
"id": "v1.ScaleIOVolumeSource",
|
||||
"description": "ScaleIOVolumeSource represents a persistent ScaleIO volume",
|
||||
@ -21663,6 +21725,31 @@
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw "
|
||||
},
|
||||
"sysctls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Sysctl"
|
||||
},
|
||||
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Sysctl": {
|
||||
"id": "v1.Sysctl",
|
||||
"description": "Sysctl defines a kernel parameter to be set",
|
||||
"required": [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of a property to set"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Value of a property to set"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -21887,13 +21974,26 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodReadinessGate": {
|
||||
"id": "v1.PodReadinessGate",
|
||||
"description": "PodReadinessGate contains the reference to a pod condition",
|
||||
"required": [
|
||||
"conditionType"
|
||||
],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"description": "ConditionType refers to a condition in the pod's condition list with matching type."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.PodStatus": {
|
||||
"id": "v1.PodStatus",
|
||||
"description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.",
|
||||
"description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.",
|
||||
"properties": {
|
||||
"phase": {
|
||||
"type": "string",
|
||||
"description": "Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase"
|
||||
"description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase"
|
||||
},
|
||||
"conditions": {
|
||||
"type": "array",
|
||||
@ -21956,7 +22056,7 @@
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"description": "Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions"
|
||||
"description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
@ -22457,7 +22557,7 @@
|
||||
"properties": {
|
||||
"hard": {
|
||||
"type": "object",
|
||||
"description": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/"
|
||||
"description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/"
|
||||
},
|
||||
"scopes": {
|
||||
"type": "array",
|
||||
@ -22465,6 +22565,10 @@
|
||||
"$ref": "v1.ResourceQuotaScope"
|
||||
},
|
||||
"description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects."
|
||||
},
|
||||
"scopeSelector": {
|
||||
"$ref": "v1.ScopeSelector",
|
||||
"description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched."
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -22472,6 +22576,44 @@
|
||||
"id": "v1.ResourceQuotaScope",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.ScopeSelector": {
|
||||
"id": "v1.ScopeSelector",
|
||||
"description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.",
|
||||
"properties": {
|
||||
"matchExpressions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ScopedResourceSelectorRequirement"
|
||||
},
|
||||
"description": "A list of scope selector requirements by scope of the resources."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ScopedResourceSelectorRequirement": {
|
||||
"id": "v1.ScopedResourceSelectorRequirement",
|
||||
"description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.",
|
||||
"required": [
|
||||
"scopeName",
|
||||
"operator"
|
||||
],
|
||||
"properties": {
|
||||
"scopeName": {
|
||||
"type": "string",
|
||||
"description": "The name of the scope that the selector applies to."
|
||||
},
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist."
|
||||
},
|
||||
"values": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ResourceQuotaStatus": {
|
||||
"id": "v1.ResourceQuotaStatus",
|
||||
"description": "ResourceQuotaStatus defines the enforced hard limits and observed use.",
|
||||
|
@ -1,13 +1,11 @@
|
||||
# Note: This dropin only works with kubeadm and kubelet v1.11+
|
||||
[Service]
|
||||
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
|
||||
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
|
||||
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
|
||||
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
|
||||
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
|
||||
# Value should match Docker daemon settings.
|
||||
# Defaults are "cgroupfs" for Debian/Ubuntu/OpenSUSE and "systemd" for Fedora/CentOS/RHEL
|
||||
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
|
||||
Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
|
||||
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true"
|
||||
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
|
||||
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
|
||||
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
|
||||
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
|
||||
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
|
||||
EnvironmentFile=-/etc/default/kubelet
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
|
||||
|
@ -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(["**"]),
|
||||
|
@ -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}"
|
||||
|
@ -124,7 +124,7 @@ ifeq ($(PRINT_HELP),y)
|
||||
verify:
|
||||
@echo "$$VERIFY_HELP_INFO"
|
||||
else
|
||||
verify: verify_generated_files
|
||||
verify:
|
||||
KUBE_VERIFY_GIT_BRANCH=$(BRANCH) hack/make-rules/verify.sh
|
||||
endif
|
||||
|
||||
@ -139,7 +139,7 @@ ifeq ($(PRINT_HELP),y)
|
||||
quick-verify:
|
||||
@echo "$$QUICK_VERIFY_HELP_INFO"
|
||||
else
|
||||
quick-verify: verify_generated_files
|
||||
quick-verify:
|
||||
QUICK=true SILENT=false hack/make-rules/verify.sh
|
||||
endif
|
||||
|
||||
@ -483,21 +483,6 @@ generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define VERIFY_GENERATED_FILES_HELP_INFO
|
||||
# Verify auto-generated files needed for the build.
|
||||
#
|
||||
# Example:
|
||||
# make verify_generated_files
|
||||
endef
|
||||
.PHONY: verify_generated_files
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
verify_generated_files:
|
||||
@echo "$$VERIFY_GENERATED_FILES_HELP_INFO"
|
||||
else
|
||||
verify_generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define HELP_INFO
|
||||
# Print make targets and help info
|
||||
#
|
||||
|
@ -37,81 +37,54 @@ SHELL := /bin/bash
|
||||
.PHONY: generated_files
|
||||
generated_files: gen_deepcopy gen_defaulter gen_conversion gen_openapi gen_bindata
|
||||
|
||||
.PHONY: verify_generated_files
|
||||
verify_generated_files: verify_gen_deepcopy \
|
||||
verify_gen_defaulter \
|
||||
verify_gen_conversion
|
||||
#
|
||||
# Helper logic to calculate Go's dependency DAG ourselves.
|
||||
#
|
||||
|
||||
# This is a file that will be emitted by the go2make tool, containing a
|
||||
# variable for each Go package in the project (including deps) which lists all
|
||||
# of the transitive deps of that package. Each variable is named the same as
|
||||
# the package - for example the variable for `k8s.io/kubernetes/pkg/api` is
|
||||
# $(k8s.io/kubernetes/pkg/api). This is roughly the same DAG that the Go
|
||||
# compiler uses. These variables can be used to figure out if, for example,
|
||||
# generated code needs to be regenerated.
|
||||
GO_PKGDEPS_FILE = go-pkgdeps.mk
|
||||
|
||||
# Include the Go package dependencies file. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart and
|
||||
# reload the updated deps.
|
||||
sinclude $(META_DIR)/$(GO_PKGDEPS_FILE)
|
||||
|
||||
# Update the set of Go deps for our project. This will let us determine if
|
||||
# we really need to do expensive codegen. We use FORCE because it is not a
|
||||
# PHONY file, but we do want it to be re-evaluated every time make is run. The
|
||||
# file will only be touched if it actually changes.
|
||||
$(META_DIR)/$(GO_PKGDEPS_FILE): FORCE
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: calculating Go dependencies"; \
|
||||
fi
|
||||
hack/run-in-gopath.sh go install ./hack/make-rules/helpers/go2make
|
||||
hack/run-in-gopath.sh go2make \
|
||||
k8s.io/kubernetes/... \
|
||||
--prune k8s.io/kubernetes/staging \
|
||||
--prune k8s.io/kubernetes/vendor \
|
||||
k8s.io/kubernetes/vendor/k8s.io/... \
|
||||
github.com/jteeuwen/go-bindata/go-bindata/... \
|
||||
> $@.tmp
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(GO_PKGDEPS_FILE) changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
fi
|
||||
rm -f $@.tmp
|
||||
|
||||
.PHONY: FORCE
|
||||
FORCE:
|
||||
|
||||
# Code-generation logic.
|
||||
#
|
||||
# This stuff can be pretty tricky, and there's probably some corner cases that
|
||||
# we don't handle well. That said, here's a straightforward test to prove that
|
||||
# the most common cases work. Sadly, it is manual.
|
||||
# Helper logic to find which directories need codegen as quickly as possible.
|
||||
#
|
||||
# make clean
|
||||
# find . -name .make\* | xargs rm -f
|
||||
# find . -name zz_generated\* | xargs rm -f
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make nonexistent
|
||||
# # expect "No rule to make target"
|
||||
# # verify `find .make/ -type f | wc -l` has many files
|
||||
#
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_deepcopy
|
||||
# # expect one file to be regenerated
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_conversion
|
||||
# # expect one file to be regenerated
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch vendor/k8s.io/code-generator/cmd/conversion-gen/main.go
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make all
|
||||
# # expect it to build
|
||||
#
|
||||
# make test
|
||||
# # expect it to pass
|
||||
#
|
||||
# make clean
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make all WHAT=cmd/kube-proxy
|
||||
# # expect it to build
|
||||
#
|
||||
# make clean
|
||||
# make test WHAT=cmd/kube-proxy
|
||||
# # expect it to pass
|
||||
|
||||
# This variable holds a list of every directory that contains Go files in this
|
||||
# project. Other rules and variables can use this as a starting point to
|
||||
@ -123,63 +96,6 @@ ALL_GO_DIRS := $(shell \
|
||||
hack/make-rules/helpers/cache_go_dirs.sh $(META_DIR)/all_go_dirs.mk \
|
||||
)
|
||||
|
||||
# The name of the metadata file which lists *.go files in each pkg.
|
||||
GOFILES_META := gofiles.mk
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META)):
|
||||
FILES=$$(ls $</*.go | grep --color=never -v $(GENERATED_FILE_PREFIX)); \
|
||||
mkdir -p $(@D); \
|
||||
echo "gofiles__$< := $$(echo $${FILES})" >$@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: gofiles changed for $@"; \
|
||||
fi; \
|
||||
touch $@.stamp; \
|
||||
fi; \
|
||||
mv $@.tmp $@
|
||||
|
||||
# This is required to fill in the DAG, since some cases (e.g. 'make clean all')
|
||||
# will reference the .stamp file when it doesn't exist. We don't need to
|
||||
# rebuild it in that case, just keep make happy.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META).stamp):
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(GOFILES_META) \
|
||||
))
|
||||
|
||||
# Generate a list of all files that have a `+k8s:` comment-tag. This will be
|
||||
# used to derive lists of files/dirs for generation tools.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
@ -190,7 +106,12 @@ ALL_K8S_TAG_FILES := $(shell \
|
||||
| xargs grep --color=never -l '^// *+k8s:' \
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# Code generation logic.
|
||||
#
|
||||
|
||||
|
||||
# Deep-copy generation
|
||||
#
|
||||
# Any package that wants deep-copy functions generated must include a
|
||||
@ -220,34 +141,27 @@ DEEPCOPY_DIRS := $(shell \
|
||||
)
|
||||
DEEPCOPY_FILES := $(addsuffix /$(DEEPCOPY_FILENAME), $(DEEPCOPY_DIRS))
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_DEEPCOPY = \
|
||||
function run_gen_deepcopy() { \
|
||||
if [[ -f $(META_DIR)/$(DEEPCOPY_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(DEEPCOPY_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(DEEPCOPY_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(DEEPCOPY_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
--bounding-dirs $(PRJ_SRC_PATH),"k8s.io/api" \
|
||||
-O $(DEEPCOPY_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_deepcopy
|
||||
# Reset the list of packages that need generation.
|
||||
$(shell mkdir -p $$(dirname $(META_DIR)/$(DEEPCOPY_GEN)))
|
||||
$(shell rm -f $(META_DIR)/$(DEEPCOPY_GEN).todo)
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_deepcopy
|
||||
gen_deepcopy: $(DEEPCOPY_FILES) $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_deepcopy: $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY) --verify-only
|
||||
gen_deepcopy: $(DEEPCOPY_GEN) $(META_DIR)/$(DEEPCOPY_GEN).todo
|
||||
if [[ -s $(META_DIR)/$(DEEPCOPY_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(DEEPCOPY_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(DEEPCOPY_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(DEEPCOPY_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
--bounding-dirs $(PRJ_SRC_PATH),"k8s.io/api" \
|
||||
-O $(DEEPCOPY_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
|
||||
# For each dir in DEEPCOPY_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
@ -258,71 +172,35 @@ verify_gen_deepcopy: $(DEEPCOPY_GEN)
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEEPCOPY_DIRS), $(eval \
|
||||
$(dir)/$(DEEPCOPY_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
$(foreach dir, $(DEEPCOPY_DIRS), $(eval \
|
||||
$(dir)/$(DEEPCOPY_FILENAME): $($(PRJ_SRC_PATH)/$(dir)) \
|
||||
))
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEEPCOPY_GEN)*.todo)
|
||||
|
||||
# How to regenerate deep-copy code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(META_DIR)/$(DEEPCOPY_GEN).todo: $(DEEPCOPY_FILES)
|
||||
|
||||
$(DEEPCOPY_FILES): $(DEEPCOPY_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEEPCOPY_GEN))
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: deepcopy needed $(@D): $?"; \
|
||||
ls -lf --full-time $@ $? || true; \
|
||||
fi
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEEPCOPY_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
$(META_DIR)/$(DEEPCOPY_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEEPCOPY_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./vendor/k8s.io/code-generator/cmd/deepcopy-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(DEEPCOPY_GEN).mk changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
rm -f $@.tmp; \
|
||||
fi
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEEPCOPY_GEN).mk, above.
|
||||
# the $(GO_PKGDEPS_FILE), above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEEPCOPY_GEN):
|
||||
# newer than the binary, and try to "rebuild" it over and over. So we touch
|
||||
# it, and make is happy.
|
||||
$(DEEPCOPY_GEN): $(k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/deepcopy-gen)
|
||||
hack/make-rules/build.sh ./vendor/k8s.io/code-generator/cmd/deepcopy-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
|
||||
# Defaulter generation
|
||||
#
|
||||
# Any package that wants defaulter functions generated must include a
|
||||
@ -359,134 +237,64 @@ DEFAULTER_DIRS := $(shell \
|
||||
|
||||
DEFAULTER_FILES := $(addsuffix /$(DEFAULTER_FILENAME), $(DEFAULTER_DIRS))
|
||||
|
||||
RUN_GEN_DEFAULTER := \
|
||||
function run_gen_defaulter() { \
|
||||
if [[ -f $(META_DIR)/$(DEFAULTER_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(DEFAULTER_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(DEFAULTER_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(DEFAULTER_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
--extra-peer-dirs $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(DEFAULTER_DIRS)) | sed 's/ /,/g') \
|
||||
-O $(DEFAULTER_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_defaulter
|
||||
# Reset the list of packages that need generation.
|
||||
$(shell mkdir -p $$(dirname $(META_DIR)/$(DEFAULTER_GEN)))
|
||||
$(shell rm -f $(META_DIR)/$(DEFAULTER_GEN).todo)
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_defaulter
|
||||
gen_defaulter: $(DEFAULTER_FILES) $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_defaulter: $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER) --verify-only
|
||||
gen_defaulter: $(DEFAULTER_GEN) $(META_DIR)/$(DEFAULTER_GEN).todo
|
||||
if [[ -s $(META_DIR)/$(DEFAULTER_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(DEFAULTER_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(DEFAULTER_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(DEFAULTER_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
--extra-peer-dirs $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(DEFAULTER_DIRS)) | sed 's/ /,/g') \
|
||||
-O $(DEFAULTER_BASENAME) \
|
||||
"$$@"; \
|
||||
fi
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
# Note that this is a deps-only statement, not a full rule (see below for that).
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
$(foreach dir, $(DEFAULTER_DIRS), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $($(PRJ_SRC_PATH)/$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, for each target in $(defaulters__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), \
|
||||
$(foreach tgt, $(defaulters__$(dir)), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEFAULTER_GEN)*.todo)
|
||||
|
||||
# How to regenerate defaulter code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(META_DIR)/$(DEFAULTER_GEN).todo: $(DEFAULTER_FILES)
|
||||
|
||||
$(DEFAULTER_FILES): $(DEFAULTER_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEFAULTER_GEN))
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: defaulter needed $(@D): $?"; \
|
||||
ls -lf --full-time $@ $? || true; \
|
||||
fi
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEFAULTER_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
$(META_DIR)/$(DEFAULTER_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEFAULTER_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./vendor/k8s.io/code-generator/cmd/defaulter-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(DEFAULTER_GEN).mk changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
rm -f $@.tmp; \
|
||||
fi
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEFAULTER_GEN).mk, above.
|
||||
# the $(GO_PKGDEPS_FILE), above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEFAULTER_GEN):
|
||||
# newer than the binary, and try to "rebuild" it over and over. So we touch
|
||||
# it, and make is happy.
|
||||
$(DEFAULTER_GEN): $(k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/defaulter-gen)
|
||||
hack/make-rules/build.sh ./vendor/k8s.io/code-generator/cmd/defaulter-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
|
||||
# Conversion generation
|
||||
#
|
||||
# Any package that wants conversion functions generated must include one or
|
||||
@ -526,171 +334,52 @@ CONVERSION_DIRS := $(shell \
|
||||
CONVERSION_FILES := $(addsuffix /$(CONVERSION_FILENAME), $(CONVERSION_DIRS))
|
||||
CONVERSION_EXTRA_PEER_DIRS := k8s.io/kubernetes/pkg/apis/core,k8s.io/kubernetes/pkg/apis/core/v1,k8s.io/api/core/v1
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_CONVERSION = \
|
||||
function run_gen_conversion() { \
|
||||
if [[ -f $(META_DIR)/$(CONVERSION_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(CONVERSION_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(CONVERSION_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(CONVERSION_GEN) \
|
||||
--extra-peer-dirs $(CONVERSION_EXTRA_PEER_DIRS) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
-O $(CONVERSION_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_conversion
|
||||
# Reset the list of packages that need generation.
|
||||
$(shell mkdir -p $$(dirname $(META_DIR)/$(CONVERSION_GEN)))
|
||||
$(shell rm -f $(META_DIR)/$(CONVERSION_GEN).todo)
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_conversion
|
||||
gen_conversion: $(CONVERSION_FILES) $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION)
|
||||
|
||||
.PHONY: verify_gen_conversion
|
||||
verify_gen_conversion: $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION) --verify-only
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META)):
|
||||
TAGS=$$(grep --color=never -h '^// *+k8s:conversion-gen=' $</*.go \
|
||||
| cut -f2- -d= \
|
||||
| sed 's|$(PRJ_SRC_PATH)/||' \
|
||||
| sed 's|^k8s.io/|vendor/k8s.io/|'); \
|
||||
mkdir -p $(@D); \
|
||||
echo "conversions__$< := $$(echo $${TAGS})" >$@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: conversions changed for $@"; \
|
||||
fi; \
|
||||
touch $@.stamp; \
|
||||
fi; \
|
||||
mv $@.tmp $@
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(CONVERSIONS_META) \
|
||||
))
|
||||
gen_conversion: $(CONVERSION_GEN) $(META_DIR)/$(CONVERSION_GEN).todo
|
||||
if [[ -s $(META_DIR)/$(CONVERSION_GEN).todo ]]; then \
|
||||
pkgs=$$(cat $(META_DIR)/$(CONVERSION_GEN).todo | paste -sd, -); \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: running $(CONVERSION_GEN) for $$pkgs"; \
|
||||
fi; \
|
||||
./hack/run-in-gopath.sh $(CONVERSION_GEN) \
|
||||
--extra-peer-dirs $(CONVERSION_EXTRA_PEER_DIRS) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i "$$pkgs" \
|
||||
-O $(CONVERSION_BASENAME) \
|
||||
"$$@"; \
|
||||
fi
|
||||
|
||||
# For each dir in CONVERSION_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
# Note that this is a deps-only statement, not a full rule (see below for that).
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $($(PRJ_SRC_PATH)/$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in CONVERSION_DIRS, for each target in $(conversions__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(foreach tgt, $(conversions__$(dir)), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(CONVERSION_GEN)*.todo)
|
||||
|
||||
# How to regenerate conversion code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(META_DIR)/$(CONVERSION_GEN).todo: $(CONVERSION_FILES)
|
||||
|
||||
$(CONVERSION_FILES): $(CONVERSION_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(CONVERSION_GEN))
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: conversion needed $(@D): $?"; \
|
||||
ls -lf --full-time $@ $? || true; \
|
||||
fi
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(CONVERSION_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
$(META_DIR)/$(CONVERSION_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(CONVERSION_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./vendor/k8s.io/code-generator/cmd/conversion-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(CONVERSION_GEN).mk changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
rm -f $@.tmp; \
|
||||
fi
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(CONVERSION_GEN).mk, above.
|
||||
# the $(GO_PKGDEPS_FILE), above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
@ -698,12 +387,12 @@ sinclude $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(CONVERSION_GEN):
|
||||
$(CONVERSION_GEN): $(k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/conversion-gen)
|
||||
hack/make-rules/build.sh ./vendor/k8s.io/code-generator/cmd/conversion-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Open-api generation
|
||||
|
||||
# OpenAPI generation
|
||||
#
|
||||
# Any package that wants open-api functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
@ -736,77 +425,38 @@ gen_openapi: $(OPENAPI_OUTFILE) $(OPENAPI_GEN)
|
||||
# For each dir in OPENAPI_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
# Note that this is a deps-only statement, not a full rule (see below for that).
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(OPENAPI_DIRS), $(eval \
|
||||
$(OPENAPI_OUTFILE): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
$(foreach dir, $(OPENAPI_DIRS), $(eval \
|
||||
$(OPENAPI_OUTFILE): $($(PRJ_SRC_PATH)/$(dir)) \
|
||||
))
|
||||
|
||||
# How to regenerate open-api code. This emits a single file for all results.
|
||||
$(OPENAPI_OUTFILE): $(OPENAPI_GEN) $(OPENAPI_GEN)
|
||||
function run_gen_openapi() { \
|
||||
./hack/run-in-gopath.sh $(OPENAPI_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(OPENAPI_DIRS)) | sed 's/ /,/g') \
|
||||
-p $(PRJ_SRC_PATH)/$(OPENAPI_OUTPUT_PKG) \
|
||||
-O $(OPENAPI_BASENAME) \
|
||||
"$$@"; \
|
||||
}; \
|
||||
run_gen_openapi
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
$(META_DIR)/$(OPENAPI_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(OPENAPI_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./vendor/k8s.io/code-generator/cmd/openapi-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(OPENAPI_GEN).mk changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
rm -f $@.tmp; \
|
||||
fi
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
$(OPENAPI_OUTFILE): $(OPENAPI_GEN)
|
||||
./hack/run-in-gopath.sh $(OPENAPI_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(OPENAPI_DIRS)) | sed 's/ /,/g') \
|
||||
-p $(PRJ_SRC_PATH)/$(OPENAPI_OUTPUT_PKG) \
|
||||
-O $(OPENAPI_BASENAME) \
|
||||
"$$@"
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(OPENAPI_GEN).mk, above.
|
||||
# the $(GO_PKGDEPS_FILE), above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(OPENAPI_GEN):
|
||||
# newer than the binary, and try to "rebuild" it over and over. So we touch
|
||||
# it, and make is happy.
|
||||
$(OPENAPI_GEN): $(k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/openapi-gen)
|
||||
hack/make-rules/build.sh ./vendor/k8s.io/code-generator/cmd/openapi-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
|
||||
# bindata generation
|
||||
#
|
||||
|
||||
@ -822,38 +472,6 @@ BINDATA_SCRIPT := hack/generate-bindata.sh
|
||||
gen_bindata: $(BINDATA_GEN) FORCE
|
||||
./hack/run-in-gopath.sh $(BINDATA_SCRIPT)
|
||||
|
||||
FORCE:
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(BINDATA_GEN).mk
|
||||
$(META_DIR)/$(BINDATA_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(BINDATA_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./vendor/github.com/jteeuwen/go-bindata/go-bindata \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
if ! cmp -s $@.tmp $@; then \
|
||||
if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
|
||||
echo "DBG: $(BINDATA_GEN).mk changed"; \
|
||||
fi; \
|
||||
cat $@.tmp > $@; \
|
||||
rm -f $@.tmp; \
|
||||
fi
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(BINDATA_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(BINDATA_GEN).mk, above.
|
||||
#
|
||||
@ -863,6 +481,6 @@ sinclude $(META_DIR)/$(BINDATA_GEN).mk
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(BINDATA_GEN):
|
||||
$(BINDATA_GEN): $(k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata)
|
||||
hack/make-rules/build.sh ./vendor/github.com/jteeuwen/go-bindata/go-bindata
|
||||
touch $@
|
||||
|
@ -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 = "672cdc7670003949bb247fb2e3e0dccab74de0075fc283d6579e88a6c1ab3256",
|
||||
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",
|
||||
|
@ -1,14 +1,11 @@
|
||||
# Note: This dropin only works with kubeadm and kubelet v1.11+
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/sysconfig/kubelet
|
||||
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
|
||||
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
|
||||
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
|
||||
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
|
||||
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
|
||||
# Value should match Docker daemon settings.
|
||||
# Defaults are "cgroupfs" for Debian/Ubuntu/OpenSUSE and "systemd" for Fedora/CentOS/RHEL
|
||||
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
|
||||
Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
|
||||
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true"
|
||||
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
|
||||
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
|
||||
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
|
||||
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
|
||||
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
|
||||
EnvironmentFile=-/etc/sysconfig/kubelet
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
|
||||
|
@ -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,17 @@ 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"],
|
||||
version = CRI_TOOLS_VERSION,
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
|
21
build/rpms/cri-tools.spec
Normal file
21
build/rpms/cri-tools.spec
Normal file
@ -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
|
||||
# This has to be hard coded because bazel does a path substitution before rpm's %{version} is substituted.
|
||||
tar -xzf {crictl-v1.11.0-linux-amd64.tar.gz}
|
||||
|
||||
%install
|
||||
install -m 755 -d %{buildroot}%{_bindir}
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} crictl
|
||||
|
||||
%files
|
||||
%{_bindir}/crictl
|
@ -202,22 +202,12 @@ package_group(
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kube-proxy/app",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":pkg_kubectl_cmd_util_CONSUMERS_BAD",
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
|
15
build/workspace.bzl
Normal file
15
build/workspace.bzl
Normal file
@ -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.11.0"
|
@ -1,5 +1,4 @@
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
description: Calico Global BGP Configuration
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: globalbgpconfigs.crd.projectcalico.org
|
||||
|
@ -1,5 +1,4 @@
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
description: Calico Global Felix Configuration
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: globalfelixconfigs.crd.projectcalico.org
|
||||
|
@ -1,5 +1,4 @@
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
description: Calico Global Network Policies
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: globalnetworkpolicies.crd.projectcalico.org
|
||||
|
@ -1,5 +1,4 @@
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
description: Calico IP Pools
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: ippools.crd.projectcalico.org
|
||||
|
@ -1,6 +1,12 @@
|
||||
approvers:
|
||||
- floreks
|
||||
- maciaszczykm
|
||||
- bryk
|
||||
reviewers:
|
||||
- cheld
|
||||
- cupofcat
|
||||
- danielromlein
|
||||
- floreks
|
||||
- ianlewis
|
||||
- konryd
|
||||
- maciaszczykm
|
||||
- mhenc
|
||||
- rf232
|
||||
|
@ -29,6 +29,6 @@ all: transform
|
||||
%.sed: %.base
|
||||
sed -f transforms2sed.sed $< | sed s/__SOURCE_FILENAME__/$</g > $@
|
||||
|
||||
transform: kube-dns.yaml.in kube-dns.yaml.sed coredns.yaml.in coredns.yaml.sed
|
||||
transform: coredns.yaml.in coredns.yaml.sed
|
||||
|
||||
.PHONY: transform
|
@ -66,6 +66,7 @@ data:
|
||||
prometheus :9153
|
||||
proxy . /etc/resolv.conf
|
||||
cache 30
|
||||
reload
|
||||
}
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
@ -105,7 +106,7 @@ spec:
|
||||
operator: "Exists"
|
||||
containers:
|
||||
- name: coredns
|
||||
image: coredns/coredns:1.0.6
|
||||
image: k8s.gcr.io/coredns:1.1.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
@ -117,6 +118,7 @@ spec:
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/coredns
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 53
|
||||
name: dns
|
||||
@ -124,6 +126,9 @@ spec:
|
||||
- containerPort: 53
|
||||
name: dns-tcp
|
||||
protocol: TCP
|
||||
- containerPort: 9153
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
@ -133,6 +138,14 @@ spec:
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 5
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- NET_BIND_SERVICE
|
||||
drop:
|
||||
- all
|
||||
readOnlyRootFilesystem: true
|
||||
dnsPolicy: Default
|
||||
volumes:
|
||||
- name: config-volume
|
||||
@ -147,6 +160,8 @@ kind: Service
|
||||
metadata:
|
||||
name: kube-dns
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
k8s-app: kube-dns
|
||||
kubernetes.io/cluster-service: "true"
|
@ -66,6 +66,7 @@ data:
|
||||
prometheus :9153
|
||||
proxy . /etc/resolv.conf
|
||||
cache 30
|
||||
reload
|
||||
}
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
@ -105,7 +106,7 @@ spec:
|
||||
operator: "Exists"
|
||||
containers:
|
||||
- name: coredns
|
||||
image: coredns/coredns:1.0.6
|
||||
image: k8s.gcr.io/coredns:1.1.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
@ -117,6 +118,7 @@ spec:
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/coredns
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 53
|
||||
name: dns
|
||||
@ -124,6 +126,9 @@ spec:
|
||||
- containerPort: 53
|
||||
name: dns-tcp
|
||||
protocol: TCP
|
||||
- containerPort: 9153
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
@ -133,6 +138,14 @@ spec:
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 5
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- NET_BIND_SERVICE
|
||||
drop:
|
||||
- all
|
||||
readOnlyRootFilesystem: true
|
||||
dnsPolicy: Default
|
||||
volumes:
|
||||
- name: config-volume
|
||||
@ -147,6 +160,8 @@ kind: Service
|
||||
metadata:
|
||||
name: kube-dns
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
k8s-app: kube-dns
|
||||
kubernetes.io/cluster-service: "true"
|
@ -66,6 +66,7 @@ data:
|
||||
prometheus :9153
|
||||
proxy . /etc/resolv.conf
|
||||
cache 30
|
||||
reload
|
||||
}
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
@ -105,7 +106,7 @@ spec:
|
||||
operator: "Exists"
|
||||
containers:
|
||||
- name: coredns
|
||||
image: coredns/coredns:1.0.6
|
||||
image: k8s.gcr.io/coredns:1.1.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
@ -117,6 +118,7 @@ spec:
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/coredns
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 53
|
||||
name: dns
|
||||
@ -124,6 +126,9 @@ spec:
|
||||
- containerPort: 53
|
||||
name: dns-tcp
|
||||
protocol: TCP
|
||||
- containerPort: 9153
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
@ -133,6 +138,14 @@ spec:
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 5
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- NET_BIND_SERVICE
|
||||
drop:
|
||||
- all
|
||||
readOnlyRootFilesystem: true
|
||||
dnsPolicy: Default
|
||||
volumes:
|
||||
- name: config-volume
|
||||
@ -147,6 +160,8 @@ kind: Service
|
||||
metadata:
|
||||
name: kube-dns
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
k8s-app: kube-dns
|
||||
kubernetes.io/cluster-service: "true"
|
34
cluster/addons/dns/kube-dns/Makefile
Normal file
34
cluster/addons/dns/kube-dns/Makefile
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2016 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.
|
||||
|
||||
# Makefile for the kubedns underscore templates to Salt/Pillar and other formats.
|
||||
|
||||
# If you update the *.base templates, please run this Makefile before pushing.
|
||||
#
|
||||
# Usage:
|
||||
# make
|
||||
|
||||
all: transform
|
||||
|
||||
# .base -> .in pattern rule
|
||||
%.in: %.base
|
||||
sed -f transforms2salt.sed $< | sed s/__SOURCE_FILENAME__/$</g > $@
|
||||
|
||||
# .base -> .sed pattern rule
|
||||
%.sed: %.base
|
||||
sed -f transforms2sed.sed $< | sed s/__SOURCE_FILENAME__/$</g > $@
|
||||
|
||||
transform: kube-dns.yaml.in kube-dns.yaml.sed
|
||||
|
||||
.PHONY: transform
|
@ -9,7 +9,7 @@ can use the DNS Service’s IP to resolve DNS names.
|
||||
## Manually scale kube-dns Deployment
|
||||
|
||||
kube-dns creates only one DNS Pod by default. If
|
||||
[dns-horizontal-autoscaler](../dns-horizontal-autoscaler/)
|
||||
[dns-horizontal-autoscaler](../../dns-horizontal-autoscaler/)
|
||||
is not enabled, you may need to manually scale kube-dns Deployment.
|
||||
|
||||
Please use below `kubectl scale` command to scale:
|
||||
@ -18,9 +18,9 @@ kubectl --namespace=kube-system scale deployment kube-dns --replicas=<NUM_YOU_WA
|
||||
```
|
||||
|
||||
Do not use `kubectl edit` to modify kube-dns Deployment object if it is
|
||||
controlled by [Addon Manager](../addon-manager/). Otherwise the modifications
|
||||
controlled by [Addon Manager](../../addon-manager/). Otherwise the modifications
|
||||
will be clobbered, in addition the replicas count for kube-dns Deployment will
|
||||
be reset to 1. See [Cluster add-ons README](../README.md) and
|
||||
be reset to 1. See [Cluster add-ons README](../../README.md) and
|
||||
[#36411](https://github.com/kubernetes/kubernetes/issues/36411) for reference.
|
||||
|
||||
## kube-dns addon templates
|
4
cluster/addons/dns/kube-dns/transforms2salt.sed
Normal file
4
cluster/addons/dns/kube-dns/transforms2salt.sed
Normal file
@ -0,0 +1,4 @@
|
||||
s/__PILLAR__DNS__SERVER__/{{ pillar['dns_server'] }}/g
|
||||
s/__PILLAR__DNS__DOMAIN__/{{ pillar['dns_domain'] }}/g
|
||||
s/__PILLAR__CLUSTER_CIDR__/{{ pillar['service_cluster_ip_range'] }}/g
|
||||
s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g
|
4
cluster/addons/dns/kube-dns/transforms2sed.sed
Normal file
4
cluster/addons/dns/kube-dns/transforms2sed.sed
Normal file
@ -0,0 +1,4 @@
|
||||
s/__PILLAR__DNS__SERVER__/$DNS_SERVER_IP/g
|
||||
s/__PILLAR__DNS__DOMAIN__/$DNS_DOMAIN/g
|
||||
s/__PILLAR__CLUSTER_CIDR__/$SERVICE_CLUSTER_IP_RANGE/g
|
||||
s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g
|
@ -19,15 +19,16 @@ a Deployment, but allows for maintaining state on storage volumes.
|
||||
|
||||
### Security
|
||||
|
||||
Elasticsearch has capabilities to enable authorization using the
|
||||
[X-Pack plugin][xPack]. See configuration parameter `xpack.security.enabled`
|
||||
in Elasticsearch and Kibana configurations. It can also be set via the
|
||||
`XPACK_SECURITY_ENABLED` env variable. After enabling the feature,
|
||||
follow [official documentation][setupCreds] to set up credentials in
|
||||
Elasticsearch and Kibana. Don't forget to propagate those credentials also to
|
||||
Fluentd in its [configuration][fluentdCreds], using for example
|
||||
[environment variables][fluentdEnvVar]. You can utilize [ConfigMaps][configMap]
|
||||
and [Secrets][secret] to store credentials in the Kubernetes apiserver.
|
||||
Elasticsearch has capabilities to enable authorization using the [X-Pack
|
||||
plugin][xPack]. For the sake of simplicity this example uses the fully open
|
||||
source prebuild images from elastic that do not contain the X-Pack plugin. If
|
||||
you need these features, please consider building the images from either the
|
||||
"basic" or "platinum" version. After enabling these features, follow [official
|
||||
documentation][setupCreds] to set up credentials in Elasticsearch and Kibana.
|
||||
Don't forget to propagate those credentials also to Fluentd in its
|
||||
[configuration][fluentdCreds], using for example [environment
|
||||
variables][fluentdEnvVar]. You can utilize [ConfigMaps][configMap] and
|
||||
[Secrets][secret] to store credentials in the Kubernetes apiserver.
|
||||
|
||||
### Initialization
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.4
|
||||
FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
|
||||
|
||||
VOLUME ["/data"]
|
||||
EXPOSE 9200 9300
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
PREFIX = staging-k8s.gcr.io
|
||||
IMAGE = elasticsearch
|
||||
TAG = v5.6.4
|
||||
TAG = v6.2.4
|
||||
|
||||
build:
|
||||
docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) .
|
||||
|
@ -12,6 +12,3 @@ path.data: /data
|
||||
network.host: 0.0.0.0
|
||||
|
||||
discovery.zen.minimum_master_nodes: ${MINIMUM_MASTER_NODES}
|
||||
|
||||
xpack.security.enabled: false
|
||||
xpack.monitoring.enabled: false
|
||||
|
@ -26,4 +26,4 @@ export MINIMUM_MASTER_NODES=${MINIMUM_MASTER_NODES:-2}
|
||||
chown -R elasticsearch:elasticsearch /data
|
||||
|
||||
./bin/elasticsearch_logging_discovery >> ./config/elasticsearch.yml
|
||||
exec su elasticsearch -c ./bin/es-docker
|
||||
exec su elasticsearch -c /usr/local/bin/docker-entrypoint.sh
|
||||
|
@ -54,7 +54,7 @@ metadata:
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: elasticsearch-logging
|
||||
version: v5.6.4
|
||||
version: v6.2.4
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
spec:
|
||||
@ -63,17 +63,17 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: elasticsearch-logging
|
||||
version: v5.6.4
|
||||
version: v6.2.4
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: elasticsearch-logging
|
||||
version: v5.6.4
|
||||
version: v6.2.4
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
serviceAccountName: elasticsearch-logging
|
||||
containers:
|
||||
- image: k8s.gcr.io/elasticsearch:v5.6.4
|
||||
- image: k8s.gcr.io/elasticsearch:v6.2.4
|
||||
name: elasticsearch-logging
|
||||
resources:
|
||||
# need more cpu upon initialization, therefore burstable class
|
||||
|
@ -48,35 +48,36 @@ roleRef:
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: fluentd-es-v2.1.0
|
||||
name: fluentd-es-v2.2.0
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: fluentd-es
|
||||
version: v2.1.0
|
||||
version: v2.2.0
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: fluentd-es
|
||||
version: v2.1.0
|
||||
version: v2.2.0
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: fluentd-es
|
||||
kubernetes.io/cluster-service: "true"
|
||||
version: v2.1.0
|
||||
version: v2.2.0
|
||||
# This annotation ensures that fluentd does not get evicted if the node
|
||||
# supports critical pod annotation based priority scheme.
|
||||
# Note that this does not guarantee admission on the nodes (#40573).
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
|
||||
spec:
|
||||
priorityClassName: system-node-critical
|
||||
serviceAccountName: fluentd-es
|
||||
containers:
|
||||
- name: fluentd-es
|
||||
image: k8s.gcr.io/fluentd-elasticsearch:v2.1.0
|
||||
image: k8s.gcr.io/fluentd-elasticsearch:v2.2.0
|
||||
env:
|
||||
- name: FLUENTD_ARGS
|
||||
value: --no-supervisor -q
|
||||
|
@ -1,11 +1,11 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'fluentd', '<=1.2.1'
|
||||
gem 'fluentd', '<=1.2.2'
|
||||
gem 'activesupport', '~>5.2.0'
|
||||
gem 'fluent-plugin-kubernetes_metadata_filter', '~>2.1.2'
|
||||
gem 'fluent-plugin-elasticsearch', '~>2.10.1'
|
||||
gem 'fluent-plugin-systemd', '~>1.0.0'
|
||||
gem 'fluent-plugin-elasticsearch', '~>2.10.5'
|
||||
gem 'fluent-plugin-systemd', '~>1.0.1'
|
||||
gem 'fluent-plugin-detect-exceptions', '~>0.0.11'
|
||||
gem 'fluent-plugin-prometheus', '~>1.0.1'
|
||||
gem 'fluent-plugin-multi-format-parser', '~>1.0.0'
|
||||
gem 'oj', '~>3.6.0'
|
||||
gem 'oj', '~>3.6.2'
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
PREFIX = staging-k8s.gcr.io
|
||||
IMAGE = fluentd-elasticsearch
|
||||
TAG = v2.1.0
|
||||
TAG = v2.2.0
|
||||
|
||||
build:
|
||||
docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) .
|
||||
|
@ -16,10 +16,12 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: kibana-logging
|
||||
annotations:
|
||||
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
|
||||
spec:
|
||||
containers:
|
||||
- name: kibana-logging
|
||||
image: docker.elastic.co/kibana/kibana:5.6.4
|
||||
image: docker.elastic.co/kibana/kibana-oss:6.2.4
|
||||
resources:
|
||||
# need more cpu upon initialization, therefore burstable class
|
||||
limits:
|
||||
@ -31,10 +33,6 @@ spec:
|
||||
value: http://elasticsearch-logging:9200
|
||||
- name: SERVER_BASEPATH
|
||||
value: /api/v1/namespaces/kube-system/services/kibana-logging/proxy
|
||||
- name: XPACK_MONITORING_ENABLED
|
||||
value: "false"
|
||||
- name: XPACK_SECURITY_ENABLED
|
||||
value: "false"
|
||||
ports:
|
||||
- containerPort: 5601
|
||||
name: ui
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -26,7 +26,7 @@ export KUBE_CONFIG_FILE=${KUBE_CONFIG_FILE:-${KUBE_ROOT}/cluster/centos/config-d
|
||||
|
||||
function deploy_dns {
|
||||
echo "Deploying DNS on Kubernetes"
|
||||
cp "${KUBE_ROOT}/cluster/addons/dns/kube-dns.yaml.sed" kube-dns.yaml
|
||||
cp "${KUBE_ROOT}/cluster/addons/dns/kube-dns/kube-dns.yaml.sed" kube-dns.yaml
|
||||
sed -i -e "s/\\\$DNS_DOMAIN/${DNS_DOMAIN}/g" kube-dns.yaml
|
||||
sed -i -e "s/\\\$DNS_SERVER_IP/${DNS_SERVER_IP}/g" kube-dns.yaml
|
||||
|
||||
|
@ -180,6 +180,16 @@ if [[ ${NETWORK_POLICY_PROVIDER:-} == "calico" ]]; then
|
||||
NON_MASTER_NODE_LABELS="${NON_MASTER_NODE_LABELS:+${NON_MASTER_NODE_LABELS},}projectcalico.org/ds-ready=true"
|
||||
fi
|
||||
|
||||
# Optional: Enable netd.
|
||||
ENABLE_NETD="${KUBE_ENABLE_NETD:-false}"
|
||||
CUSTOM_NETD_YAML="${KUBE_CUSTOM_NETD_YAML:-}"
|
||||
|
||||
# To avoid running netd on a node that is not configured appropriately,
|
||||
# label each Node so that the DaemonSet can run the Pods only on ready Nodes.
|
||||
if [[ ${ENABLE_NETD:-} == "true" ]]; then
|
||||
NON_MASTER_NODE_LABELS="${NON_MASTER_NODE_LABELS:+${NON_MASTER_NODE_LABELS},}beta.kubernetes.io/kube-netd-ready=true"
|
||||
fi
|
||||
|
||||
# Enable metadata concealment by firewalling pod traffic to the metadata server
|
||||
# and run a proxy daemonset on nodes.
|
||||
#
|
||||
|
@ -191,11 +191,11 @@ 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=" --experimental-kernel-memcg-notification=true"
|
||||
fi
|
||||
if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]] || [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then
|
||||
MASTER_KUBELET_TEST_ARGS=" --experimental-kernel-memcg-notification=true"
|
||||
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}"
|
||||
@ -212,6 +212,16 @@ NODE_LABELS="${KUBE_NODE_LABELS:-beta.kubernetes.io/fluentd-ds-ready=true}"
|
||||
# NON_MASTER_NODE_LABELS are labels will only be applied on non-master nodes.
|
||||
NON_MASTER_NODE_LABELS="${KUBE_NON_MASTER_NODE_LABELS:-}"
|
||||
|
||||
# Optional: Enable netd.
|
||||
ENABLE_NETD="${KUBE_ENABLE_NETD:-false}"
|
||||
CUSTOM_NETD_YAML="${KUBE_CUSTOM_NETD_YAML:-}"
|
||||
|
||||
# To avoid running netd on a node that is not configured appropriately,
|
||||
# label each Node so that the DaemonSet can run the Pods only on ready Nodes.
|
||||
if [[ ${ENABLE_NETD:-} == "true" ]]; then
|
||||
NON_MASTER_NODE_LABELS="${NON_MASTER_NODE_LABELS:+${NON_MASTER_NODE_LABELS},}beta.kubernetes.io/kube-netd-ready=true"
|
||||
fi
|
||||
|
||||
# To avoid running Calico on a node that is not configured appropriately,
|
||||
# label each Node so that the DaemonSet can run the Pods only on ready Nodes.
|
||||
if [[ ${NETWORK_POLICY_PROVIDER:-} == "calico" ]]; then
|
||||
|
@ -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 <<EOF >/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
|
||||
@ -1207,7 +1234,15 @@ function prepare-kube-proxy-manifest-variables {
|
||||
params+=" --feature-gates=${FEATURE_GATES}"
|
||||
fi
|
||||
if [[ "${KUBE_PROXY_MODE:-}" == "ipvs" ]];then
|
||||
params+=" --proxy-mode=ipvs --feature-gates=SupportIPVSProxyMode=true"
|
||||
sudo modprobe -a ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4
|
||||
if [[ $? -eq 0 ]];
|
||||
then
|
||||
params+=" --proxy-mode=ipvs"
|
||||
else
|
||||
# If IPVS modules are not present, make sure the node does not come up as
|
||||
# healthy.
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
params+=" --iptables-sync-period=1m --iptables-min-sync-period=10s --ipvs-sync-period=1m --ipvs-min-sync-period=10s"
|
||||
if [[ -n "${KUBEPROXY_TEST_ARGS:-}" ]]; then
|
||||
@ -1970,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}"
|
||||
@ -2175,8 +2213,8 @@ function update-dashboard-controller {
|
||||
|
||||
# Sets up the manifests of coreDNS for k8s addons.
|
||||
function setup-coredns-manifest {
|
||||
local -r coredns_file="${dst_dir}/dns/coredns.yaml"
|
||||
mv "${dst_dir}/dns/coredns.yaml.in" "${coredns_file}"
|
||||
local -r coredns_file="${dst_dir}/dns/coredns/coredns.yaml"
|
||||
mv "${dst_dir}/dns/coredns/coredns.yaml.in" "${coredns_file}"
|
||||
# Replace the salt configurations with variable values.
|
||||
sed -i -e "s@{{ *pillar\['dns_domain'\] *}}@${DNS_DOMAIN}@g" "${coredns_file}"
|
||||
sed -i -e "s@{{ *pillar\['dns_server'\] *}}@${DNS_SERVER_IP}@g" "${coredns_file}"
|
||||
@ -2215,8 +2253,8 @@ function setup-fluentd {
|
||||
|
||||
# Sets up the manifests of kube-dns for k8s addons.
|
||||
function setup-kube-dns-manifest {
|
||||
local -r kubedns_file="${dst_dir}/dns/kube-dns.yaml"
|
||||
mv "${dst_dir}/dns/kube-dns.yaml.in" "${kubedns_file}"
|
||||
local -r kubedns_file="${dst_dir}/dns/kube-dns/kube-dns.yaml"
|
||||
mv "${dst_dir}/dns/kube-dns/kube-dns.yaml.in" "${kubedns_file}"
|
||||
if [ -n "${CUSTOM_KUBE_DNS_YAML:-}" ]; then
|
||||
# Replace with custom GKE kube-dns deployment.
|
||||
cat > "${kubedns_file}" <<EOF
|
||||
@ -2235,6 +2273,19 @@ EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# Sets up the manifests of netd for k8s addons.
|
||||
function setup-netd-manifest {
|
||||
local -r netd_file="${dst_dir}/netd/netd.yaml"
|
||||
mkdir -p "${dst_dir}/netd"
|
||||
touch "${netd_file}"
|
||||
if [ -n "${CUSTOM_NETD_YAML:-}" ]; then
|
||||
# Replace with custom GCP netd deployment.
|
||||
cat > "${netd_file}" <<EOF
|
||||
$(echo "$CUSTOM_NETD_YAML")
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# Prepares the manifests of k8s addons, and starts the addon manager.
|
||||
# Vars assumed:
|
||||
# CLUSTER_NAME
|
||||
@ -2341,13 +2392,17 @@ EOF
|
||||
setup-addon-manifests "addons" "device-plugins/nvidia-gpu"
|
||||
fi
|
||||
if [[ "${ENABLE_CLUSTER_DNS:-}" == "true" ]]; then
|
||||
setup-addon-manifests "addons" "dns"
|
||||
if [[ "${CLUSTER_DNS_CORE_DNS:-}" == "true" ]]; then
|
||||
setup-addon-manifests "addons" "dns/coredns"
|
||||
setup-coredns-manifest
|
||||
else
|
||||
setup-addon-manifests "addons" "dns/kube-dns"
|
||||
setup-kube-dns-manifest
|
||||
fi
|
||||
fi
|
||||
if [[ "${ENABLE_NETD:-}" == "true" ]]; then
|
||||
setup-netd-manifest
|
||||
fi
|
||||
if [[ "${ENABLE_NODE_LOGGING:-}" == "true" ]] && \
|
||||
[[ "${LOGGING_DESTINATION:-}" == "elasticsearch" ]] && \
|
||||
[[ "${ENABLE_CLUSTER_LOGGING:-}" == "true" ]]; then
|
||||
@ -2570,9 +2625,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
|
||||
|
@ -264,6 +264,18 @@ runtime-endpoint: ${CONTAINER_RUNTIME_ENDPOINT:-unix:///var/run/dockershim.sock}
|
||||
EOF
|
||||
}
|
||||
|
||||
function install-exec-auth-plugin {
|
||||
if [[ ! "${EXEC_AUTH_PLUGIN_URL:-}" ]]; then
|
||||
return
|
||||
fi
|
||||
local -r plugin_url="${EXEC_AUTH_PLUGIN_URL}"
|
||||
local -r plugin_sha1="${EXEC_AUTH_PLUGIN_SHA1}"
|
||||
|
||||
echo "Downloading gke-exec-auth-plugin binary"
|
||||
download-or-bust "${plugin_sha1}" "${plugin_url}"
|
||||
mv "${KUBE_HOME}/gke-exec-auth-plugin" "${KUBE_BIN}"
|
||||
}
|
||||
|
||||
function install-kube-manifests {
|
||||
# Put kube-system pods manifests in ${KUBE_HOME}/kube-manifests/.
|
||||
local dst_dir="${KUBE_HOME}/kube-manifests"
|
||||
@ -403,6 +415,10 @@ function install-kube-binary-config {
|
||||
# Install crictl on each node.
|
||||
install-crictl
|
||||
|
||||
if [[ "${KUBERNETES_MASTER:-}" == "false" ]]; then
|
||||
install-exec-auth-plugin
|
||||
fi
|
||||
|
||||
# Clean up.
|
||||
rm -rf "${KUBE_HOME}/kubernetes"
|
||||
rm -f "${KUBE_HOME}/${server_binary_tar}"
|
||||
|
@ -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 = [
|
||||
|
@ -7,6 +7,9 @@
|
||||
"labels": {
|
||||
"tier": "cluster-management",
|
||||
"component": "cluster-autoscaler"
|
||||
},
|
||||
"annotations": {
|
||||
"seccomp.security.alpha.kubernetes.io/pod": "docker/default"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
@ -14,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",
|
||||
@ -25,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",
|
||||
@ -56,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",
|
||||
@ -80,6 +88,12 @@
|
||||
"path": "/usr/share/ca-certificates"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "srvkube",
|
||||
"hostPath": {
|
||||
"path": "/etc/srv/kubernetes/cluster-autoscaler"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "logfile",
|
||||
"hostPath": {
|
||||
|
@ -5,6 +5,7 @@ metadata:
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
|
||||
labels:
|
||||
k8s-app: etcd-empty-dir-cleanup
|
||||
spec:
|
||||
|
@ -5,7 +5,8 @@
|
||||
"name":"etcd-server{{ suffix }}",
|
||||
"namespace": "kube-system",
|
||||
"annotations": {
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": ""
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": "",
|
||||
"seccomp.security.alpha.kubernetes.io/pod": "docker/default"
|
||||
}
|
||||
},
|
||||
"spec":{
|
||||
@ -62,7 +63,7 @@
|
||||
"ports": [
|
||||
{ "name": "serverport",
|
||||
"containerPort": {{ server_port }},
|
||||
"hostPort": {{ server_port }}
|
||||
"hostPort": {{ server_port }}
|
||||
},
|
||||
{ "name": "clientport",
|
||||
"containerPort": {{ port }},
|
||||
|
@ -5,6 +5,7 @@ metadata:
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
|
||||
labels:
|
||||
k8s-app: gcp-lb-controller
|
||||
version: v1.1.1
|
||||
|
@ -5,6 +5,7 @@ metadata:
|
||||
namespace: kube-system
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
|
||||
labels:
|
||||
component: kube-addon-manager
|
||||
spec:
|
||||
|
@ -5,7 +5,8 @@
|
||||
"name":"kube-apiserver",
|
||||
"namespace": "kube-system",
|
||||
"annotations": {
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": ""
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": "",
|
||||
"seccomp.security.alpha.kubernetes.io/pod": "docker/default"
|
||||
},
|
||||
"labels": {
|
||||
"tier": "control-plane",
|
||||
|
@ -5,7 +5,8 @@
|
||||
"name":"kube-controller-manager",
|
||||
"namespace": "kube-system",
|
||||
"annotations": {
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": ""
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": "",
|
||||
"seccomp.security.alpha.kubernetes.io/pod": "docker/default"
|
||||
},
|
||||
"labels": {
|
||||
"tier": "control-plane",
|
||||
|
@ -5,7 +5,8 @@
|
||||
"name":"kube-scheduler",
|
||||
"namespace": "kube-system",
|
||||
"annotations": {
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": ""
|
||||
"scheduler.alpha.kubernetes.io/critical-pod": "",
|
||||
"seccomp.security.alpha.kubernetes.io/pod": "docker/default"
|
||||
},
|
||||
"labels": {
|
||||
"tier": "control-plane",
|
||||
|
@ -642,7 +642,7 @@ function construct-kubelet-flags {
|
||||
# Network plugin
|
||||
if [[ -n "${NETWORK_PROVIDER:-}" || -n "${NETWORK_POLICY_PROVIDER:-}" ]]; then
|
||||
flags+=" --cni-bin-dir=/home/kubernetes/bin"
|
||||
if [[ "${NETWORK_POLICY_PROVIDER:-}" == "calico" ]]; then
|
||||
if [[ "${NETWORK_POLICY_PROVIDER:-}" == "calico" || "${ENABLE_NETD:-}" == "true" ]]; then
|
||||
# Calico uses CNI always.
|
||||
# Note that network policy won't work for master node.
|
||||
if [[ "${master}" == "true" ]]; then
|
||||
@ -653,15 +653,13 @@ function construct-kubelet-flags {
|
||||
else
|
||||
# Otherwise use the configured value.
|
||||
flags+=" --network-plugin=${NETWORK_PROVIDER}"
|
||||
|
||||
fi
|
||||
fi
|
||||
if [[ -n "${NON_MASQUERADE_CIDR:-}" ]]; then
|
||||
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}"
|
||||
@ -899,6 +897,9 @@ REGION: $(yaml-quote ${REGION})
|
||||
VOLUME_PLUGIN_DIR: $(yaml-quote ${VOLUME_PLUGIN_DIR})
|
||||
KUBELET_ARGS: $(yaml-quote ${KUBELET_ARGS})
|
||||
REQUIRE_METADATA_KUBELET_CONFIG_FILE: $(yaml-quote true)
|
||||
ENABLE_NETD: $(yaml-quote ${ENABLE_NETD:-false})
|
||||
CUSTOM_NETD_YAML: |
|
||||
$(echo "${CUSTOM_NETD_YAML:-}" | sed -e "s/'/''/g")
|
||||
EOF
|
||||
if [[ "${master}" == "true" && "${MASTER_OS_DISTRIBUTION}" == "gci" ]] || \
|
||||
[[ "${master}" == "false" && "${NODE_OS_DISTRIBUTION}" == "gci" ]] || \
|
||||
|
@ -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[@]}"
|
||||
|
@ -54,7 +54,11 @@ const (
|
||||
|
||||
// NewCloudControllerManagerCommand creates a *cobra.Command object with default parameters
|
||||
func NewCloudControllerManagerCommand() *cobra.Command {
|
||||
s := options.NewCloudControllerManagerOptions()
|
||||
s, err := options.NewCloudControllerManagerOptions()
|
||||
if err != nil {
|
||||
glog.Fatalf("unable to initialize command options: %v", err)
|
||||
}
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "cloud-controller-manager",
|
||||
Long: `The Cloud controller manager is a daemon that embeds
|
||||
|
@ -72,8 +72,11 @@ type CloudControllerManagerOptions struct {
|
||||
}
|
||||
|
||||
// NewCloudControllerManagerOptions creates a new ExternalCMServer with a default config.
|
||||
func NewCloudControllerManagerOptions() *CloudControllerManagerOptions {
|
||||
componentConfig := NewDefaultComponentConfig(ports.InsecureCloudControllerManagerPort)
|
||||
func NewCloudControllerManagerOptions() (*CloudControllerManagerOptions, error) {
|
||||
componentConfig, err := NewDefaultComponentConfig(ports.InsecureCloudControllerManagerPort)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
s := CloudControllerManagerOptions{
|
||||
CloudProvider: &cmoptions.CloudProviderOptions{},
|
||||
@ -101,11 +104,11 @@ func NewCloudControllerManagerOptions() *CloudControllerManagerOptions {
|
||||
// TODO: enable HTTPS by default
|
||||
s.SecureServing.BindPort = 0
|
||||
|
||||
return &s
|
||||
return &s, nil
|
||||
}
|
||||
|
||||
// NewDefaultComponentConfig returns cloud-controller manager configuration object.
|
||||
func NewDefaultComponentConfig(insecurePort int32) componentconfig.CloudControllerManagerConfiguration {
|
||||
func NewDefaultComponentConfig(insecurePort int32) (componentconfig.CloudControllerManagerConfiguration, error) {
|
||||
scheme := runtime.NewScheme()
|
||||
componentconfigv1alpha1.AddToScheme(scheme)
|
||||
componentconfig.AddToScheme(scheme)
|
||||
@ -114,9 +117,11 @@ func NewDefaultComponentConfig(insecurePort int32) componentconfig.CloudControll
|
||||
scheme.Default(&versioned)
|
||||
|
||||
internal := componentconfig.CloudControllerManagerConfiguration{}
|
||||
scheme.Convert(&versioned, &internal, nil)
|
||||
if err := scheme.Convert(&versioned, &internal, nil); err != nil {
|
||||
return internal, err
|
||||
}
|
||||
internal.KubeCloudShared.Port = insecurePort
|
||||
return internal
|
||||
return internal, nil
|
||||
}
|
||||
|
||||
// AddFlags adds flags for a specific ExternalCMServer to the specified FlagSet
|
||||
|
@ -32,7 +32,7 @@ import (
|
||||
)
|
||||
|
||||
func TestDefaultFlags(t *testing.T) {
|
||||
s := NewCloudControllerManagerOptions()
|
||||
s, _ := NewCloudControllerManagerOptions()
|
||||
|
||||
expected := &CloudControllerManagerOptions{
|
||||
CloudProvider: &cmoptions.CloudProviderOptions{
|
||||
@ -95,7 +95,7 @@ func TestDefaultFlags(t *testing.T) {
|
||||
|
||||
func TestAddFlags(t *testing.T) {
|
||||
f := pflag.NewFlagSet("addflagstest", pflag.ContinueOnError)
|
||||
s := NewCloudControllerManagerOptions()
|
||||
s, _ := NewCloudControllerManagerOptions()
|
||||
s.AddFlags(f)
|
||||
|
||||
args := []string{
|
||||
|
@ -3,29 +3,11 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"attachdetachcontroller.go",
|
||||
"cloudprovider.go",
|
||||
"csrsigningcontroller.go",
|
||||
"daemonsetcontroller.go",
|
||||
"debugging.go",
|
||||
"deploymentcontroller.go",
|
||||
"deprecatedcontroller.go",
|
||||
"endpointcontroller.go",
|
||||
"garbagecollectorcontroller.go",
|
||||
"generic.go",
|
||||
"hpacontroller.go",
|
||||
"insecure_serving.go",
|
||||
"jobcontroller.go",
|
||||
"kubecloudshared.go",
|
||||
"namespacecontroller.go",
|
||||
"nodeipamcontroller.go",
|
||||
"nodelifecyclecontroller.go",
|
||||
"persistentvolumebindercontroller.go",
|
||||
"podgccontroller.go",
|
||||
"replicasetcontroller.go",
|
||||
"replicationcontroller.go",
|
||||
"resourcequotacontroller.go",
|
||||
"serviceaccountcontroller.go",
|
||||
"servicecontroller.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/cmd/controller-manager/app/options",
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
||||
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
||||
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
"net"
|
||||
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/apiserver/pkg/server/options"
|
||||
genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app"
|
||||
)
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
||||
@ -36,7 +37,6 @@ type KubeCloudSharedOptions struct {
|
||||
AllocateNodeCIDRs bool
|
||||
CIDRAllocatorType string
|
||||
ConfigureCloudRoutes bool
|
||||
ServiceAccountKeyFile string
|
||||
NodeSyncPeriod metav1.Duration
|
||||
}
|
||||
|
||||
@ -74,9 +74,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 +97,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
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
||||
|
||||
|
@ -35,6 +35,7 @@ func createAPIExtensionsConfig(
|
||||
externalInformers kubeexternalinformers.SharedInformerFactory,
|
||||
pluginInitializers []admission.PluginInitializer,
|
||||
commandOptions *options.ServerRunOptions,
|
||||
masterCount int,
|
||||
) (*apiextensionsapiserver.Config, error) {
|
||||
// make a shallow copy to let us twiddle a few things
|
||||
// most of the config actually remains the same. We only need to mess with a couple items related to the particulars of the apiextensions
|
||||
@ -69,6 +70,7 @@ func createAPIExtensionsConfig(
|
||||
},
|
||||
ExtraConfig: apiextensionsapiserver.ExtraConfig{
|
||||
CRDRESTOptionsGetter: apiextensionscmd.NewCRDRESTOptionsGetter(etcdOptions),
|
||||
MasterCount: masterCount,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
|
||||
}
|
||||
|
||||
// If additional API servers are added, they should be gated.
|
||||
apiExtensionsConfig, err := createAPIExtensionsConfig(*kubeAPIServerConfig.GenericConfig, versionedInformers, pluginInitializer, completedOptions.ServerRunOptions)
|
||||
apiExtensionsConfig, err := createAPIExtensionsConfig(*kubeAPIServerConfig.GenericConfig, versionedInformers, pluginInitializer, completedOptions.ServerRunOptions, completedOptions.MasterCount)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ go_library(
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//cmd/controller-manager/app:go_default_library",
|
||||
"//cmd/controller-manager/app/options:go_default_library",
|
||||
"//cmd/kube-controller-manager/app/config:go_default_library",
|
||||
"//cmd/kube-controller-manager/app/options:go_default_library",
|
||||
"//pkg/apis/apps/install:go_default_library",
|
||||
|
@ -27,7 +27,7 @@ import (
|
||||
"github.com/golang/glog"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
||||
kubeoptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options"
|
||||
"k8s.io/kubernetes/pkg/controller/certificates/approver"
|
||||
"k8s.io/kubernetes/pkg/controller/certificates/cleaner"
|
||||
"k8s.io/kubernetes/pkg/controller/certificates/signer"
|
||||
@ -55,12 +55,12 @@ func startCSRSigningController(ctx ControllerContext) (bool, error) {
|
||||
_, err := os.Stat(ctx.ComponentConfig.CSRSigningController.ClusterSigningCertFile)
|
||||
certFileExists = !os.IsNotExist(err)
|
||||
|
||||
certUsesDefault = (ctx.ComponentConfig.CSRSigningController.ClusterSigningCertFile == cmoptions.DefaultClusterSigningCertFile)
|
||||
certUsesDefault = (ctx.ComponentConfig.CSRSigningController.ClusterSigningCertFile == kubeoptions.DefaultClusterSigningCertFile)
|
||||
|
||||
_, err = os.Stat(ctx.ComponentConfig.CSRSigningController.ClusterSigningKeyFile)
|
||||
keyFileExists = !os.IsNotExist(err)
|
||||
|
||||
keyUsesDefault = (ctx.ComponentConfig.CSRSigningController.ClusterSigningKeyFile == cmoptions.DefaultClusterSigningKeyFile)
|
||||
keyUsesDefault = (ctx.ComponentConfig.CSRSigningController.ClusterSigningKeyFile == kubeoptions.DefaultClusterSigningKeyFile)
|
||||
|
||||
switch {
|
||||
case (keyFileExists && keyUsesDefault) || (certFileExists && certUsesDefault):
|
||||
|
@ -70,7 +70,11 @@ const (
|
||||
|
||||
// NewControllerManagerCommand creates a *cobra.Command object with default parameters
|
||||
func NewControllerManagerCommand() *cobra.Command {
|
||||
s := options.NewKubeControllerManagerOptions()
|
||||
s, err := options.NewKubeControllerManagerOptions()
|
||||
if err != nil {
|
||||
glog.Fatalf("unable to initialize command options: %v", err)
|
||||
}
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "kube-controller-manager",
|
||||
Long: `The Kubernetes controller manager is a daemon that embeds
|
||||
@ -146,7 +150,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")
|
||||
@ -480,11 +484,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)
|
||||
}
|
||||
|
@ -175,6 +175,7 @@ func startPersistentVolumeBinderController(ctx ControllerContext) (bool, error)
|
||||
ClaimInformer: ctx.InformerFactory.Core().V1().PersistentVolumeClaims(),
|
||||
ClassInformer: ctx.InformerFactory.Storage().V1().StorageClasses(),
|
||||
PodInformer: ctx.InformerFactory.Core().V1().Pods(),
|
||||
NodeInformer: ctx.InformerFactory.Core().V1().Nodes(),
|
||||
EnableDynamicProvisioning: ctx.ComponentConfig.PersistentVolumeBinderController.VolumeConfiguration.EnableDynamicProvisioning,
|
||||
}
|
||||
volumeController, volumeControllerErr := persistentvolumecontroller.NewController(params)
|
||||
|
@ -8,7 +8,27 @@ load(
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["options.go"],
|
||||
srcs = [
|
||||
"attachdetachcontroller.go",
|
||||
"csrsigningcontroller.go",
|
||||
"daemonsetcontroller.go",
|
||||
"deploymentcontroller.go",
|
||||
"deprecatedcontroller.go",
|
||||
"endpointcontroller.go",
|
||||
"garbagecollectorcontroller.go",
|
||||
"hpacontroller.go",
|
||||
"jobcontroller.go",
|
||||
"namespacecontroller.go",
|
||||
"nodeipamcontroller.go",
|
||||
"nodelifecyclecontroller.go",
|
||||
"options.go",
|
||||
"persistentvolumebindercontroller.go",
|
||||
"podgccontroller.go",
|
||||
"replicasetcontroller.go",
|
||||
"replicationcontroller.go",
|
||||
"resourcequotacontroller.go",
|
||||
"serviceaccountcontroller.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/cmd/kube-controller-manager/app/options",
|
||||
deps = [
|
||||
"//cmd/controller-manager/app/options:go_default_library",
|
||||
@ -22,6 +42,7 @@ go_library(
|
||||
"//vendor/github.com/golang/glog: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/apis/meta/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
||||
|
@ -18,6 +18,7 @@ package options
|
||||
|
||||
import (
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||
)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user